diff --git a/README.md b/README.md index 531e0921b81459b51c4cac72ba6372f0009ebfcf..17953943bd24ef201327397c271ba38e69cfa433 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # NFV SOL009 - OpenAPIs for the management of NFV-MANO -This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.5.1, RESTful protocols +This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.6.1, RESTful protocols specification for the management of NFV-MANO functional entities. **IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.** diff --git a/src/SOL009/APIVersion/APIVersion.yaml b/src/SOL009/APIVersion/APIVersion.yaml index be4b0990cb9e36ba453688edf88bc8444ee6fe6e..494645286ec0dfe436059d674f80402914e03ba8 100644 --- a/src/SOL009/APIVersion/APIVersion.yaml +++ b/src/SOL009/APIVersion/APIVersion.yaml @@ -19,7 +19,7 @@ info: version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 + description: ETSI GS NFV-SOL 009 V3.6.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf paths: diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml index f3032bdd684891cfba4406e87c2788e298ee14fb..d40e85a81f08c02d586eba4163de0f6fd128a563 100644 --- a/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml +++ b/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/nfvmanocim/v2 @@ -62,6 +62,7 @@ paths: $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 + patch: description: > The PATCH method modifies the NFV-MANO entity resource. See clause 5.5.3.3.4. @@ -676,1664 +677,6 @@ paths: $ref: ../components/SOL009_resp.yaml#/components/responses/504 components: - schemas: - ManoEntity: - description: > - This type represents an NFV-MANO functional entity. - * NOTE 1: It shall be present when "type" attribute is "NFVO", and it shall be absent in any other case. - * NOTE 2: It shall be present when "type" attribute is "VNFM", and it shall be absent in any other case. - * NOTE 3: It shall be present when "type" attribute is "VIM", and it shall be absent in any other case. - * NOTE 4: The information about the NFV-MANO services offered by a specific type of NFV-MANO functional - entity is specified by the manoServices attribute. - * NOTE 5: It is optional for the API producer to support the "manoEntityComponents" attribute. - * NOTE 6: It shall be present when "type" attribute is "WIM", and it shall be absent in any other case. - type: object - required: - - id - - type - - name - - description - - provider - - softwareVersion - - manoConfigurableParams - - manoApplicationState - - _links - properties: - id: - description: > - Identifier of the NFV-MANO functional entity. The identifier shall be set during - the initial deployment of the NFV-MANO functional entity and its value allocated - based on network operator policies. The value of this identifier shall be unique - at least in the scope of the NFV-MANO deployment. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - type: - description: > - Type of NFV-MANO functional entity. - $ref: "#/components/schemas/ManoEntityEnumType" - name: - description: > - Human-readable name of the NFV-MANO functional entity. - - This attribute can be modified with the PATCH method. - type: string - description: - description: > - Human-readable description of the NFV-MANO functional entity. - - This attribute can be modified with the PATCH method. - type: string - provider: - description: > - Information about the provider of the NFV-MANO functional entity. - It typically includes the name of the provider. - type: string - softwareVersion: - description: > - The version of the software of the NFV-MANO functional entity. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - manoEntityComponents: - description: > - The deployed NFV-MANO functional entity components which realize the - NFV-MANO functional entity. See note 5. - type: array - items: - $ref: "#/components/schemas/ManoEntityComponent" - minItems: 0 - manoServices: - description: > - Information about the NFV-MANO services provided by the NFV-MANO - functional entity. - type: array - items: - $ref: "#/components/schemas/ManoService" - minItems: 1 - manoConfigurableParams: - description: > - Information and current values of the configurable parameters. - - This attribute can be modified with the PATCH method. - $ref: "#/components/schemas/ManoConfigurableParams" - manoApplicationState: - description: > - Information and current values of the NFV-MANO functional entity’s application state. - type: object - required: - - operationalState - - administrativeState - - usageState - properties: - operationalState: - description: > - The operational state of the NFV-MANO functional entity application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: > - The administrative state of the NFV-MANO functional entity application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - usageState: - description: > - The usage state of the NFV-MANO functional entity application. - $ref: "#/components/schemas/UsageStateEnumType" - nfvoSpecificInfo: - description: > - The information specific to an NFVO entity. See note 1 and not 4. - $ref: "#/components/schemas/NfvoSpecificInfo" - vnfmSpecificInfo: - description: > - The information specific to a VNFM entity. See note 2 and not 4. - $ref: "#/components/schemas/VnfmSpecificInfo" - vimSpecificInfo: - description: > - The information specific to an VIM entity. See note 3 and not 4. - $ref: "#/components/schemas/VimSpecificInfo" - wimSpecificInfo: - description: > - The information specific to a WIM entity. See notes 4 and note 6. - $ref: "#/components/schemas/WimSpecificInfo" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - - manoServiceInterfaces - - peerEntities - - changeState - - changeStateOpOccs - properties: - self: - description: URI of this resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - manoServiceInterfaces: - description: Link to the "NFV-MANO service interfaces" resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - peerEntities: - description: Link to "Peer entities" resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - changeState: - description: Link to the "Change state" task resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - changeStateOpOccs: - description: Link to the "Change state operation occurrences" resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - - ManoConfigModificationRequest: - description: > - This type represents attribute modifications for configuration parameters - of an NFV-MANO functional entity. - * NOTE: At least one of these attributes shall be provided if requesting a modification - of the NFV-MANO service identified by "id". - type: object - properties: - name: - description: > - New value of the "name" attribute in "ManoEntity". - type: string - description: - description: > - New value of the "description" attribute in "ManoEntity". - type: string - clockSyncs: - description: > - Modifications of the "clockSyncs" attribute in the "ManoEntityConfigurableParams". - If present, these modifications shall be applied according to the rules of JSON Merge PATCH - (see IETF RFC 7396). - type: object - additionalProperties: - $ref: "#/components/schemas/ClockSyncInfo" - defaultLogCompileBySizeValue: - description: > - New value of the "defaultLogCompileBySizeValue" attribute in the - "ManoEntityConfigurableParams". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - defaultLogCompileByTimerValue: - description: > - New value of the "defaultLogCompileByTimerValue" attribute in the - "ManoEntityConfigurableParams". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - manoServiceModifications: - description: > - New content of certain entries in the "manoServices" attribute array - in the "ManoEntity", as defined below this table. - The following provisions shall apply when modifying an attribute that is an array of structured - "manoServiceModifications". - Assumptions: - A) "oldList" is the array to be modified, "newList" is the array that contains the changes. - B) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList". - C) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same - content of "id" attribute as the "newEntry". - D) In any array of objects, the content of "id" is unique (i.e. there are no two entries - with the same content of "id"). - Provisions: - 1) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", the values of - the sub-attributes of "oldEntry" shall be replaced by the value of the sub-attributes in the "newEntry". - 2) If the "newEntry" in "newList" has no corresponding "oldEntry" in "oldList" (i.e. the "id" is - not found), the modification operation will fail as a whole and an error message shall be raised. - type: array - items: - type: object - required: - - id - properties: - id: - description: > - Identifier of the NFV-MANO service to modify. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - name: - description: > - New value for the "name" attribute in the "ManoService". See note. - type: string - description: - description: > - New value for the "description" attribute in the "ManoService". See note. - type: string - - ManoConfigModifications: - description: > - This type represents attribute modifications that were performed on the - "NFV-MANO entity" resource of the producer NFV-MANO functional entity. - The attributes that can be included consist of those requested to be - modified explicitly in the "ManoConfigModificationRequest" data structure. - type: object - properties: - name: - description: > - If present, this attribute signals modifications of the "name" - attribute in "ManoEntity", as defined in clause 5.6.2.3 - type: string - description: - description: > - If present, this attribute signals modifications of the "description" - attribute in "ManoEntity", as defined in clause 5.6.2.3. - type: string - clockSyncs: - description: > - If present, this attribute signals modifications of the "clockSyncs" attribute in - "ManoEntityConfigurableParams", as defined in clause 5.6.2.3. - type: object - additionalProperties: - $ref: "#/components/schemas/ClockSyncInfo" - defaultLogCompileBySizeValue: - description: > - If present, this attribute signals modifications of the - "defaultLogCompileBySizeValue" attribute in the - "ManoEntityConfigurableParams". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - defaultLogCompileByTimerValue: - description: > - If present, this attribute signals modifications of the - "defaultLogCompileByTimerValue" attribute in the - "ManoEntityConfigurableParams". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - manoServiceModifications: - description: > - If present, this attribute signals modifications of the "manoServices" - attribute array in the "ManoEntity", as defined in clause 5.6.2.3. - type: array - items: - type: object - properties: - id: - description: > - Identifier of the NFV-MANO service that has been modified. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - name: - description: > - If present, this attribute signals modification of the "name" - attribute in the "ManoService". - type: string - description: - description: > - If present, this attribute signals modification of the - "description" attribute in the "ManoService". - type: string - required: - - id - - CimSubscriptionRequest: - description: > - This type represents a subscription request related to notifications - about NFV-MANO configuration and information management changes. - 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/CimNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - CimSubscription: - description: > - This type represents a subscription related to notifications about - NFV-MANO configuration and information management changes - type: object - required: - - id - - callbackUri - - _links - properties: - id: - description: > - Identifier that identifies the subscription - $ref: "../components/SOL009_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/CimNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - _links: - description: > - Links to resources related to this resource. - type: object - properties: - self: - description: > - URI of this resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - required: - - self - - ChangeStateRequest: - description: > - This type represents request parameters for changing the state of a managed entity. - * NOTE 1: In the present document version, a request shall only include an operational state change - (attribute "operationalStateChange") or an administrative state change request (attribute - "administrativeStateChange"), but not both. - * NOTE 2: The "stopType" shall only be provided when the "operationalStateAction" attribute is equal - to "STOP" or "RESTART". The "gracefulStopTimeout" shall be absent when the "stopType" attribute - is equal to "FORCEFUL", and may be provided otherwise. - type: object - properties: - operationalStateChange: - description: > - A change of operational state. Shall be present if the state change request - refers to the operational state. See note 1. - but not both. - type: object - properties: - operationalStateAction: - description: > - The desired operation state to change the managed object to. In case of - changing the state of an NFV-MANO service interface the value - "RESTART" shall not be used. - $ref: "#/components/schemas/ChangeOperationalStateEnumType" - stopType: - description: > - It signals the type of stop. See note 2. - $ref: "#/components/schemas/StopEnumType" - gracefulStopTimeout: - description: > - The time internal (in seconds) to wait for the entity to be taken out - of service during graceful stop. See note 2. - type: integer - required: - - operationalStateAction - administrativeStateChange: - description: > - A change of administrative state. Shall be present if the state change request - refers to the administrative state. See note 1. - but not both. - type: object - required: - - administrativeStateAction - properties: - administrativeStateAction: - description: > - The desired administrative state to change the managed object to. - $ref: "#/components/schemas/ChangeAdministrativeStateEnumType" - - ChangeStateOpOcc: - description: > - This type represents a Change state operation occurrence. - type: object - required: - - id - - operationState - - stateEnteredTime - - startTime - - managedObjectRef - properties: - id: - description: > - Identifier of this change state operation occurrence. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - operationState: - description: > - The state of the "change state operation occurrence". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType" - stateEnteredTime: - description: > - Date-time when the current state was entered. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - startTime: - description: > - Date-time of the start of the operation. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - managedObjectRef: - description: > - Reference of the managed object to which the change state operation - occurrence relates. The value of the "type" attribute shall be - "MANO_ENTITY" or "MANO_SERVICE_IF". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - changeOperationalStateRequest: - description: > - The type of the change of operational state that was requested. Shall - be present if the change of state operation triggered a change of - operational state. - $ref: "#/components/schemas/ChangeOperationalStateEnumType" - changeAdministrativeStateRequest: - description: > - The type of the change of administrative state that was requested. Shall - be present if the change of state operation triggered a change of - administrative state. - $ref: "#/components/schemas/ChangeAdministrativeStateEnumType" - operationParams: - description: > - Input parameters of the change state operation. This attribute shall be - formatted according to the request data type of the related change state - operation. - - The following mapping between operationType and the data type of this - attribute shall apply: - - CHANGE_STATE: ChangeStateRequest - - This attribute shall be present if this data type is returned in a response - to reading an individual resource, and may be present according to the chosen - attribute selector parameter if this data type is returned in a response to - a query of a container resource. - - ManoServiceInterface: - description: > - This type represents an individual NFV-MANO service interface produced by - an NFV-MANO functional entity. - * NOTE 1: The information to be provided in this attribute shall relate to the specification and - version of the specification. For instance, "ETSI GS NFV-SOL 003 (V2.4.1)". - * NOTE 2: If this attribute is not present, the value of this parameter is undefined. Overload is - handled by the error handling schemes defined by the applicable API specification. - * NOTE 3: Due to the security sensitive information associated to the attribute, based on access - control policies, the API consumer might have read only, write only, read/write, or no access - at all to the attribute's value. In case the API consumer is not allowed to read the value of - the security sensitive attribute, the attribute shall be omitted when the information is to be - provided in a response message, and shall be provided otherwise. In case the API consumer is - not allowed to modify the value of the security sensitive attribute, and the modification request - includes new attribute values, the whole modification request shall be rejected, and proper - error information returned. - type: object - required: - - id - - name - - type - - standardVersion - - providerSpecificApiVersion - - apiVersion - - apiEndpoint - - supportedOperations - - interfaceState - properties: - id: - description: > - Identifier of the NFV-MANO functional entity interface. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - name: - description: > - Human-readable name of the NFV-MANO functional entity interface. - - This attribute can be modified with the PATCH method. - type: string - type: - description: > - Type of the NFV-MANO service interface produced by the NFV-MANO functional - entity. Valid values are defined in clause 5.6.4.3. - type: string - standardVersion: - description: > - Version of the standard the interface is compliant to. See note 1. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - providerSpecificApiVersion: - description: > - Provider-specific software API version. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - apiVersion: - description: > - API version, in compliance with the version identifiers and parameters - format specified in clause 9.1 of ETSI GS NFV-SOL 013. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - apiEndpoint: - description: > - Exposed API endpoint of the interface. - type: object - properties: - apiRoot: - description: > - Indicates the scheme ("http" or "https"), the host name and optional port, - and an optional sequence of path segments that together represent a prefix - path. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs - (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. - - This attribute can be modified with the PATCH method. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - apiName: - description: > - Indicates the interface name in an abbreviated form. Shall be present - for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each - interface is defined in the standard the interface is compliant to - (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. - type: string - apiMajorVersion: - description: > - Indicates the current major version of the API. Shall be present for - ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined - in the standard the interface is compliant to (see also clause 4.1 of - ETSI GS NFV-SOL 013). May be present otherwise. - type: string - apiUri: - description: > - URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, - the following prefix structure is used (see also clause 4.1 of ETSI - GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion} - For APIs not specified by ETSI NFV as part of the RESTful NFV-MANO APIs, - this attribute can be modified with the PATCH method. For RESTful NFV-MANO - APIs specified by ETSI NFV, this attribute shall not be modified. Instead, - changes are handled indirectly via patching of the "apiRoot" attribute’s - value. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - required: - - apiUri - maxConcurrentIntOpNumber: - description: > - Maximum number of concurrent operation requests supported on this interface. See note 2. - type: integer - supportedOperations: - description: > - Information about supported operations of this interface. - type: array - items: - type: object - properties: - operationName: - description: > - Name of the operation supported on the interface. - type: string - maxConcurrentOpNumber: - description: > - Maximum number of concurrent requests supported by the interface operation. See note 2. - type: integer - required: - - operationName - minItems: 1 - interfaceState: - description: > - State of the NFV-MANO service interface. - properties: - operationalState: - description: > - The operational state of the NFV-MANO service interface. - $ref: "#/components/schemas/InterfaceOperationalStateEnumType" - administrativeState: - description: > - The administrative state of the NFV-MANO service interface. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - usageState: - description: > - The usage state of the NFV-MANO service interface. - $ref: "#/components/schemas/UsageStateEnumType" - required: - - operationalState - - administrativeState - - usageState - securityInfo: - description: > - Security related information. - - This attribute can be modified with the PATCH method. See note 3. - $ref: "#/components/schemas/ServerInterfaceSecurityInfo" - metadata: - description: > - Additional attributes that provide metadata describing the NFV-MANO - service interface. - These attributes can be created, modified or removed with the PATCH - method. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - - ManoServiceInterfaceModificationRequest: - description: > - This type represents attribute modifications for configuration parameters of - an NFV-MANO service interface of the producer NFV-MANO functional entity. - * NOTE 1: Changing the name does not change the corresponding standardized API name in the resource URI - (refer to "{apiName}" defined in clause 4.1 of ETSI GS NFV-SOL 013). - * NOTE 2: The change of apiRoot or apiUri on an enabled and in use API may be service disruptive. Also, - that change invalidates any related URI that might have been cached at API consumers. - * NOTE 3: Due to the security sensitive information associated to the attribute, based on access control - policies, the API consumer might have read only, write only, read/write, or no access at all - to the attribute's value. In case the API consumer is not allowed to modify the value of the - security sensitive attribute, and the modification request includes new attribute values, - the whole modification request shall be rejected, and proper error information returned. - type: object - properties: - name: - description: > - New value of the "name" attribute in "ManoServiceInterface". See note 1. - type: string - apiRoot: - description: > - New value of the "apiRoot" attribute in "ManoServiceInterface". See note 2. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - apiUri: - description: > - New value of the "apiUri" attribute in "ManoServiceInterface". See note 2. - - Shall not be provided if a change of "apiRoot" is present in the request. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - securityInfo: - description: > - New value of the "securityInfo" attribute in "ManoServiceInterface". See note 3. - $ref: "#/components/schemas/ServerInterfaceSecurityInfo" - metadata: - description: > - Modifications of the "metadata" attribute in "ManoServiceInterface". - If present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - - ManoServiceInterfaceModifications: - description: > - This type represents attribute modifications that were performed on an - Individual NFV-MANO service interface" resource. The attributes that can - be included consist of those requested to be modified explicitly in the - "ManoServiceInterfaceModificationRequest" data structure. If applicable, - additional attributes of the "ManoServiceInterface" data structure that - were modified implicitly shall also be provided. - * NOTE: Due to the security sensitive information associated to the attribute, based on access control - policies, the API consumer might have read only, write only, read/write, or no access at all - to the attribute's value. In case the API consumer is not allowed to read the value of the security - sensitive attribute, the attribute shall be omitted when the information is to be provided - in a response message. - type: object - properties: - name: - description: > - If present, this attribute signals modifications of the "name" attribute in - "ManoServiceInterface", as defined in clause 5.6.2.11. - type: string - apiRoot: - description: > - If present, this attribute signals modifications of the "apiRoot" attribute - in "ManoServiceInterface", as defined in clause 5.6.2.11. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - apiUri: - description: > - If present, this attribute signals modifications of the "apiUri" attribute - in "ManoServiceInterface", as defined in clause 5.6.2.11. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - securityInfo: - description: > - If present, this attribute signals modifications of the "securityInfo" - attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. See note. - $ref: "#/components/schemas/ServerInterfaceSecurityInfo" - metadata: - description: > - If present, this attribute signals modifications of the "metadata" attribute - in "ManoServiceInterface", as defined in clause 5.6.2.11. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - - CreatePeerEntityRequest: - description: > - This type represents request parameters for the creation of a new peer entity resource. - * NOTE: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute - in the "ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity, - and shall follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute. - type: object - required: - - peerEntityId - - name - - type - properties: - peerEntityId: - description: > - Identifier of the peer functional entity. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - name: - description: > - Human-readable name of the peer functional entity. - type: string - type: - description: > - Type of the peer functional entity. - $ref: "#/components/schemas/PeerEntityEnumType" - description: - description: > - Human-readable description of the peer functional entity. - type: string - consumedManoInterfaces: - description: > - Initial information of the interface consumed by the NFV-MANO functional entity - from the peer functional entity. - type: object - additionalProperties: - $ref: "#/components/schemas/ConsumedManoInterfaceInfo" - peerEntityState: - description: > - Current values of the state of the peer functional entity. - type: object - properties: - operationalState: - description: > - TThe operation state of the peer functional entity’s application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: > - The administrative state of the peer functional entity’s application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - required: - - operationalState - - administrativeState - - PeerEntity: - description: > - This type represents an individual peer entity. - * NOTE 1: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute in the - "ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall - follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute. - * NOTE 2: ETSI GS NFV-IFA 031 [1] defines an additional attribute named "apiDiscoveryEndpoint" in the - PeerManoEntity. The modelling of this attribute is not specified in the present document version. - type: object - required: - - id - - peerEntityId - - name - - type - - peerEntityState - properties: - id: - description: > - Identifier of the resource representing the peer functional entity. - This identifier is allocated by the producer NFV-MANO functional entity. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - peerEntityId: - description: > - Identifier of the peer functional entity. See note 1. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - name: - description: > - Human-readable name of the peer functional entity. - - This attribute can be modified with the PATCH method. - type: string - type: - description: > - Type of the peer functional entity. - $ref: "#/components/schemas/PeerEntityEnumType" - description: - description: > - Human-readable description of the peer functional entity. - - This attribute can be modified with the PATCH method. - type: string - consumedManoInterfaces: - description: > - Information of the interface consumed by the NFV-MANO functional entity - from the peer functional entity. - - This attribute can be modified with the PATCH method. - - The keys of the map, each of which identifies information about a particular - consumed NFV-MANO interface, are managed by the API consumer and referenced - from other data structures via the "consumedManoInterfaceIds" attribute. - type: object - additionalProperties: - $ref: "#/components/schemas/ConsumedManoInterfaceInfo" - peerEntityState: - description: > - State of the peer functional entity as provided by the API consumer when - creating the resource or when updating it with the PATCH method. - type: object - properties: - operationalState: - description: > - The operational state of the peer functional entity’s application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: - The administrative state of the peer functional entity’s application. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - required: - - operationalState - - administrativeState - - PeerEntityConfigModificationRequest: - description: > - This type represents attribute modifications for configuration parameters of a peer entity. - * NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo" - within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have - read only, write only, read/write, or no access at all to the attribute's value. In case the - API consumer is not allowed to modify the value of the security sensitive attribute, and the - modification request includes new attribute values, the whole modification request shall be rejected, - and proper error information returned. - type: object - properties: - name: - description: > - New value of the "name" attribute in "PeerEntity". - type: string - description: - description: > - New value of the "description" attribute in "PeerEntity", or "null" to - remove the attribute. - type: string - consumedManoInterfaces: - description: > - Modification of the "consumedManoInterfaces" attribute - in the "PeerEntity", as defined below this table. - - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396). See note. - type: object - additionalProperties: - $ref: "#/components/schemas/ConsumedManoInterfaceInfo" - operationalState: - description: > - New content of the "operationalState" attribute in the "peerEntityState" - structure in the "PeerEntity". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: > - New content of the "administrativeState" attribute in the "peerEntityState" - structure in the "PeerEntity". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - - PeerEntityConfigModifications: - description: > - This type represents attribute modifications that were performed on an - "Individual peer entity" resource. The attributes that can be included - consist of those requested to be modified explicitly in the - "PeerEntityConfigModificationRequest" data structure. If applicable, - additional attributes of the "PeerEntity" data structure that were - modified implicitly shall also be provided. - * NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo" - within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have - read only, write only, read/write, or no access at all to the attribute's value. In case the - API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall - be omitted when the information is to be provided in a response message. - type: object - properties: - name: - description: > - If present, this attribute signals modifications of the "name" attribute - in "PeerEntity", as defined in clause 5.6.2.15. - type: string - description: - description: > - If present, this attribute signals modifications of the "description" - attribute in "PeerEntity", as defined in clause 5.6.2.15. - type: string - consumedManoInterfaces: - description: > - If present, this attribute signals modifications of the - "consumedManoInterfaces" attribute in "PeerEntity", as defined in - clause 5.6.2.15. See note. - type: object - additionalProperties: - $ref: "#/components/schemas/ConsumedManoInterfaceInfo" - operationalState: - description: > - If present, this attribute signals modifications of the "operationalState" - attribute in the "peerEntityState" structure in the "PeerEntity", as defined - in clause 5.6.2.15. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: > - If present, this attribute signals modifications of the "administrativeState" - attribute in the "peerEntityState" structure in the "PeerEntity", as defined - in clause 5.6.2.15. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - - ManoConfigurableParams: - description: > - # Warning: No definition found in the document - ManoConfigurableParams - - #referenced - ManoEntityComponent: - description: > - This type represents information of a deployed component realizing part of an - NFV-MANO functional entity. It is optional for the API producer to support - this type. - type: object - required: - - id - properties: - id: - description: > - Identifier of the NFV-MANO functional entity component. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - manoServiceIds: - description: > - References to the NFV-MANO services that depend on the NFV-MANO functional - entity component. The identifier of the ManoService is referred. A service - may depend on multiple components. Multiple services may depend on the same - component. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - - ManoService: - description: > - This type represents information about an NFV-MANO service provided by the - NFV-MANO functional entity. - * NOTE: A cardinality greater than one supports having different interface versions or api Endpoints - to be used for accessing the same instance of an NFV-MANO service. - type: object - required: - - id - - name - - description - - manoServiceInterfaceIds - - _links - properties: - id: - description: > - Identifier of the NFV-MANO service. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - name: - description: > - Human-readable name of the NFV-MANO service. - - This attribute can be modified with the PATCH method. - type: string - description: - description: > - Human-readable description of the NFV-MANO service. - - This attribute can be modified with the PATCH method. - type: string - manoServiceInterfaceIds: - description: > - Reference to the NFV-MANO interfaces associated to the NFV-MANO service. - If cardinality is greater than one, the type of ManoServiceInterface - (see clause 5.6.3.3) shall be the same. The identifier of the - ManoServiceInterface is referred. See note - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - minItems: 1 - _links: - description: > - Links to resources related to this resource. - type: object - properties: - manoServiceInterfaces: - description: > - Link to the "individual NFV-MANO service interface" resources with - information about the associated interfaces to the NFV-MANO service. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - minItems: 1 - required: - - manoServiceInterfaces - - NfvoSpecificInfo: - description: > - This type represents information attributes specific to an NFVO entity, - and that can be relevant to more than one NFV-MANO service offered by an NFVO entity. - * NOTE 1: The information to be provided in this attribute shall relate to the specification and version - of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)". - NOTE 2: If this attribute is not present, the value of this parameter is undefined. - type: object - required: - - supportedVnfdFormats - - supportedNsdFormats - properties: - maxOnboardedNsdNum: - description: > - Maximum number of NSDs that can be on-boarded on the NFVO. See note 2. - type: integer - maxOnboardedVnfPkgNum: - description: > - Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2. - type: integer - supportedVnfdFormats: - description: > - Supported VNFD data formats. - type: object - properties: - vnfdFormat: - description: > - Name of the VNFD format. - - Permitted values: - - TOSCA: The VNFD follows TOSCA definition, according to ETSI - GS NFV-SOL 001 standard. - - YANG: The VNFD follows YANG definition according to ETSI - GS NFV-SOL 006 standard. - type: string - enum: - - TOSCA - - YANG - standardVersion: - description: > - Name and version of the standard the VNFD is compliant to. See note 1. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - required: - - vnfdFormat - - standardVersion - supportedNsdFormats: - description: > - Supported NSD data formats. - type: object - properties: - nsdFormat: - description: > - Name of the NSD format. - - Permitted values: - - TOSCA: The VNFD follows TOSCA definition, according to ETSI - GS NFV-SOL 001 standard. - - YANG: The VNFD follows YANG definition according to ETSI - GS NFV-SOL 006 standard. - type: string - enum: - - TOSCA - - YANG - standardVersion: - description: > - Name and version of the standard the NSD is compliant to. See note 1. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - required: - - nsdFormat - - standardVersion - - VnfmSpecificInfo: - description: > - This type represents information attributes specific to a VNFM entity, - and that can be relevant to more than one NFV-MANO service offered by a VNFM entity. - * NOTE: The information to be provided in this attribute shall relate to the specification and version - of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)". - type: object - required: - - resoruceMgmtModeSupport - - managedVnfInstanceInfos - - supportedVnfdFormats - properties: - resoruceMgmtModeSupport: - description: > - The supported resource management modes of the VNFM. - - Permitted values: - - DIRECT: The VNFM supports direct mode only. - - INDIRECT: The VNFM supports indirect mode only. - - BOTH: The VNFM supports both direct and indirect mode. - type: string - enum: - - DIRECT - - INDIRECT - - BOTH - managedVnfInstanceInfos: - description: > - The kinds of VNF instances that can be managed, e.g. to determine the - compatibility of a VNF with certain VNFM according to the vnfmInfo - attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011). - type: array - items: - type: string - minItems: 1 - supportedVnfdFormats: - description: > - Supported VNFD data formats. - type: array - items: - type: object - properties: - vnfdFormat: - description: > - Name of the VNFD format. - - Permitted values: - - TOSCA: The VNFD follows TOSCA definition, according to ETSI - GS NFV-SOL 001 standard. - - YANG: The VNFD follows YANG definition according to ETSI - GS NFV-SOL 006 standard. - type: string - enum: - - TOSCA - - YANG - standardVersion: - description: > - Name and version of the standard the VNFD is compliant to. See note - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - required: - - vnfdFormat - - standardVersion - minItems: 1 - - VimSpecificInfo: - description: > - This type represents information attributes specific to a VIM entity, - and that can be relevant to more than one NFV-MANO service offered by - a VIM entity. - type: object - - WimSpecificInfo: - description: > - This type represents information attributes specific to a WIM entity, - and that can be relevant to more than one NFV MANO service offered by - a WIM entity. - type: object - required: - - maxMscsNums - - maxMsncNum - - mscsLayerProtocolSupport - properties: - maxMscsNums: - description: > - Maximum number of MSCS that the WIM can manage. - type: object - required: - - numMscs - properties: - numMscs: - description: > - Maximum number of MSCS. - type: integer - criteriaNumMscs: - description: > - Reference criteria for derivation/computation of the referred maximum number of MSCS in - attribute "numMscs". Shall be provided if specific criteria has been taken into account - for deriving the referred number. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - maxMsncNum: - description: > - Maximum number of MSNC that the WIM can manage - type: object - required: - - numMsnc - properties: - numMsnc: - description: > - Maximum number of MSNC.. - type: integer - criteriaNumMsnc: - description: > - Reference criteria for derivation/computation of the referred maximum - number of MSNC in attribute "numMsnc". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - mscsLayerProtocolSupport: - description: > - List of protocols of particular layers used to realize an MSCS - that are supported by the WIM. - - Permitted values: - - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432. - - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214. - - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified - in IETF RFC 4761 and IETF RFC. - - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2 - Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074. - - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074. - - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364. - type: string - enum: - - EVPN_BGP_MPLS - - EVPN_VPWS - - VPLS_BGP - - VPLS_LDP_L2TP - - VPWS_LDP_L2TP - - BGP_IP_VPN - - ManoEntityConfigurableParams: - description: > - This type represents list of parameters that can be configured on the - NFV MANO functional entity. - type: object - required: - - clockSyncs - - defaultLogCompileBySizeValue - - defaultLogCompileByTimerValue - properties: - clockSyncs: - description: > - Properties of the clock synchronization to be used by the NFV-MANO - functional entity. - - The keys of the map, each of which identifies a particular ClockSyncInfo - structure, are managed by the API consumer. - type: object - additionalProperties: - $ref: "#/components/schemas/ClockSyncInfo" - minItems: 1 - defaultLogCompileBySizeValue: - description: - Default value for the log compilation by size to be used. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - defaultLogCompileByTimerValue: - description: - Default value for the log compilation by timer to be used. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - - ConsumedManoInterfaceInfo: - description: > - This type represents an interface consumed by the producer NFV MANO - functional entity from another peer functional entity. - * NOTE 1: The information to be provided in this attribute shall relate to the specification and its version. - For instance, "ETSI GS NFV-SOL 003 (V2.4.1)". - * NOTE 2: Due to the security sensitive information associated to the attribute, based on access control - policies, the API consumer might have read only, write only, read/write, or no access at all to - the attribute's value. In case the API consumer is not allowed to read the value of the security - sensitive attribute, the attribute shall be omitted when the information is to be provided in a - response message, and shall be provided otherwise. In case the API consumer is not allowed to - modify the value of the security sensitive attribute, and the modification request includes new - attribute values, the whole modification request shall be rejected, and proper error information returned. - type: object - required: - - id - - name - - type - - standardVersion - - apiVersion - - apiEndpoint - properties: - name: - description: > - Human-readable name of the NFV-MANO interface. - type: string - type: - description: > - Type of the NFV-MANO service interface consumed by the NFV-MANO - functional entity. Valid values are defined in clause 5.6.4.3. - type: string - standardVersion: - description: > - Version of the standard the interface is compliant to. See note 1. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - apiVersion: - description: > - API version, in compliance with the version identifiers and parameters - format specified in clause 9.1 of ETSI GS NFV-SOL 013. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" - apiEndpoint: - description: > - Consumable API endpoint of the interface. - It provides the information relevant about the protocol, host and port, - and path where the interface API can be accessed. - type: object - properties: - apiRoot: - description: > - Indicates the scheme ("http" or "https"), the host name and optional - port, and an optional sequence of path segments that together - represent a prefix path. Shall be present for ETSI NFV specified - RESTful NFV-MANO APIs (see also clause 4.1 of ETSI GS NFV-SOL 013). - May be present otherwise. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - apiName: - description: > - Indicates the interface name in an abbreviated form. Shall be present - for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each - interface is defined in the standard the interface is compliant to - (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. - type: string - apiMajorVersion: - description: > - Indicates the current major version of the API. Shall be present for - ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined - in the standard the interface is compliant to (see also clause 4.1 - of ETSI GS NFV-SOL 013). May be present otherwise. - type: string - apiUri: - description: > - URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, - the following prefix structure is used (see also clause 4.1 of ETSI - GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion} - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - required: - - apiUri - securityInfo: - description: > - Security related information including credentials information if needed - for consuming the API. See note 2. - $ref: "#/components/schemas/ClientInterfaceSecurityInfo" - - CimNotificationsFilter: - description: > - This type represents a subscription filter related to notifications - about NFV-MANO configuration and information management. - * 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: object - properties: - manoEntitySubscriptionFilter: - description: > - Filter criteria to select the NFV-MANO functional entity and its - associated managed objects. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoEntitySubscriptionFilter" - notificationTypes: - description: > - Match particular notification types. - - Permitted values: - - InformationChangedNotification - - ChangeStateNotification - - See note. - type: array - items: - type: string - enum: - - InformationChangedNotification - - ChangeStateNotification - - ClockSyncInfo: - description: > - This type represents parameters for connecting to an NTP server. - * NOTE: Either ipAddress or hostname shall be set, but not both at the same time. - type: object - required: - - type - properties: - type: - description: > - Type of clock synchronization. - - Permitted values: - - NTP: For Network Time Protocol (NTP) based clock synchronization. - - OTHER: For other types of clock synchronization. - type: string - enum: - - NTP - - OTHER - ntpServerInfo: - description: > - Information for the NTP based clock synchronization. Shall be present if type = "NTP". - type: object - properties: - ipAddress: - description: > - IP address of the NTP server. See note - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IpAddress" - hostname: - description: > - Indicates the hostname of the NTP server. See note. - type: string - otherClockSyncParams: - description: > - Information for the other types of clock synchronization. - May be present if type = "OTHER". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - - ServerInterfaceSecurityInfo: - description: > - This type represents security related information of an NFV-MANO - service interface produced by an NFV-MANO functional entity. - * NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration - shall be supported, and dynamic configuration may be supported. - type: object - required: - - authType - - oauthServerInfo - properties: - authType: - description: > - Type of API request authorization to be used by the API producer. - - The support of authorization methods for the API producer is specified - in clause 8.3.6 of ETSI GS NFV-SOL 013. - - Permitted values: - - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - - OAUTH2: Using access token, as defined by the OAuth 2.0 specification - in IETF RFC 6749. - type: array - items: - type: string - enum: - - TLS_TUNNEL - - OAUTH2 - minItems: 1 - oauthServerInfo: - description: > - OAuth 2.0 authorization server information and configuration. - type: object - required: - - providedConfiguration - - tlsCipherSuites - properties: - dynamicDiscovery: - description: > - Configuration data used when performing dynamic discovery of - the authorization server identifier. See note. - type: object - required: - - webFingerHost - properties: - webFingerHost: - description: > - Server where the WebFinger service is hosted. When used, - the request to the WebFinger resource shall conform as specified - in clause 5.1.3 of ETSI GS NFV-SEC 022. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - providedConfiguration: - description: > - Configuration data used to setup the authorization server identifier. See note. - type: object - required: - - authServerId - properties: - authServerId: - description: > - Authorization server identifier as defined in ETSI GS NFV-SEC 022. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - tlsCipherSuites: - description: > - List of cipher suites that shall be declared as supported by the - API producer when performing the SSL or TLS negotiation with the - authorization server. Valid values of cipher suites are defined - in IETF RFC 8447. - type: array - items: - type: string - minItems: 1 - tlsTunnelInfo: - description: > - Information and configuration related to the use of TLS tunnel. - Shall be present if authType contains "TLS_TUNNEL". - type: object - properties: - tlsTunnelCipherSuites: - description: > - List of cipher suites that shall be declared as supported by the API - producer when performing the SSL or TLS negotiation with the API client. - Valid values of cipher suites are defined in IETF RFC 8447. - type: array - items: - type: string - minItems: 1 - required: - - tlsTunnelCipherSuites - - ClientInterfaceSecurityInfo: - description: > - This type represents security related information for accessing an NFV-MANO - service interface produced by an NFV-MANO functional entity. - * NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration - shall be supported, and dynamic configuration may be supported. - type: object - required: - - authType - - oauthServerInfo - properties: - authType: - description: > - Type of API request authorization to be used by the API consumer accessing - the API. - - The support of authorization methods for the API consumer is specified in - clause 8.3.6 of ETSI GS NFV-SOL 013. - - Permitted values: - - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - - OAUTH2: Using access token, as defined by the OAuth 2.0 specification - in IETF RFC 6749. - type: array - items: - type: string - enum: - - TLS_TUNNEL - - OAUTH2 - minItems: 1 - oauthServerInfo: - description: > - OAuth 2.0 authorization server information and configuration. - type: object - properties: - dynamicDiscovery: - description: > - Configuration data used when performing dynamic discovery of the authorization - server identifier. See note. - type: object - required: - - webFingerHost - properties: - webFingerHost: - description: > - Server where the WebFinger service is hosted. When used, the request to - the WebFinger resource shall conform as specified in clause 5.1.3 of - ETSI GS NFV-SEC 022. - type: string - format: uri - providedConfiguration: - description: > - Configuration data used to setup the authorization server identifier. See note. - type: object - required: - - authServerId - properties: - authServerId: - description: > - Authorization server identifier as defined in ETSI GS NFV-SEC 022. - type: string - format: uri - tlsCipherSuites: - description: > - List of cipher suites that shall be declared as supported by the API consumer when - performing the SSL or TLS negotiation with the authorization server. Valid values - of cipher suites are defined in IETF RFC 8447. - type: array - items: - type: string - minItems: 1 - tlsTunnelInfo: - description: > - Information and configuration related to the use of TLS tunnel. Shall be - present if authType contains "TLS_TUNNEL". - type: object - properties: - tlsTunnelCipherSuites: - description: > - List of cipher suites that shall be declared as supported by the API - consumer when performing the SSL or TLS negotiation with the API producer. - Valid values of cipher suites are defined in IETF RFC 8447. - type: array - items: - type: string - minItems: 1 - - #referenced simple data types - ManoServiceInterfaceTypeShortName: - description: > - For the RESTful NFV-MANO APIs, valid values are all values for "apiName" as defined - in ETSI GS NFV-SOL 002, ETSI GS NFV-SOL 003, and ETSI GS NFV-SOL 005. - - For the NFV-MANO service interfaces for which no API is specified by ETSI NFV, valid - values are defined in table 5.6.4.3-1. - - NOTE: The table is expected to be updated, by removing the corresponding listed entries, - once the interfaces are specified as a RESTful NFV-MANO API. - type: string - - UsageStateEnumType: - description: > - The enumeration UsageStateEnumType defines values representing the usage - state of a managed entity. - The UsageStateEnumType shall comply with the provisions: - - IN_USE The managed entity is currently being used. - - NOT_IN_USE The managed entity is currently not being used. - type: string - enum: - - IN_USE - - NOT_IN_USE - - ChangeOperationalStateEnumType: - description: > - The enumeration ChangeOperationalStateEnumType defines permitted values - for the change state operation. - The ChangeOperationalStateEnumType shall comply with the provisions: - - START To start the managed entity. - - STOP To stop the managed entity. - - RESTART To stop and start again the managed entity. - type: string - enum: - - START - - STOP - - RESTART - - ChangeAdministrativeStateEnumType: - description: > - The enumeration ChangeAdministrativeStateEnumType defines permitted values - for the change of administrative state operation. - The ChangeAdministrativeStateEnumType shall comply with the provisions: - - LOCK To lock the managed entity. - - UNLOCK To unlock the managed entity. - type: string - enum: - - LOCK - - UNLOCK - - InterfaceOperationalStateEnumType: - description: > - The enumeration InterfaceOperationalStateEnumType defines values representing - the operational state of an NFV-MANO service interface type of managed entity. - The InterfaceOperationalStateEnumType shall comply with the provisions : - - STARTED The managed entity is operational. - - STOPPED The managed entity is not operational. - - STOPPING The managed entity is in the transition to stop. - - STARTING The managed entity is in the transition to start and become operational. - type: string - enum: - - STARTED - - STOPPED - - STOPPING - - STARTING - - StopEnumType: - description: > - The enumeration ChangeStateOpOccStateEnumType defines permitted values - for the change state operation. It shall comply with the provisions: - - GRACEFUL To stop the managed entity immediately after accepting the request. - - FORCEFUL To stop the managed entity attempting to gracefully discharge the entity from service. - type: string - enum: - - GRACEFUL - - FORCEFUL - - ManoEntityEnumType: - description: > - The enumeration ManoEntityEnumType defines the permitted values to - represent NFV-MANO functional entities. It shall comply with - the provisions : - - NFVO The NFV-MANO functional entity is an NFVO. - - VNFM The NFV-MANO functional entity is a VNFM. - - VIM The NFV-MANO functional entity is a VIM. - - WIM The NFV-MANO functional entity is a WIM. - type: string - enum: - - NFVO - - VNFM - - VIM - - WIM - - PeerEntityEnumType: - description: > - The enumeration PeerEntityEnumType defines the permitted values - to represent peer functional entities. it shall complains with - the provisions : - - NFVO The peer functional entity is an NFVO. - - VNFM The peer functional entity is a VNFM. - - VIM The peer functional entity is a VIM. - - WIM The peer functional entity is a WIM. - - EM The peer functional entity is an EM. - - OSS The peer functional entity is an OSS/BSS. - - WIM The peer functional is a WIM. - type: string - enum: - - NFVO - - VNFM - - VIM - - WIM - - EM - - OSS - - WIM - parameters: filter.ManoServiceInterface: @@ -2421,22 +764,6 @@ components: required: false schema: type: string - exclude_default.CimSubscription: - name: exclude_default - 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. - - The following attributes shall be excluded from the CimSubscription - structure in the response body if this parameter is provided, or none of - the parameters "all_fields," "fields", "exclude_fields", "exclude_default" - are provided: - - none - in: query - required: false - schema: - type: string exclude_default.ChangeStateOpOcc: name: exclude_default description: > @@ -2448,7 +775,7 @@ components: structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - - none + - operationParams in: query required: false schema: @@ -2456,15 +783,12 @@ components: exclude_default.PeerEntity: name: exclude_default 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. + 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 which acts as API producer shall support this parameter. - The following attributes shall be excluded from the PeerEntity - structure in the response body if this parameter is provided, or none of - the parameters "all_fields," "fields", "exclude_fields", "exclude_default" - are provided: - - none + The following attributes shall be excluded from the PeerEntity structure in the response body if this parameter + is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: + • consumedManoInterfaces. in: query required: false schema: @@ -2516,7 +840,7 @@ components: content: application/merge-patch+json: schema: - $ref: "#/components/schemas/ManoConfigModificationRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoConfigModificationRequest" required: true ChangeManoEntityStateRequest: @@ -2525,12 +849,12 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ChangeStateRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ChangeStateRequest" required: true - + ModifyManoEnityInterfaceRequest: description: > - Parameters for the modification of configuration parameters of + Parameters for the modification of configuration parameters of the NFV-MANO service interface, as defined in clause 5.6.2.12. The Content-Type header shall be set to "application/merge-patch+json" @@ -2538,49 +862,49 @@ components: content: application/merge-patch+json: schema: - $ref: "#/components/schemas/ManoServiceInterfaceModificationRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoServiceInterfaceModificationRequest" required: true - + ChangeManoEntityInterfaceStateRequest: description: > - Parameters for the change state operation, as defined in + Parameters for the change state operation, as defined in clause 5.6.2.8. content: application/json: schema: - $ref: "#/components/schemas/ChangeStateRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ChangeStateRequest" required: true CimSubscriptionRequest: description: > - Details of the subscription to be created, as defined in + Details of the subscription to be created, as defined in clause 5.6.2.5-1. content: application/json: schema: - $ref: "#/components/schemas/CimSubscriptionRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/CimSubscriptionRequest" required: true - + CreatePeerEntityRequest: description: > The peer entity creation parameters, as defined in clause 5.6.2.14. content: application/json: schema: - $ref: "#/components/schemas/CreatePeerEntityRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/CreatePeerEntityRequest" required: true - + ModifyPeerEntityRequest: description: > - Parameters for the modification of configuration parameters of + Parameters for the modification of configuration parameters of the peer functional entity, as defined in clause 5.6.2.16 - The Content-Type header shall be set to "application/merge-patch+json" + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. content: application/merge-patch+json: schema: - $ref: "#/components/schemas/PeerEntityConfigModificationRequest" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/PeerEntityConfigModificationRequest" required: true responses: @@ -2588,7 +912,7 @@ components: description: > 200 OK - Shall be returned when configuration and information about + Shall be returned when configuration and information about the NFV-MANO functional entity has been read successfully. The response body shall contain a representation of the NFV-MANO functional entity, as defined in clause 5.6.2.2. @@ -2608,13 +932,13 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ManoEntity" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoEntity" ManoEntity.Patch.200: description: > 200 OK - Shall be returned when the modification of configuration on the + Shall be returned when the modification of configuration on the NFV-MANO functional entity has been accepted and completed. headers: WWW-Authenticate: @@ -2632,19 +956,19 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ManoConfigModifications" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoConfigModifications" ManoEntity.Patch.409: description: > 409 CONFLICT - Shall be returned upon the following error: The operation cannot - be executed currently, due to a conflict with the state of the + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the "NFV-MANO entity" resource. - Typically, this is due to the fact that another configuration and + Typically, this is due to the fact that another configuration and information modification is ongoing. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. headers: WWW-Authenticate: @@ -2667,13 +991,13 @@ components: description: > 412 PRECONDITION FAILED - Shall be returned upon the following error: A precondition given in + Shall be returned upon the following error: A precondition given in an HTTP request header is not fulfilled. - Typically, this is due to an ETag mismatch, indicating that the resource + 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 response body should contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error headers: WWW-Authenticate: @@ -2701,7 +1025,7 @@ components: The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that contains + The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "Individual change state operation occurrence" resource corresponding to the operation. headers: @@ -2729,13 +1053,13 @@ components: description: > 409 CONFLICT - Shall be returned upon the following error: The operation cannot be + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the resource is in an incompatible + Typically, this is due to the fact that the resource is in an incompatible state, or that another change state operation is ongoing. - The response body shall contain a ProblemDetails structure, in which the + The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. headers: WWW-Authenticate: @@ -2754,27 +1078,27 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + ManoInterfaces.Get.200: description: > 200 OK - Shall be returned when information about zero or more NFV-MANO + Shall be returned when information about zero or more NFV-MANO service interfaces has been queried successfully. - The response body shall contain in an array the representations - of zero or more NFV-MANO service interfaces, as defined in + The response body shall contain in an array the representations + of zero or more NFV-MANO service interfaces, as defined in clause 5.6.2.11. - If the “filter" URI parameter or one of the "all_fields", "fields" - (if supported), "exclude_fields" (if supported) or "exclude_default" - URI parameters was supplied in the request, the data in the response - body shall have been transformed according to the rules specified in + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or "exclude_default" + URI parameters was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. - If the NFV-MANO functional entity supports alternative N°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 + If the NFV-MANO functional entity supports alternative N°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: @@ -2791,7 +1115,7 @@ components: type: string Link: description: > - Reference to other resources. Link HTTP header in this response + Reference to other resources. Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. schema: type: string @@ -2802,22 +1126,22 @@ components: schema: type: array items: - $ref: "#/components/schemas/ManoServiceInterface" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoServiceInterface" ManoInterfaces.Get.400: description: > 400 BAD REQUEST - Shall be returned upon the following errors: + Shall be returned upon the following errors: - Invalid attribute-based filtering expression. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Invalid attribute selector. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. - If the NFV-MANO functional entity supports alternative N°1 (error) - according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, - this error response shall follow the provisions in clause 5.4.2.2 of + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: @@ -2836,15 +1160,15 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + IndividualManoInterface.Get.200: description: > 200 OK - Shall be returned when information about an individual NFV-MANO + Shall be returned when information about an individual NFV-MANO service interface has been read successfully. - The response body shall contain a representation of the NFV-MANO + The response body shall contain a representation of the NFV-MANO service interface, as defined in clause 5.6.2.11. headers: WWW-Authenticate: @@ -2862,14 +1186,14 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ManoServiceInterface" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoServiceInterface" IndividualManoInterface.Patch.200: description: > 200 OK Shall be returned when the request has been accepted and completed. - The response body shall contain a representation of the attribute + The response body shall contain a representation of the attribute modifications for the "Individual NFV-MANO service interface" resource, as defined in clause 5.6.2.13. headers: @@ -2888,20 +1212,20 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ManoServiceInterfaceModifications" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ManoServiceInterfaceModifications" IndividualManoInterface.Patch.409: description: > 409 CONFLICT - Shall be returned upon the following error: The operation cannot - be executed currently, due to a conflict with the state of the + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the "Individual NFV-MANO service interface" resource. - Typically, this is due to the fact that another operation is + Typically, this is due to the fact that another operation is ongoing. - The response body shall contain a ProblemDetails structure, - in which the "detail" attribute should convey more information + The response body shall contain a ProblemDetails structure, + in which the "detail" attribute should convey more information about the error. headers: WWW-Authenticate: @@ -2915,7 +1239,7 @@ components: description: > Version of the API used in the response. schema: - type: string + type: string content: application/json: schema: @@ -2924,14 +1248,14 @@ components: description: > 412 PRECONDITION FAILED - Shall be returned upon the following error: A precondition given + Shall be returned upon the following error: A precondition given in an HTTP request header is not fulfilled. - Typically, this is due to an ETag mismatch, indicating that the + 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 + The response body should contain a ProblemDetails structure, + in which the "detail" attribute should convey more information about the error. headers: WWW-Authenticate: @@ -2950,18 +1274,18 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + ManoInterfaceChangeState.Post.202: description: > 202 ACCEPTED - Shall be returned when the request has been accepted for + Shall be returned when the request has been accepted for processing. The response body shall be empty. - The HTTP response shall include a “Location” HTTP header that - contains the URI of the newly-created "Individual change state + The HTTP response shall include a “Location” HTTP header that + contains the URI of the newly-created "Individual change state operation occurrence" resource corresponding to the operation. headers: WWW-Authenticate: @@ -2978,7 +1302,7 @@ components: type: string Location: description: > - The resource URI of the created "Individual change state + The resource URI of the created "Individual change state operation occurence" resource. schema: type: string @@ -2989,13 +1313,13 @@ components: description: > 409 CONFLICT - Shall be returned upon the following error: The operation cannot be + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the resource is in an incompatible + Typically, this is due to the fact that the resource is in an incompatible state, or that another change state operation is ongoing. - The response body shall contain a ProblemDetails structure, in which the + The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. headers: WWW-Authenticate: @@ -3014,18 +1338,18 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + Subscriptions.Post.201: description: > 201 CREATED - Shall be returned when the subscription has been created + Shall be returned when the subscription has been created successfully. - The response body shall contain a representation of the + The response body shall contain a representation of the created "Individual subscription" resource. - The HTTP response shall include a "Location" HTTP header + The HTTP response shall include a "Location" HTTP header that points to the created "Individual subscription" resource. headers: WWW-Authenticate: @@ -3051,18 +1375,18 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CimSubscription" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/CimSubscription" Subscriptions.Post.303: description: > 303 SEE OTHER - Shall be returned when a subscription with the same - callbackURI and the same filter already exists and the - policy of NFV-MANO functional entity is to not create + Shall be returned when a subscription with the same + callbackURI and the same filter already exists and the + policy of NFV-MANO functional entity is to not create redundant subscriptions. - The HTTP response shall include a "Location" HTTP header - that contains the resource URI of the existing "Individual + 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. @@ -3127,21 +1451,21 @@ components: description: > 200 OK - Shall be returned when the list of subscriptions has been queried + 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 NFV-MANO configuration + 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 NFV-MANO configuration and information management subscriptions as defined in clause 5.6.2.6. - If the "filter" URI parameter was supplied in the request, the data in - the response body shall have been transformed according to the rules + 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 NFV-MANO functional entity supports alternative N°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 + If the NFV-MANO functional entity supports alternative N°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: @@ -3158,7 +1482,7 @@ components: type: string Link: description: > - Reference to other resources. Link HTTP header in this response + Reference to other resources. Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. schema: type: string @@ -3169,19 +1493,19 @@ components: schema: type: array items: - $ref: "#/components/schemas/CimSubscription" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/CimSubscription" Subscriptions.Get.400: description: > 400 BAD REQUEST - Shall be returned upon the following errors: + Shall be returned upon the following errors: - Invalid attribute-based filtering expression. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. - If the NFV-MANO functional entity supports alternative N°1 (error) - according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, - this error response shall follow the provisions in clause 5.4.2.2 of + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: @@ -3200,15 +1524,15 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + Subscription.Get.200: description: > 200 OK - Shall be returned when information about an individual subscription + Shall be returned when information about an individual subscription has been read successfully. - The response body shall contain a representation of the "Individual + The response body shall contain a representation of the "Individual subscription" resource. headers: WWW-Authenticate: @@ -3226,12 +1550,12 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CimSubscription" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/CimSubscription" Subscription.Delete.204: description: > 204 NO CONTENT - Shall be returned when the "Individual subscription" resource + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. @@ -3248,27 +1572,27 @@ components: Version of the API used in the response. schema: type: string - + ChangeStateOpOcc.Get.200: description: > 200 OK - Shall be returned when status information for zero or more + Shall be returned when status information for zero or more "change state operation occurrences" has been queried successfully. - The response body shall contain in an array the status information - about zero or more "Individual change state operation occurrences", + The response body shall contain in an array the status information + about zero or more "Individual change state operation occurrences", as defined in clause 5.6.2.9. - If the “filter" URI parameter or one of the "all_fields", "fields" - (if supported), "exclude_fields" (if supported) or "exclude_default" - URI parameters was supplied in the request, the data in the response - body shall have been transformed according to the rules specified in + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or "exclude_default" + URI parameters was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. - If the NFV-MANO functional entity supports alternative N°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 + If the NFV-MANO functional entity supports alternative N°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: @@ -3285,7 +1609,7 @@ components: type: string Link: description: > - Reference to other resources. Link HTTP header in this response + Reference to other resources. Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. schema: type: string @@ -3296,22 +1620,22 @@ components: schema: type: array items: - $ref: "#/components/schemas/ChangeStateOpOcc" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ChangeStateOpOcc" ChangeStateOpOcc.Get.400: description: > 400 BAD REQUEST - Shall be returned upon the following errors: + Shall be returned upon the following errors: - Invalid attribute-based filtering expression. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Invalid attribute selector. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. - If the NFV-MANO functional entity supports alternative N°1 (error) - according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, - this error response shall follow the provisions in clause 5.4.2.2 of + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: @@ -3330,15 +1654,15 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + IndividualChangeStateOpOcc.Get.200: description: > 200 OK - Shall be returned when information about an "Individual change + Shall be returned when information about an "Individual change state operation occurrence" resource has been read successfully. - The response body shall contain status information about a change + The response body shall contain status information about a change state operation occurrence, as defined in clause 5.6.2.9. headers: WWW-Authenticate: @@ -3356,20 +1680,20 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ChangeStateOpOcc" - + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/ChangeStateOpOcc" + PeerEntities.Post.201: description: > 201 CREATED - Shall be returned when a new "Individual peer entity" resource + Shall be returned when a new "Individual peer entity" resource has been created successfully. - The response body shall contain a representation of the created - resource with regards to a peer entity, as defined in + The response body shall contain a representation of the created + resource with regards to a peer entity, as defined in clause 5.6.2.15. - The HTTP response shall include a “Location” HTTP header that + The HTTP response shall include a “Location” HTTP header that points to the created "Individual peer entity" resource. headers: WWW-Authenticate: @@ -3395,27 +1719,27 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PeerEntity" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/PeerEntity" PeerEntities.Get.200: description: > 200 OK - Shall be returned when information about zero or more peer + Shall be returned when information about zero or more peer entities has been queried successfully. - The response body shall contain in an array the resource - representations of zero or more peer entities, as defined + The response body shall contain in an array the resource + representations of zero or more peer entities, as defined in clause 5.6.2.15. - If the “filter" URI parameter or one of the "all_fields", "fields" - (if supported), "exclude_fields" (if supported) or "exclude_default" - URI parameters was supplied in the request, the data in the response - body shall have been transformed according to the rules specified in + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or "exclude_default" + URI parameters was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. - If the NFV-MANO functional entity supports alternative N°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 + If the NFV-MANO functional entity supports alternative N°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: @@ -3432,7 +1756,7 @@ components: type: string Link: description: > - Reference to other resources. Link HTTP header in this response + Reference to other resources. Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. schema: type: string @@ -3443,22 +1767,22 @@ components: schema: type: array items: - $ref: "#/components/schemas/PeerEntity" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/PeerEntity" PeerEntities.Get.400: description: > 400 BAD REQUEST - Shall be returned upon the following errors: + Shall be returned upon the following errors: - Invalid attribute-based filtering expression. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Invalid attribute selector. - The response body shall contain a ProblemDetails structure, in which + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. - If the NFV-MANO functional entity supports alternative N°1 (error) - according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, - this error response shall follow the provisions in clause 5.4.2.2 of + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: @@ -3477,15 +1801,15 @@ components: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" - + IndividualPeerEntity.Get.200: description: > 200 OK - Shall be returned when information about an individual peer + Shall be returned when information about an individual peer functional entity has been read successfully. - The response body shall contain a resource representation of + The response body shall contain a resource representation of the peer functional entity, as defined in clause 5.6.2.15. headers: WWW-Authenticate: @@ -3503,15 +1827,15 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PeerEntity" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/PeerEntity" IndividualPeerEntity.Patch.200: description: > 200 OK Shall be returned when the request has been accepted and completed. - The response body shall contain a representation of the attribute - modifications for the "Individual peer entity" resource, as defined + The response body shall contain a representation of the attribute + modifications for the "Individual peer entity" resource, as defined in clause 5.6.2.17. headers: WWW-Authenticate: @@ -3529,7 +1853,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PeerEntityConfigModifications" + $ref: "./components/NFVManoConfigurationAndInformationManagement_def.yaml#/components/schemas/PeerEntityConfigModifications" IndividualPeerEntity.Patch.409: description: > 409 CONFLICT. diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagement/components/NFVManoConfigurationAndInformationManagement_def.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagement/components/NFVManoConfigurationAndInformationManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..92fcdb26054bc30da687b2b21c85cfee569d270e --- /dev/null +++ b/src/SOL009/NFVManoConfigurationAndInformationManagement/components/NFVManoConfigurationAndInformationManagement_def.yaml @@ -0,0 +1,1751 @@ +components: + schemas: + ManoEntity: + description: > + This type represents an NFV-MANO functional entity. + * NOTE 1: It shall be present when "type" attribute is "NFVO", and it shall be absent in any other case. + * NOTE 2: It shall be present when "type" attribute is "VNFM", and it shall be absent in any other case. + * NOTE 3: It shall be present when "type" attribute is "VIM", and it shall be absent in any other case. + * NOTE 4: The information about the NFV-MANO services offered by a specific type of NFV-MANO functional + entity is specified by the manoServices attribute. + * NOTE 5: It is optional for the API producer to support the "manoEntityComponents" attribute. + * NOTE 6: It shall be present when "type" attribute is "WIM", and it shall be absent in any other case. + type: object + required: + - id + - type + - name + - description + - provider + - softwareVersion + - manoConfigurableParams + - manoApplicationState + - _links + properties: + id: + description: > + Identifier of the NFV-MANO functional entity. The identifier shall be set during + the initial deployment of the NFV-MANO functional entity and its value allocated + based on network operator policies. The value of this identifier shall be unique + at least in the scope of the NFV-MANO deployment. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + type: + description: > + Type of NFV-MANO functional entity. + $ref: "#/components/schemas/ManoEntityEnumType" + name: + description: > + Human-readable name of the NFV-MANO functional entity. + + This attribute can be modified with the PATCH method. + type: string + description: + description: > + Human-readable description of the NFV-MANO functional entity. + + This attribute can be modified with the PATCH method. + type: string + provider: + description: > + Information about the provider of the NFV-MANO functional entity. + It typically includes the name of the provider. + type: string + softwareVersion: + description: > + The version of the software of the NFV-MANO functional entity. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + manoEntityComponents: + description: > + The deployed NFV-MANO functional entity components which realize the + NFV-MANO functional entity. See note 5. + type: array + items: + $ref: "#/components/schemas/ManoEntityComponent" + minItems: 0 + manoServices: + description: > + Information about the NFV-MANO services provided by the NFV-MANO + functional entity. + type: array + items: + $ref: "#/components/schemas/ManoService" + minItems: 1 + manoConfigurableParams: + description: > + Information and current values of the configurable parameters. + + This attribute can be modified with the PATCH method. + $ref: "#/components/schemas/ManoConfigurableParams" + manoApplicationState: + description: > + Information and current values of the NFV-MANO functional entity’s application state. + type: object + required: + - operationalState + - administrativeState + - usageState + properties: + operationalState: + description: > + The operational state of the NFV-MANO functional entity application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: > + The administrative state of the NFV-MANO functional entity application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + usageState: + description: > + The usage state of the NFV-MANO functional entity application. + $ref: "#/components/schemas/UsageStateEnumType" + nfvoSpecificInfo: + description: > + The information specific to an NFVO entity. See note 1 and not 4. + $ref: "#/components/schemas/NfvoSpecificInfo" + vnfmSpecificInfo: + description: > + The information specific to a VNFM entity. See note 2 and not 4. + $ref: "#/components/schemas/VnfmSpecificInfo" + vimSpecificInfo: + description: > + The information specific to an VIM entity. See note 3 and not 4. + $ref: "#/components/schemas/VimSpecificInfo" + wimSpecificInfo: + description: > + The information specific to a WIM entity. See notes 4 and note 6. + $ref: "#/components/schemas/WimSpecificInfo" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - manoServiceInterfaces + - peerEntities + - changeState + - changeStateOpOccs + properties: + self: + description: URI of this resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + manoServiceInterfaces: + description: Link to the "NFV-MANO service interfaces" resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + peerEntities: + description: Link to "Peer entities" resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + changeState: + description: Link to the "Change state" task resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + changeStateOpOccs: + description: Link to the "Change state operation occurrences" resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + + ManoConfigModificationRequest: + description: > + This type represents attribute modifications for configuration parameters + of an NFV-MANO functional entity. + * NOTE: At least one of these attributes shall be provided if requesting a modification + of the NFV-MANO service identified by "id". + type: object + properties: + name: + description: > + New value of the "name" attribute in "ManoEntity". + type: string + description: + description: > + New value of the "description" attribute in "ManoEntity". + type: string + clockSyncs: + description: > + Modifications of the "clockSyncs" attribute in the "ManoEntityConfigurableParams". + If present, these modifications shall be applied according to the rules of JSON Merge PATCH + (see IETF RFC 7396). + type: object + additionalProperties: + $ref: "#/components/schemas/ClockSyncInfo" + defaultLogCompileBySizeValue: + description: > + New value of the "defaultLogCompileBySizeValue" attribute in the + "ManoEntityConfigurableParams". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + defaultLogCompileByTimerValue: + description: > + New value of the "defaultLogCompileByTimerValue" attribute in the + "ManoEntityConfigurableParams". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + manoServiceModifications: + description: > + New content of certain entries in the "manoServices" attribute array + in the "ManoEntity", as defined below this table. + The following provisions shall apply when modifying an attribute that is an array of structured + "manoServiceModifications". + Assumptions: + A) "oldList" is the array to be modified, "newList" is the array that contains the changes. + B) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList". + C) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same + content of "id" attribute as the "newEntry". + D) In any array of objects, the content of "id" is unique (i.e. there are no two entries + with the same content of "id"). + Provisions: + 1) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", the values of + the sub-attributes of "oldEntry" shall be replaced by the value of the sub-attributes in the "newEntry". + 2) If the "newEntry" in "newList" has no corresponding "oldEntry" in "oldList" (i.e. the "id" is + not found), the modification operation will fail as a whole and an error message shall be raised. + type: array + items: + type: object + required: + - id + properties: + id: + description: > + Identifier of the NFV-MANO service to modify. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + name: + description: > + New value for the "name" attribute in the "ManoService". See note. + type: string + description: + description: > + New value for the "description" attribute in the "ManoService". See note. + type: string + + ManoConfigModifications: + description: > + This type represents attribute modifications that were performed on the + "NFV-MANO entity" resource of the producer NFV-MANO functional entity. + The attributes that can be included consist of those requested to be + modified explicitly in the "ManoConfigModificationRequest" data structure. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "ManoEntity", as defined in clause 5.6.2.3 + type: string + description: + description: > + If present, this attribute signals modifications of the "description" + attribute in "ManoEntity", as defined in clause 5.6.2.3. + type: string + clockSyncs: + description: > + If present, this attribute signals modifications of the "clockSyncs" attribute in + "ManoEntityConfigurableParams", as defined in clause 5.6.2.3. + type: object + additionalProperties: + $ref: "#/components/schemas/ClockSyncInfo" + defaultLogCompileBySizeValue: + description: > + If present, this attribute signals modifications of the + "defaultLogCompileBySizeValue" attribute in the + "ManoEntityConfigurableParams". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + defaultLogCompileByTimerValue: + description: > + If present, this attribute signals modifications of the + "defaultLogCompileByTimerValue" attribute in the + "ManoEntityConfigurableParams". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + manoServiceModifications: + description: > + If present, this attribute signals modifications of the "manoServices" + attribute array in the "ManoEntity", as defined in clause 5.6.2.3. + type: array + items: + type: object + properties: + id: + description: > + Identifier of the NFV-MANO service that has been modified. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + name: + description: > + If present, this attribute signals modification of the "name" + attribute in the "ManoService". + type: string + description: + description: > + If present, this attribute signals modification of the + "description" attribute in the "ManoService". + type: string + required: + - id + + CimSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about NFV-MANO configuration and information management changes. + 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/CimNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + CimSubscription: + description: > + This type represents a subscription related to notifications about + NFV-MANO configuration and information management changes + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier that identifies the subscription + $ref: "../../components/SOL009_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/CimNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + properties: + self: + description: > + URI of this resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + required: + - self + + ChangeStateRequest: + description: > + This type represents request parameters for changing the state of a managed entity. + * NOTE 1: In the present document version, a request shall only include an operational state change + (attribute "operationalStateChange") or an administrative state change request (attribute + "administrativeStateChange"), but not both. + * NOTE 2: The "stopType" shall only be provided when the "operationalStateAction" attribute is equal + to "STOP" or "RESTART". The "gracefulStopTimeout" shall be absent when the "stopType" attribute + is equal to "FORCEFUL", and may be provided otherwise. + type: object + properties: + operationalStateChange: + description: > + A change of operational state. Shall be present if the state change request + refers to the operational state. See note 1. + but not both. + type: object + properties: + operationalStateAction: + description: > + The desired operation state to change the managed object to. In case of + changing the state of an NFV-MANO service interface the value + "RESTART" shall not be used. + $ref: "#/components/schemas/ChangeOperationalStateEnumType" + stopType: + description: > + It signals the type of stop. See note 2. + $ref: "#/components/schemas/StopEnumType" + gracefulStopTimeout: + description: > + The time internal (in seconds) to wait for the entity to be taken out + of service during graceful stop. See note 2. + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: > + A change of administrative state. Shall be present if the state change request + refers to the administrative state. See note 1. + but not both. + type: object + required: + - administrativeStateAction + properties: + administrativeStateAction: + description: > + The desired administrative state to change the managed object to. + $ref: "#/components/schemas/ChangeAdministrativeStateEnumType" + + ChangeStateOpOcc: + description: > + This type represents a Change state operation occurrence. + type: object + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + properties: + id: + description: > + Identifier of this change state operation occurrence. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + operationState: + description: > + The state of the "change state operation occurrence". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType" + stateEnteredTime: + description: > + Date-time when the current state was entered. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + startTime: + description: > + Date-time of the start of the operation. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + managedObjectRef: + description: > + Reference of the managed object to which the change state operation + occurrence relates. The value of the "type" attribute shall be + "MANO_ENTITY" or "MANO_SERVICE_IF". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + changeOperationalStateRequest: + description: > + The type of the change of operational state that was requested. Shall + be present if the change of state operation triggered a change of + operational state. + $ref: "#/components/schemas/ChangeOperationalStateEnumType" + changeAdministrativeStateRequest: + description: > + The type of the change of administrative state that was requested. Shall + be present if the change of state operation triggered a change of + administrative state. + $ref: "#/components/schemas/ChangeAdministrativeStateEnumType" + operationParams: + description: > + Input parameters of the change state operation. This attribute shall be + formatted according to the request data type of the related change state + operation. + + The following mapping between operationType and the data type of this + attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is returned in a response + to reading an individual resource, and may be present according to the chosen + attribute selector parameter if this data type is returned in a response to + a query of a container resource. + + ManoServiceInterface: + description: > + This type represents an individual NFV-MANO service interface produced by + an NFV-MANO functional entity. + * NOTE 1: The information to be provided in this attribute shall relate to the specification and + version of the specification. For instance, "ETSI GS NFV-SOL 003 (V2.4.1)". + * NOTE 2: If this attribute is not present, the value of this parameter is undefined. Overload is + handled by the error handling schemes defined by the applicable API specification. + * NOTE 3: Due to the security sensitive information associated to the attribute, based on access + control policies, the API consumer might have read only, write only, read/write, or no access + at all to the attribute's value. In case the API consumer is not allowed to read the value of + the security sensitive attribute, the attribute shall be omitted when the information is to be + provided in a response message, and shall be provided otherwise. In case the API consumer is + not allowed to modify the value of the security sensitive attribute, and the modification request + includes new attribute values, the whole modification request shall be rejected, and proper + error information returned. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + properties: + id: + description: > + Identifier of the NFV-MANO functional entity interface. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + name: + description: > + Human-readable name of the NFV-MANO functional entity interface. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the NFV-MANO functional + entity. Valid values are defined in clause 5.6.4.3. + type: string + standardVersion: + description: > + Version of the standard the interface is compliant to. See note 1. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + providerSpecificApiVersion: + description: > + Provider-specific software API version. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + apiVersion: + description: > + API version, in compliance with the version identifiers and parameters + format specified in clause 9.1 of ETSI GS NFV-SOL 013. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + apiEndpoint: + description: > + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: > + Indicates the scheme ("http" or "https"), the host name and optional port, + and an optional sequence of path segments that together represent a prefix + path. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs + (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. + + This attribute can be modified with the PATCH method. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + apiName: + description: > + Indicates the interface name in an abbreviated form. Shall be present + for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each + interface is defined in the standard the interface is compliant to + (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. + type: string + apiMajorVersion: + description: > + Indicates the current major version of the API. Shall be present for + ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined + in the standard the interface is compliant to (see also clause 4.1 of + ETSI GS NFV-SOL 013). May be present otherwise. + type: string + apiUri: + description: > + URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, + the following prefix structure is used (see also clause 4.1 of ETSI + GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion} + For APIs not specified by ETSI NFV as part of the RESTful NFV-MANO APIs, + this attribute can be modified with the PATCH method. For RESTful NFV-MANO + APIs specified by ETSI NFV, this attribute shall not be modified. Instead, + changes are handled indirectly via patching of the "apiRoot" attribute’s + value. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + required: + - apiUri + maxConcurrentIntOpNumber: + description: > + Maximum number of concurrent operation requests supported on this interface. See note 2. + type: integer + supportedOperations: + description: > + Information about supported operations of this interface. + type: array + items: + type: object + properties: + operationName: + description: > + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: > + Maximum number of concurrent requests supported by the interface operation. See note 2. + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: > + State of the NFV-MANO service interface. + properties: + operationalState: + description: > + The operational state of the NFV-MANO service interface. + $ref: "#/components/schemas/InterfaceOperationalStateEnumType" + administrativeState: + description: > + The administrative state of the NFV-MANO service interface. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + usageState: + description: > + The usage state of the NFV-MANO service interface. + $ref: "#/components/schemas/UsageStateEnumType" + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + Security related information. + + This attribute can be modified with the PATCH method. See note 3. + $ref: "#/components/schemas/ServerInterfaceSecurityInfo" + metadata: + description: > + Additional attributes that provide metadata describing the NFV-MANO + service interface. + These attributes can be created, modified or removed with the PATCH + method. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + + ManoServiceInterfaceModificationRequest: + description: > + This type represents attribute modifications for configuration parameters of + an NFV-MANO service interface of the producer NFV-MANO functional entity. + * NOTE 1: Changing the name does not change the corresponding standardized API name in the resource URI + (refer to "{apiName}" defined in clause 4.1 of ETSI GS NFV-SOL 013). + * NOTE 2: The change of apiRoot or apiUri on an enabled and in use API may be service disruptive. Also, + that change invalidates any related URI that might have been cached at API consumers. + * NOTE 3: Due to the security sensitive information associated to the attribute, based on access control + policies, the API consumer might have read only, write only, read/write, or no access at all + to the attribute's value. In case the API consumer is not allowed to modify the value of the + security sensitive attribute, and the modification request includes new attribute values, + the whole modification request shall be rejected, and proper error information returned. + type: object + properties: + name: + description: > + New value of the "name" attribute in "ManoServiceInterface". See note 1. + type: string + apiRoot: + description: > + New value of the "apiRoot" attribute in "ManoServiceInterface". See note 2. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + apiUri: + description: > + New value of the "apiUri" attribute in "ManoServiceInterface". See note 2. + + Shall not be provided if a change of "apiRoot" is present in the request. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + securityInfo: + description: > + New value of the "securityInfo" attribute in "ManoServiceInterface". See note 3. + $ref: "#/components/schemas/ServerInterfaceSecurityInfo" + metadata: + description: > + Modifications of the "metadata" attribute in "ManoServiceInterface". + If present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + + ManoServiceInterfaceModifications: + description: > + This type represents attribute modifications that were performed on an + Individual NFV-MANO service interface" resource. The attributes that can + be included consist of those requested to be modified explicitly in the + "ManoServiceInterfaceModificationRequest" data structure. If applicable, + additional attributes of the "ManoServiceInterface" data structure that + were modified implicitly shall also be provided. + * NOTE: Due to the security sensitive information associated to the attribute, based on access control + policies, the API consumer might have read only, write only, read/write, or no access at all + to the attribute's value. In case the API consumer is not allowed to read the value of the security + sensitive attribute, the attribute shall be omitted when the information is to be provided + in a response message. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" attribute in + "ManoServiceInterface", as defined in clause 5.6.2.11. + type: string + apiRoot: + description: > + If present, this attribute signals modifications of the "apiRoot" attribute + in "ManoServiceInterface", as defined in clause 5.6.2.11. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + apiUri: + description: > + If present, this attribute signals modifications of the "apiUri" attribute + in "ManoServiceInterface", as defined in clause 5.6.2.11. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + securityInfo: + description: > + If present, this attribute signals modifications of the "securityInfo" + attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. See note. + $ref: "#/components/schemas/ServerInterfaceSecurityInfo" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" attribute + in "ManoServiceInterface", as defined in clause 5.6.2.11. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + + CreatePeerEntityRequest: + description: > + This type represents request parameters for the creation of a new peer entity resource. + * NOTE: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute + in the "ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity, + and shall follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute. + type: object + required: + - peerEntityId + - name + - type + properties: + peerEntityId: + description: > + Identifier of the peer functional entity. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + name: + description: > + Human-readable name of the peer functional entity. + type: string + type: + description: > + Type of the peer functional entity. + $ref: "#/components/schemas/PeerEntityEnumType" + description: + description: > + Human-readable description of the peer functional entity. + type: string + consumedManoInterfaces: + description: > + Initial information of the interface consumed by the NFV-MANO functional entity + from the peer functional entity. + type: object + additionalProperties: + $ref: "#/components/schemas/ConsumedManoInterfaceInfo" + peerEntityState: + description: > + Current values of the state of the peer functional entity. + type: object + properties: + operationalState: + description: > + TThe operation state of the peer functional entity’s application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: > + The administrative state of the peer functional entity’s application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + required: + - operationalState + - administrativeState + + PeerEntity: + description: > + This type represents an individual peer entity. + * NOTE 1: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute in the + "ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall + follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute. + * NOTE 2: ETSI GS NFV-IFA 031 [1] defines an additional attribute named "apiDiscoveryEndpoint" in the + PeerManoEntity. The modelling of this attribute is not specified in the present document version. + type: object + required: + - id + - peerEntityId + - name + - type + - peerEntityState + properties: + id: + description: > + Identifier of the resource representing the peer functional entity. + This identifier is allocated by the producer NFV-MANO functional entity. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + peerEntityId: + description: > + Identifier of the peer functional entity. See note 1. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + name: + description: > + Human-readable name of the peer functional entity. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the peer functional entity. + $ref: "#/components/schemas/PeerEntityEnumType" + description: + description: > + Human-readable description of the peer functional entity. + + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO functional entity + from the peer functional entity. + + This attribute can be modified with the PATCH method. + + The keys of the map, each of which identifies information about a particular + consumed NFV-MANO interface, are managed by the API consumer and referenced + from other data structures via the "consumedManoInterfaceIds" attribute. + type: object + additionalProperties: + $ref: "#/components/schemas/ConsumedManoInterfaceInfo" + peerEntityState: + description: > + State of the peer functional entity as provided by the API consumer when + creating the resource or when updating it with the PATCH method. + type: object + properties: + operationalState: + description: > + The operational state of the peer functional entity’s application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: + The administrative state of the peer functional entity’s application. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + required: + - operationalState + - administrativeState + + PeerEntityConfigModificationRequest: + description: > + This type represents attribute modifications for configuration parameters of a peer entity. + * NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo" + within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have + read only, write only, read/write, or no access at all to the attribute's value. In case the + API consumer is not allowed to modify the value of the security sensitive attribute, and the + modification request includes new attribute values, the whole modification request shall be rejected, + and proper error information returned. + type: object + properties: + name: + description: > + New value of the "name" attribute in "PeerEntity". + type: string + description: + description: > + New value of the "description" attribute in "PeerEntity", or "null" to + remove the attribute. + type: string + consumedManoInterfaces: + description: > + Modification of the "consumedManoInterfaces" attribute + in the "PeerEntity", as defined below this table. + + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396). See note. + type: object + additionalProperties: + $ref: "#/components/schemas/ConsumedManoInterfaceInfo" + operationalState: + description: > + New content of the "operationalState" attribute in the "peerEntityState" + structure in the "PeerEntity". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: > + New content of the "administrativeState" attribute in the "peerEntityState" + structure in the "PeerEntity". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + + PeerEntityConfigModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual peer entity" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "PeerEntityConfigModificationRequest" data structure. If applicable, + additional attributes of the "PeerEntity" data structure that were + modified implicitly shall also be provided. + * NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo" + within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have + read only, write only, read/write, or no access at all to the attribute's value. In case the + API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall + be omitted when the information is to be provided in a response message. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" attribute + in "PeerEntity", as defined in clause 5.6.2.15. + type: string + description: + description: > + If present, this attribute signals modifications of the "description" + attribute in "PeerEntity", as defined in clause 5.6.2.15. + type: string + consumedManoInterfaces: + description: > + If present, this attribute signals modifications of the + "consumedManoInterfaces" attribute in "PeerEntity", as defined in + clause 5.6.2.15. See note. + type: object + additionalProperties: + $ref: "#/components/schemas/ConsumedManoInterfaceInfo" + operationalState: + description: > + If present, this attribute signals modifications of the "operationalState" + attribute in the "peerEntityState" structure in the "PeerEntity", as defined + in clause 5.6.2.15. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: > + If present, this attribute signals modifications of the "administrativeState" + attribute in the "peerEntityState" structure in the "PeerEntity", as defined + in clause 5.6.2.15. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + + ManoConfigurableParams: + description: > + # Warning: No definition found in the document + ManoConfigurableParams + + #referenced + ManoEntityComponent: + description: > + This type represents information of a deployed component realizing part of an + NFV-MANO functional entity. It is optional for the API producer to support + this type. + type: object + required: + - id + properties: + id: + description: > + Identifier of the NFV-MANO functional entity component. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + manoServiceIds: + description: > + References to the NFV-MANO services that depend on the NFV-MANO functional + entity component. The identifier of the ManoService is referred. A service + may depend on multiple components. Multiple services may depend on the same + component. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + + ManoService: + description: > + This type represents information about an NFV-MANO service provided by the + NFV-MANO functional entity. + * NOTE: A cardinality greater than one supports having different interface versions or api Endpoints + to be used for accessing the same instance of an NFV-MANO service. + type: object + required: + - id + - name + - description + - manoServiceInterfaceIds + - _links + properties: + id: + description: > + Identifier of the NFV-MANO service. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + name: + description: > + Human-readable name of the NFV-MANO service. + + This attribute can be modified with the PATCH method. + type: string + description: + description: > + Human-readable description of the NFV-MANO service. + + This attribute can be modified with the PATCH method. + type: string + manoServiceInterfaceIds: + description: > + Reference to the NFV-MANO interfaces associated to the NFV-MANO service. + If cardinality is greater than one, the type of ManoServiceInterface + (see clause 5.6.3.3) shall be the same. The identifier of the + ManoServiceInterface is referred. See note + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + minItems: 1 + _links: + description: > + Links to resources related to this resource. + type: object + properties: + manoServiceInterfaces: + description: > + Link to the "individual NFV-MANO service interface" resources with + information about the associated interfaces to the NFV-MANO service. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + minItems: 1 + required: + - manoServiceInterfaces + + NfvoSpecificInfo: + description: > + This type represents information attributes specific to an NFVO entity, + and that can be relevant to more than one NFV-MANO service offered by an NFVO entity. + * NOTE 1: The information to be provided in this attribute shall relate to the specification and version + of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)". + NOTE 2: If this attribute is not present, the value of this parameter is undefined. + type: object + required: + - supportedVnfdFormats + - supportedNsdFormats + properties: + maxOnboardedNsdNum: + description: > + Maximum number of NSDs that can be on-boarded on the NFVO. See note 2. + type: integer + maxOnboardedVnfPkgNum: + description: > + Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2. + type: integer + supportedVnfdFormats: + description: > + Supported VNFD data formats. + type: object + properties: + vnfdFormat: + description: > + Name of the VNFD format. + + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: > + Name and version of the standard the VNFD is compliant to. See note 1. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + required: + - vnfdFormat + - standardVersion + supportedNsdFormats: + description: > + Supported NSD data formats. + type: object + properties: + nsdFormat: + description: > + Name of the NSD format. + + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: > + Name and version of the standard the NSD is compliant to. See note 1. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + required: + - nsdFormat + - standardVersion + + VnfmSpecificInfo: + description: > + This type represents information attributes specific to a VNFM entity, + and that can be relevant to more than one NFV-MANO service offered by a VNFM entity. + * NOTE: The information to be provided in this attribute shall relate to the specification and version + of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)". + type: object + required: + - resoruceMgmtModeSupport + - managedVnfInstanceInfos + - supportedVnfdFormats + properties: + resoruceMgmtModeSupport: + description: > + The supported resource management modes of the VNFM. + + Permitted values: + - DIRECT: The VNFM supports direct mode only. + - INDIRECT: The VNFM supports indirect mode only. + - BOTH: The VNFM supports both direct and indirect mode. + type: string + enum: + - DIRECT + - INDIRECT + - BOTH + managedVnfInstanceInfos: + description: > + The kinds of VNF instances that can be managed, e.g. to determine the + compatibility of a VNF with certain VNFM according to the vnfmInfo + attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011). + type: array + items: + type: string + minItems: 1 + supportedVnfdFormats: + description: > + Supported VNFD data formats. + type: array + items: + type: object + properties: + vnfdFormat: + description: > + Name of the VNFD format. + + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: > + Name and version of the standard the VNFD is compliant to. See note + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + required: + - vnfdFormat + - standardVersion + minItems: 1 + + VimSpecificInfo: + description: > + This type represents information attributes specific to a VIM entity, + and that can be relevant to more than one NFV MANO service offered by + a VIM entity. It shall comply with the provisions defined in table + 5.6.3.6-1. + The present document version does not specify the support for + "maximum number of virtualised resources (attribute "maxVirtualResourceNum")" + as specified in clause 7.2.9.2 of ETSI GS NFV IFA 031 [1]. + + NOTE: Recommendations on appropriate algorithms and key lengths are given e.g., + in NIST Special Publication 800-57 Part 3 Revision 1 [i.26] or in documents + related to local legislation. + type: object + required: + - imageContainerFormats + - imageDiskFormats + - imageSignatureVerification + - imageDigestAlgorithms + properties: + imageContainerFormats: + description: > + List of supported image container formats. Container format indicates whether a + software image is in a file that also contains metadata about the actual software. + Valid values are all values for "container_format" as defined in ETSI GS NFV-SOL 001 + [i.16] and all values for "container-format" as defined in ETSI GS NFV-SOL 006 [i.17]. + type: array + items: + type: string + imageDiskFormats: + description: > + List of supported image disk formats. The Disk format of a software image is the format + of the underlying disk image. + Valid values are all values for "disk_format" as defined in ETSI GS NFV-SOL 001 [16] and + all values of "disk-format" as defined in ETSI GS NFV-SOL 006 [i.17]. + type: array + items: + type: string + imageSignatureVerification: + description: > + Information about the supported mechanisms, algorithms, and protocols for verifying the + signature of software images. + type: object + required: + - signatureVerificationAlgorithms + properties: + additionalVerificationCapabilities: + description: > + List of additional image signature verification capabilities. The "key" in the KeyValuePairs + determines the name of the capability, and the "value" shall indicate whether or not the + capability is enabled. Examples of capabilities can include performing a validation of the + image’s signing certificate during the image signature verification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + signatureVerificationAlgorithms: + description: > + List of algorithms for verifying the signature of software images that are supported by the VIM. + type: array + items: + type: object + required: + - algorithm + - keyLengths + properties: + algorithm: + description: > + The name of the algorithm. Permitted values are: "RSA", "DSA", "ECDSA". + type: string + keyLengths: + description: > + List of supported key lengths of the algorithm. The key length indicates the number of bits, + such as “256”, “512”, etc. See note. + type: array + items: + type: string + additionalAlgParams: + description: > + Additional parameters specific to the signature verification algorithm. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + imageDigestAlgorithms: + description: > + List of supported digest algorithms that can be used for digital signatures. + type: array + items: + type: object + required: + - algorithm + - keyLengths + properties: + algorithm: + description: > + The name of the algorithm. Permitted values are: “SHA2“,“SHA3“. + type: string + keyLengths: + description: > + List of supported key lengths of the algorithm. The key length indicates the number of bits, + such as “256”, “512”, etc. See note. + type: array + items: + type: string + + WimSpecificInfo: + description: > + This type represents information attributes specific to a WIM entity, + and that can be relevant to more than one NFV MANO service offered by + a WIM entity. + type: object + required: + - maxMscsNums + - maxMsncNum + - mscsLayerProtocolSupport + properties: + maxMscsNums: + description: > + Maximum number of MSCS that the WIM can manage. + type: object + required: + - numMscs + properties: + numMscs: + description: > + Maximum number of MSCS. + type: integer + criteriaNumMscs: + description: > + Reference criteria for derivation/computation of the referred maximum number of MSCS in + attribute "numMscs". Shall be provided if specific criteria has been taken into account + for deriving the referred number. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + maxMsncNum: + description: > + Maximum number of MSNC that the WIM can manage + type: object + required: + - numMsnc + properties: + numMsnc: + description: > + Maximum number of MSNC.. + type: integer + criteriaNumMsnc: + description: > + Reference criteria for derivation/computation of the referred maximum + number of MSNC in attribute "numMsnc". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + mscsLayerProtocolSupport: + description: > + List of protocols of particular layers used to realize an MSCS + that are supported by the WIM. + + Permitted values: + - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432. + - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214. + - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified + in IETF RFC 4761 and IETF RFC. + - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2 + Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074. + - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074. + - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364. + type: string + enum: + - EVPN_BGP_MPLS + - EVPN_VPWS + - VPLS_BGP + - VPLS_LDP_L2TP + - VPWS_LDP_L2TP + - BGP_IP_VPN + + ManoEntityConfigurableParams: + description: > + This type represents list of parameters that can be configured on the + NFV MANO functional entity. + type: object + required: + - clockSyncs + - defaultLogCompileBySizeValue + - defaultLogCompileByTimerValue + properties: + clockSyncs: + description: > + Properties of the clock synchronization to be used by the NFV-MANO + functional entity. + + The keys of the map, each of which identifies a particular ClockSyncInfo + structure, are managed by the API consumer. + type: object + additionalProperties: + $ref: "#/components/schemas/ClockSyncInfo" + minItems: 1 + defaultLogCompileBySizeValue: + description: + Default value for the log compilation by size to be used. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + defaultLogCompileByTimerValue: + description: + Default value for the log compilation by timer to be used. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + + ConsumedManoInterfaceInfo: + description: > + This type represents an interface consumed by the producer NFV MANO + functional entity from another peer functional entity. + * NOTE 1: The information to be provided in this attribute shall relate to the specification and its version. + For instance, "ETSI GS NFV-SOL 003 (V2.4.1)". + * NOTE 2: Due to the security sensitive information associated to the attribute, based on access control + policies, the API consumer might have read only, write only, read/write, or no access at all to + the attribute's value. In case the API consumer is not allowed to read the value of the security + sensitive attribute, the attribute shall be omitted when the information is to be provided in a + response message, and shall be provided otherwise. In case the API consumer is not allowed to + modify the value of the security sensitive attribute, and the modification request includes new + attribute values, the whole modification request shall be rejected, and proper error information returned. + type: object + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + properties: + name: + description: > + Human-readable name of the NFV-MANO interface. + type: string + type: + description: > + Type of the NFV-MANO service interface consumed by the NFV-MANO + functional entity. Valid values are defined in clause 5.6.4.3. + type: string + standardVersion: + description: > + Version of the standard the interface is compliant to. See note 1. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + apiVersion: + description: > + API version, in compliance with the version identifiers and parameters + format specified in clause 9.1 of ETSI GS NFV-SOL 013. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Version" + apiEndpoint: + description: > + Consumable API endpoint of the interface. + It provides the information relevant about the protocol, host and port, + and path where the interface API can be accessed. + type: object + properties: + apiRoot: + description: > + Indicates the scheme ("http" or "https"), the host name and optional + port, and an optional sequence of path segments that together + represent a prefix path. Shall be present for ETSI NFV specified + RESTful NFV-MANO APIs (see also clause 4.1 of ETSI GS NFV-SOL 013). + May be present otherwise. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + apiName: + description: > + Indicates the interface name in an abbreviated form. Shall be present + for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each + interface is defined in the standard the interface is compliant to + (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise. + type: string + apiMajorVersion: + description: > + Indicates the current major version of the API. Shall be present for + ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined + in the standard the interface is compliant to (see also clause 4.1 + of ETSI GS NFV-SOL 013). May be present otherwise. + type: string + apiUri: + description: > + URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, + the following prefix structure is used (see also clause 4.1 of ETSI + GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion} + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + required: + - apiUri + securityInfo: + description: > + Security related information including credentials information if needed + for consuming the API. See note 2. + $ref: "#/components/schemas/ClientInterfaceSecurityInfo" + + CimNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO configuration and information management. + * 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: object + properties: + manoEntitySubscriptionFilter: + description: > + Filter criteria to select the NFV-MANO functional entity and its + associated managed objects. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoEntitySubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + + Permitted values: + - InformationChangedNotification + - ChangeStateNotification + + See note. + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + + ClockSyncInfo: + description: > + This type represents parameters for connecting to an NTP server. + * NOTE: Either ipAddress or hostname shall be set, but not both at the same time. + type: object + required: + - type + properties: + type: + description: > + Type of clock synchronization. + + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. Shall be present if type = "NTP". + type: object + properties: + ipAddress: + description: > + IP address of the NTP server. See note + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IpAddress" + hostname: + description: > + Indicates the hostname of the NTP server. See note. + type: string + otherClockSyncParams: + description: > + Information for the other types of clock synchronization. + May be present if type = "OTHER". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + + ServerInterfaceSecurityInfo: + description: > + This type represents security related information of an NFV-MANO + service interface produced by an NFV-MANO functional entity. + * NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration + shall be supported, and dynamic configuration may be supported. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API producer. + + The support of authorization methods for the API producer is specified + in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and configuration. + type: object + required: + - providedConfiguration + - tlsCipherSuites + properties: + dynamicDiscovery: + description: > + Configuration data used when performing dynamic discovery of + the authorization server identifier. See note. + type: object + required: + - webFingerHost + properties: + webFingerHost: + description: > + Server where the WebFinger service is hosted. When used, + the request to the WebFinger resource shall conform as specified + in clause 5.1.3 of ETSI GS NFV-SEC 022. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + providedConfiguration: + description: > + Configuration data used to setup the authorization server identifier. See note. + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI GS NFV-SEC 022. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by the + API producer when performing the SSL or TLS negotiation with the + authorization server. Valid values of cipher suites are defined + in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. + Shall be present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: > + List of cipher suites that shall be declared as supported by the API + producer when performing the SSL or TLS negotiation with the API client. + Valid values of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + + ClientInterfaceSecurityInfo: + description: > + This type represents security related information for accessing an NFV-MANO + service interface produced by an NFV-MANO functional entity. + * NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration + shall be supported, and dynamic configuration may be supported. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API consumer accessing + the API. + + The support of authorization methods for the API consumer is specified in + clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: > + Configuration data used when performing dynamic discovery of the authorization + server identifier. See note. + type: object + required: + - webFingerHost + properties: + webFingerHost: + description: > + Server where the WebFinger service is hosted. When used, the request to + the WebFinger resource shall conform as specified in clause 5.1.3 of + ETSI GS NFV-SEC 022. + type: string + format: uri + providedConfiguration: + description: > + Configuration data used to setup the authorization server identifier. See note. + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI GS NFV-SEC 022. + type: string + format: uri + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by the API consumer when + performing the SSL or TLS negotiation with the authorization server. Valid values + of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. Shall be + present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: > + List of cipher suites that shall be declared as supported by the API + consumer when performing the SSL or TLS negotiation with the API producer. + Valid values of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + + #referenced simple data types + ManoServiceInterfaceTypeShortName: + description: > + For the RESTful NFV-MANO APIs, valid values are all values for "apiName" as defined + in ETSI GS NFV-SOL 002, ETSI GS NFV-SOL 003, and ETSI GS NFV-SOL 005. + + For the NFV-MANO service interfaces for which no API is specified by ETSI NFV, valid + values are defined in table 5.6.4.3-1. + + NOTE: The table is expected to be updated, by removing the corresponding listed entries, + once the interfaces are specified as a RESTful NFV-MANO API. + type: string + + UsageStateEnumType: + description: > + The enumeration UsageStateEnumType defines values representing the usage + state of a managed entity. + The UsageStateEnumType shall comply with the provisions: + - IN_USE The managed entity is currently being used. + - NOT_IN_USE The managed entity is currently not being used. + type: string + enum: + - IN_USE + - NOT_IN_USE + + ChangeOperationalStateEnumType: + description: > + The enumeration ChangeOperationalStateEnumType defines permitted values + for the change state operation. + The ChangeOperationalStateEnumType shall comply with the provisions: + - START To start the managed entity. + - STOP To stop the managed entity. + - RESTART To stop and start again the managed entity. + type: string + enum: + - START + - STOP + - RESTART + + ChangeAdministrativeStateEnumType: + description: > + The enumeration ChangeAdministrativeStateEnumType defines permitted values + for the change of administrative state operation. + The ChangeAdministrativeStateEnumType shall comply with the provisions: + - LOCK To lock the managed entity. + - UNLOCK To unlock the managed entity. + type: string + enum: + - LOCK + - UNLOCK + + InterfaceOperationalStateEnumType: + description: > + The enumeration InterfaceOperationalStateEnumType defines values representing + the operational state of an NFV-MANO service interface type of managed entity. + The InterfaceOperationalStateEnumType shall comply with the provisions : + - STARTED The managed entity is operational. + - STOPPED The managed entity is not operational. + - STOPPING The managed entity is in the transition to stop. + - STARTING The managed entity is in the transition to start and become operational. + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + + StopEnumType: + description: > + The enumeration ChangeStateOpOccStateEnumType defines permitted values + for the change state operation. It shall comply with the provisions: + - GRACEFUL To stop the managed entity immediately after accepting the request. + - FORCEFUL To stop the managed entity attempting to gracefully discharge the entity from service. + type: string + enum: + - GRACEFUL + - FORCEFUL + + ManoEntityEnumType: + description: > + The enumeration ManoEntityEnumType defines the permitted values to + represent NFV-MANO functional entities. It shall comply with + the provisions : + - NFVO The NFV-MANO functional entity is an NFVO. + - VNFM The NFV-MANO functional entity is a VNFM. + - VIM The NFV-MANO functional entity is a VIM. + - WIM The NFV-MANO functional entity is a WIM. + type: string + enum: + - NFVO + - VNFM + - VIM + - WIM + + PeerEntityEnumType: + description: > + The enumeration PeerEntityEnumType defines the permitted values + to represent peer functional entities. it shall complains with + the provisions : + - NFVO The peer functional entity is an NFVO. + - VNFM The peer functional entity is a VNFM. + - VIM The peer functional entity is a VIM. + - WIM The peer functional entity is a WIM. + - EM The peer functional entity is an EM. + - OSS The peer functional entity is an OSS/BSS. + type: string + enum: + - NFVO + - VNFM + - VIM + - WIM + - EM + - OSS + + diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml index 492c0a608d91469ed806843a1bbd93ffcb14de16..6122cd72d0faba1a240f1b97070ae7ed35ee1d1b 100644 --- a/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml +++ b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/callback/v2 @@ -153,158 +153,6 @@ components: application/json: schema: oneOf: - - $ref: "#/components/schemas/InformationChangedNotification" - - $ref: "#/components/schemas/ChangeStateNotification" - required: true - - schemas: - InformationChangedNotification: - description: > - This type represents a notification that is sent when data about - configuration and information of the NFV-MANO functional entity - have been changed. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - informationChangedTime - - manoEntityId - - changedInfo - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "InformationChangedNotification" for this notification type. - type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - timeStamp: - description: > - Date and time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - informationChangedTime: - description: > - Timestamp indicating when the information was changed. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - manoEntityId: - description: > - Identifier of the MANO entity of which the information was changed. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - changedInfo: - description: > - Data about the changed configuration and information of the NFV-MANO - functional entity. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - _links: - description: > - Links to resources related to this notification. - type: object - properties: - self: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - subscription: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - required: - - self - - ChangeStateNotification: - description: > - This type represents a Change state operation occurrence. - type: object - required: - - id - - notificationType - - subscriptionId - - timestamp - - changeStateOpOccId - - stateChangedTime - - changeStateOperationState - - managedObjectRef - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "ChangeStateNotification" for this notification type. - type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - timestamp: - description: > - Date-time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - changeStateOpOccId: - description: > - Identifier of the change state operation occurrence associated to the - notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - stateChangedTime: - description: > - Timestamp indicating when the state on the managed object was changed. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - changeStateOperationState: - description: > - The state of the "change state operation occurrence". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType" - managedObjectRef: - description: > - Reference of the managed object to which the state change notification relates. - The value of the "type" attribute shall be "MANO_ENTITY" or "MANO_SERVICE_IF". - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - operationalState: - description: > - New operational state of the managed object. Shall only be present when - there is a change in the operational state. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" - administrativeState: - description: > - New administrative state of the managed object. Shall only be present - when there is a change in the administrative state. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" - _links: - description: > - Links to resources related to this notification. - type: object - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - objectInstance: - description: > - Link to the resource representing the object to which the change - state applies. Shall be present if the object instance is accessible - as a resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - changeStateOpOcc: - description: > - Link to the change state operation occurrence that this notification - is related to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - required: - - subscription - - objectInstance - - changeStateOpOcc \ No newline at end of file + - $ref: "./components/NFVManoConfigurationAndInformationManagementNotification_def.yaml#/components/schemas/InformationChangedNotification" + - $ref: "./components/NFVManoConfigurationAndInformationManagementNotification_def.yaml#/components/schemas/ChangeStateNotification" + required: true \ No newline at end of file diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/components/NFVManoConfigurationAndInformationManagementNotification_def.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/components/NFVManoConfigurationAndInformationManagementNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..584fac92c7ed6340783e99c1630d13a0c6909030 --- /dev/null +++ b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/components/NFVManoConfigurationAndInformationManagementNotification_def.yaml @@ -0,0 +1,152 @@ +components: + schemas: + InformationChangedNotification: + description: > + This type represents a notification that is sent when data about + configuration and information of the NFV-MANO functional entity + have been changed. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - informationChangedTime + - manoEntityId + - changedInfo + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "InformationChangedNotification" for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + informationChangedTime: + description: > + Timestamp indicating when the information was changed. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + manoEntityId: + description: > + Identifier of the MANO entity of which the information was changed. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + changedInfo: + description: > + Data about the changed configuration and information of the NFV-MANO + functional entity. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + _links: + description: > + Links to resources related to this notification. + type: object + properties: + self: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + subscription: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + required: + - self + + ChangeStateNotification: + description: > + This type represents a Change state operation occurrence. + type: object + required: + - id + - notificationType + - subscriptionId + - timestamp + - changeStateOpOccId + - stateChangedTime + - changeStateOperationState + - managedObjectRef + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "ChangeStateNotification" for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + timestamp: + description: > + Date-time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + changeStateOpOccId: + description: > + Identifier of the change state operation occurrence associated to the + notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + stateChangedTime: + description: > + Timestamp indicating when the state on the managed object was changed. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + changeStateOperationState: + description: > + The state of the "change state operation occurrence". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType" + managedObjectRef: + description: > + Reference of the managed object to which the state change notification relates. + The value of the "type" attribute shall be "MANO_ENTITY" or "MANO_SERVICE_IF". + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + operationalState: + description: > + New operational state of the managed object. Shall only be present when + there is a change in the operational state. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType" + administrativeState: + description: > + New administrative state of the managed object. Shall only be present + when there is a change in the administrative state. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType" + _links: + description: > + Links to resources related to this notification. + type: object + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + objectInstance: + description: > + Link to the resource representing the object to which the change + state applies. Shall be present if the object instance is accessible + as a resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + changeStateOpOcc: + description: > + Link to the change state operation occurrence that this notification + is related to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + required: + - subscription + - objectInstance + - changeStateOpOcc diff --git a/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml b/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml index bed4c73d38c97a2c4ac2360c8d9f1e3c1dc3d029..7f3ffd0b467f3f16cfabc03a25990f7869e04019 100644 --- a/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml +++ b/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml @@ -19,8 +19,8 @@ info: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/nfvmanofm/v1 @@ -38,7 +38,7 @@ paths: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - - $ref: "../components/SOL009_params.yaml#/components/parameters/filter" + - $ref: "#/components/parameters/filter.Alarms" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" responses: "200": @@ -178,7 +178,7 @@ paths: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - - $ref: "../components/SOL009_params.yaml#/components/parameters/filter" + - $ref: "#/components/parameters/filter.FmSubscriptions" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" responses: "200": @@ -269,6 +269,35 @@ paths: components: parameters: + filter.Alarms: + 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. + + The following attribute names shall be supported by the NFV-MANO functional entity in the attribute-based + filtering expression: id, managedObjectId, eventType, perceivedSeverity, probableCause. + + in: query + required: false + schema: + type: string + filter.FmSubscriptions: + 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 alarmId: name: alarmId description: > @@ -293,134 +322,7 @@ components: required: true schema: type: string - schemas: - FmSubscriptionRequest: - description: > - This type represents a subscription request related to notifications - about NFV-MANO faults. - 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/FmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - FmSubscription: - description: > - This type represents a subscription related to notifications about VNF - faults. - type: object - required: - - id - - callbackUri - - _links - properties: - id: - description: > - Identifier of this "Individual subscription" resource. - $ref: "../components/SOL009_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/FmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - _links: - description: > - Links for this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - - AlarmModifications: - description: > - This type represents attribute modifications for an "Individual alarm" - resource, i.e. modifications to a resource representation based on the - "Alarm" data type. The attributes of "Alarm" that can be modified - are included in the "AlarmModifications" data type. - type: object - required: - - ackState - properties: - ackState: - description: > - New value of the "ackState" attribute in "Alarm". - Permitted values: - * ACKNOWLEDGED - type: string - enum: - - ACKNOWLEDGED - - FmNotificationsFilter: - description: > - This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. - It shall comply with the provisions defined in table 7.6.3.2-1. At a particular nesting level in the filter - structure, the following applies: All attributes shall match in order for the filter to match (logical "and" - between different filter attributes). If an attribute is an array, the attribute shall match if at least one - of the values in the array matches (logical "or" between the values of one filter attribute). - * 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: object - properties: - notificationTypes: - description: > - Match particular notification types. - Permitted values: - * AlarmNotification - * AlarmClearedNotification - * AlarmListRebuiltNotification - - See note. - type: array - items: - type: string - enum: - - AlarmNotification - - AlarmClearedNotification - - AlarmListRebuiltNotification - perceivedSeverities: - description: > - Match VNF alarms with a perceived severity listed in this attribute. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/PerceivedSeverityType" - eventTypes: - description: > - Match VNF alarms with an event type listed in this attribute. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/EventType" - probableCauses: - description: > - Match VNF alarms with a probable cause listed in this attribute. - type: array - items: - type: string requestBodies: AlarmModifications: description: > @@ -430,7 +332,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/AlarmModifications" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/AlarmModifications" required: true FmSubscriptionRequest: @@ -440,7 +342,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/FmSubscriptionRequest" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscriptionRequest" required: true responses: @@ -533,7 +435,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/AlarmModifications" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/AlarmModifications" Subscriptions.Post.201: description: > @@ -571,7 +473,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/FmSubscription" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription" Subscriptions.Post.303: description: > 303 SEE OTHER @@ -693,7 +595,7 @@ components: schema: type: array items: - $ref: "#/components/schemas/FmSubscription" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription" Subscription.Get.200: description: > @@ -729,7 +631,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/FmSubscription" + $ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription" Subscription.Delete.204: description: > diff --git a/src/SOL009/NFVManoFaultManagement/components/NFVManoFaultManagement_def.yaml b/src/SOL009/NFVManoFaultManagement/components/NFVManoFaultManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c823092bb498467cdc7c8aed669571a024a2efc8 --- /dev/null +++ b/src/SOL009/NFVManoFaultManagement/components/NFVManoFaultManagement_def.yaml @@ -0,0 +1,129 @@ +components: + schemas: + FmSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about NFV-MANO faults. + 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/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + FmSubscription: + description: > + This type represents a subscription related to notifications about VNF + faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this "Individual subscription" resource. + $ref: "../../components/SOL009_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/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + + AlarmModifications: + description: > + This type represents attribute modifications for an "Individual alarm" + resource, i.e. modifications to a resource representation based on the + "Alarm" data type. The attributes of "Alarm" that can be modified + are included in the "AlarmModifications" data type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". + Permitted values: + * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + + FmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. + It shall comply with the provisions defined in table 7.6.3.2-1. At a particular nesting level in the filter + structure, the following applies: All attributes shall match in order for the filter to match (logical "and" + between different filter attributes). If an attribute is an array, the attribute shall match if at least one + of the values in the array matches (logical "or" between the values of one filter attribute). + * 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: object + properties: + notificationTypes: + description: > + Match particular notification types. + Permitted values: + * AlarmNotification + * AlarmClearedNotification + * AlarmListRebuiltNotification + + See note. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this attribute. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/PerceivedSeverityType" + eventTypes: + description: > + Match VNF alarms with an event type listed in this attribute. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/EventType" + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string diff --git a/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml b/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml index 94656bde2b11347848c526597f72d56627a8af59..c648987523144286023c18ca1c5b8f3193a7a0f5 100644 --- a/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml +++ b/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml @@ -19,8 +19,8 @@ info: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -195,7 +195,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/AlarmNotification" + $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmNotification" required: true AlarmClearedNotification: @@ -204,7 +204,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/AlarmClearedNotification" + $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmClearedNotification" required: true AlarmListRebuiltNotification: @@ -214,178 +214,9 @@ components: content: application/json: schema: - $ref: "#/components/schemas/AlarmListRebuiltNotification" + $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmListRebuiltNotification" required: true - schemas: - AlarmNotification: - description: > - This type represents an alarm notification about NFV-MANO functional entity faults. - It shall comply with the provisions defined in table 7.6.2.5-1. - This notification shall be triggered by the NFV-MANO functional entity when: - - An alarm has been created. - - An alarm has been updated, e.g. if the severity of the alarm has changed. - - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - alarm - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "AlarmNotification" for this notification type. - type: string - enum: - - AlarmNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - alarm: - description: > - Information about an alarm including AlarmId, affected VNF - identifier, and FaultDetails. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm" - _links: - description: > - Links to resources related to this notification. - type: object - required: - - subscription - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - - AlarmClearedNotification: - description: > - This type represents an alarm cleared notification about VNF faults. - The notification shall be triggered by the VNFM when an alarm has been - cleared. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - alarmId - - alarmClearedTime - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "AlarmClearedNotification" for this notification type. - type: string - enum: - - AlarmClearedNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - alarmId: - description: > - Alarm identifier. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - alarmClearedTime: - description: > - The time stamp indicating when the alarm was cleared. - _links: - description: > - Links to resources related to this notification. - type: object - required: - - subscription - - alarm - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - alarm: - description: > - Link to the resource that represents the related alarm. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - - AlarmListRebuiltNotification: - description: > - This type represents a notification that the alarm list has been - rebuilt, e.g. if the VNFM detects its storage holding the alarm - list is corrupted. - The notification shall be triggered by the VNFM when the alarm list has - been rebuilt. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "AlarmListRebuiltNotification" for this notification type. - type: string - enum: - - AlarmListRebuiltNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - _links: - description: > - Links to resources related to this notification. - type: object - required: - - subscription - - alarms - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - alarms: - description: > - Link to the alarm list, i.e. the "Alarms" resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - responses: AlarmNotification.Post.204: description: > diff --git a/src/SOL009/NFVManoFaultManagementNotification/components/NFVManoFaultManagementNotification_def.yaml b/src/SOL009/NFVManoFaultManagementNotification/components/NFVManoFaultManagementNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..087eb3e9191499e536ad07388d1163a846c61087 --- /dev/null +++ b/src/SOL009/NFVManoFaultManagementNotification/components/NFVManoFaultManagementNotification_def.yaml @@ -0,0 +1,169 @@ +components: + schemas: + AlarmNotification: + description: > + This type represents an alarm notification about NFV-MANO functional entity faults. + It shall comply with the provisions defined in table 7.6.2.5-1. + This notification shall be triggered by the NFV-MANO functional entity when: + - An alarm has been created. + - An alarm has been updated, e.g. if the severity of the alarm has changed. + + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarm + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmNotification" for this notification type. + type: string + enum: + - AlarmNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + alarm: + description: > + Information about an alarm including AlarmId, affected VNF + identifier, and FaultDetails. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Alarm" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + + AlarmClearedNotification: + description: > + This type represents an alarm cleared notification about VNF faults. + The notification shall be triggered by the VNFM when an alarm has been + cleared. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarmId + - alarmClearedTime + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmClearedNotification" for this notification type. + type: string + enum: + - AlarmClearedNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + alarmId: + description: > + Alarm identifier. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + alarmClearedTime: + description: > + The time stamp indicating when the alarm was cleared. + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarm + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + alarm: + description: > + Link to the resource that represents the related alarm. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + + AlarmListRebuiltNotification: + description: > + This type represents a notification that the alarm list has been + rebuilt, e.g. if the VNFM detects its storage holding the alarm + list is corrupted. + The notification shall be triggered by the VNFM when the alarm list has + been rebuilt. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmListRebuiltNotification" for this notification type. + type: string + enum: + - AlarmListRebuiltNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarms + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + alarms: + description: > + Link to the alarm list, i.e. the "Alarms" resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" diff --git a/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml b/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml index 1f62c8c5e9a6ab7a619334af205b65a9f059d964..1f8dd77ed960027908b1a78240d486f66693656d 100644 --- a/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml +++ b/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml @@ -19,8 +19,8 @@ info: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/nfvmanologm/v1 @@ -70,11 +70,11 @@ paths: description: >- The API consumer can use this method to retrieve information about logging jobs. See clause 8.5.3.3.2. parameters: - - $ref: "../components/SOL009_params.yaml#/components/parameters/filter" + - $ref: "#/components/parameters/filter.LoggingJobs" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields" - - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_default" + - $ref: "#/components/parameters/exclude_default.LoggingJobs" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" @@ -313,7 +313,7 @@ paths: notifications subscribed by the API consumer. See clause 8.5.7.3.2. parameters: - - $ref: "../components/SOL009_params.yaml#/components/parameters/filter" + - $ref: "#/components/parameters/filter.LogmSubscriptions" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" @@ -409,6 +409,47 @@ paths: components: parameters: + filter.LoggingJobs: + 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 + exclude_default.LoggingJobs: + name: exclude_default + 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. + + The following attributes shall be excluded from the LoggingJob structure in the response body if this parameter + is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: + • logReports + in: query + required: false + schema: + type: string + filter.LogmSubscriptions: + 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 LogmSubscription 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 logJobId: name: logJobId in: path @@ -441,7 +482,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogmSubscriptionRequest" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogmSubscriptionRequest" required: true CreateLoggingJobRequest: @@ -451,7 +492,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CreateLoggingJobRequest" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/CreateLoggingJobRequest" required: true CompileLogRequest: description: >- @@ -459,7 +500,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CompileLogRequest" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/CompileLogRequest" required: true LogReportAvailableNotification: description: >- @@ -467,7 +508,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogReportAvailableNotification" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogReportAvailableNotification" required: true responses: @@ -522,7 +563,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogmSubscription" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogmSubscription" Subscriptions.Get.200: description: > @@ -559,7 +600,7 @@ components: schema: type: array items: - $ref: "#/components/schemas/LogmSubscription" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogmSubscription" Subscriptions.Post.201: description: > @@ -595,7 +636,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogmSubscription" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogmSubscription" Subscriptions.Post.303: description: > @@ -663,7 +704,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogReport" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogReport" subscriptions.post.422: description: > @@ -827,7 +868,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogReport" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LogReport" LogReport.Get.202: description: > @@ -881,7 +922,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LoggingJob" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LoggingJob" IndividualLoggingJob.Delete.204: description: > @@ -929,7 +970,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LoggingJob" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LoggingJob" LoggingJobs.Get.200: description: > @@ -970,7 +1011,7 @@ components: schema: type: array items: - $ref: "#/components/schemas/LoggingJob" + $ref: "./components/NFVManoLogManagement_def.yaml#/components/schemas/LoggingJob" LogReportAvailableNotification.Post.204: description: > @@ -1018,775 +1059,7 @@ components: Version of the API used in the response. schema: type: string - schemas: - LogmSubscription: - description: >- - This type represents a subscription. 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/SOL009_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/LogmNotificationsFilter" - callbackUri: - description: >- - The URI of the endpoint to send the notification to. - $ref: '../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/Link' - - LogmNotificationsFilter: - description: >- - This type represents a filter that can be used to subscribe for notifications related to log - management events. - * 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: object - properties: - objectInstanceFilter: - description: >- - Filter criteria to select object instance about which to notify. - $ref: "#/components/schemas/ManoEntitySubscriptionFilter" - notificationTypes: - description: >- - Match particular notification types. - Permitted values: - - LogReportAvailableNotification - See note. - type: string - enum: [LogReportAvailableNotification] - - ManoEntitySubscriptionFilter: - description: >- - This type represents subscription filter criteria to match NFV-MANO functional entities and their - associated managed objects. It shall comply with the provisions defined in Table 4.3.2.2-1. - type: object - anyOf: - - oneOf: - - required: - - manoServiceIds - - required: - - manoServiceNames - - oneOf: - - required: - - manoServiceInterfaceIds - - required: - - manoServiceInterfaceNames - - oneOf: - - required: - - consumedManoInterfaceIds - - required: - - consumedManoInterfaceNames - properties: - manoEntityId: - description: >- - If present, match the NFV-MANO functional entity with an instance identifier listed in this attribute. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - manoServiceIds: - description: >- - If present, match NFV-MANO services with an instance identifier listed in this attribute. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity' - manoServiceNames: - description: >- - If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute. - type: array - items: - type: string - manoServiceInterfaceIds: - description: >- - If present, match NFV-MANO functional entity produced interfaces with an instance - identifier listed in this attribute. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity' - manoServiceInterfaceNames: - description: >- - If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in - this attribute. - type: array - items: - type: string - consumedManoInterfaceIds: - description: >- - If present, match NFV-MANO functional entity consumed interfaces with an instance identifier - listed in this attribute. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - consumedManoInterfaceNames: - description: >- - If present, match NFV-MANO functional entity consumed interfaces with an instance Name - listed in this attribute. - type: array - items: - type: string - - CompileLogRequest: - description: > - This type represents a request to compile the logged data associated to an object instance. - It shall comply with the provisions defined in table 8.6.2.8-1. - type: object - properties: - objectInstanceId: - description: > - Identifier of the object instance for which logging information is requested to be compiled. The provided - value shall correspond to an object instance for which log data is being collected as specified in the - corresponding "LoggingJob". If not present, the compile log request is requested for all managed object - instances associated to the logging job. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - LogReport: - description: > - This type represents a log report, which provides information about a compiled log and how to obtain it. - * NOTE: It is not specified in the present document how the NFV-MANO functional entity's private - key is provided to the NFV-MANO functional entity. - type: object - required: - - id - - objectInstanceId - - compilationTrigger - - readyTime - - fileFormat - - fileLocationInfo - - securityAndIntegrityInfo - - _links - properties: - id: - description: >- - Identifier of this log report. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - objectInstanceId: - description: >- - Identifiers of the object instance for which logging information is collected. - This attribute shall contain the identifier of the instance of the object that is - logged according to their type. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference' - compilationTrigger: - description: >- - The trigger for the compilation of the log file. - - Permitted values: - - ON_DEMAND: created based on explicit request by a client. - - AUTOMATIC: created according to the logging job compilation configuration. - type: string - enum: [ON_DEMAND, AUTOMATIC] - readyTime: - description: >- - The time when the report and log file was made available. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/DateTime' - expiryTime: - description: >- - The time when the report and log file will expire. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/DateTime' - fileSize: - description: >- - The size of the compiled log file in bytes, if known. - type: integer - format: int32 - fileFormat: - description: >- - The encoding used by the file. - type: string - fileLocationInfo: - description: >- - Location and address information of the compiled log file. The consumer can use this information - to obtain the compiled log file. - type: object - required: - - protocol - - fileEndpoint - properties: - protocol: - description: >- - Protocol over which the compiled log file can be retrieved. - - Permitted values: - - HTTPS: transmission over HTTP Secure (HTTPS). - - SFTP: transmission over SSH file transfer protocol (SFTP). - - SCP: transmission over secure copy protocol (SCP). - - FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228, - using explicit mode as specified in IETF RFC 4217. If FTPS is supported, "private" protection level shall be used. - - HTTPS shall be supported, and other protocols may be supported. - type: string - enum: [HTTPS, SFTP, SCP, FTPS] - fileEndpoint: - description: >- - The host name (or IP address), optionally a port number (if the host with the compile log file uses a - non-standard port number as per the supported transmission protocol), a valid file directory path, - and the file name of the compiled log file, or a valid URL. - type: string - format: URI - securityAndIntegrityInfo: - description: >- - Security and integrity information for the compilation of the log files. - type: object - required: - - algorithm - - hash - - logFileSignature - - signingCertificate - properties: - algorithm: - description: >- - Algorithm used to generate the hash of the compiled log file. Only SHA-256 and SHA-512 shall be used - type: string - hash: - description: >- - The hexadecimal value of the hash of the compiled log file. The hash shall be computed - from the encrypted compiled log file, in case the encryption applies. - type: string - encryptionPublicKey: - description: >- - Public key used for the encryption of the compiled log file. Shall be present if the - compiled log file is encrypted. - type: string - cipherAlgorithm: - description: >- - The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is - encrypted. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", - as specified in clause 6.5 of ETSI GS NFV-SEC 012. - type: string - logFileSignature: - description: >- - Signature to the compiled log file generated with the NFV-MANO functional entity’s private key, - which is used to ensure the authenticity of the compiled log file. The signature shall be applied - according to the "encryptAndSignOrder" of the "LoggingJobConfig". See note. - type: string - signingCertificate: - description: >- - X.509 certificate with the NFV-MANO functional entity’s public key used for verifying the - log report and compiled log file signatures. - type: string - _links: - description: >- - Links for this resource. - type: object - required: - - self - properties: - self: - description: >- - URI of this resource. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Link' - objects: - description: >- - Links to resources representing the object instances that are logged. Shall be present - if the logged object instance information is accessible as a resource. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Link' - - LogmSubscriptionRequest: - description: >- - Information on application context created by the MEC system - type: object - required: - - callbackUri - type: object - 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/LogmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - CreateLoggingJobRequest: - description: >- - Information on application context created by the MEC system - type: object - required: - - objectInstanceIds - - jobCriteria - - jobConfig - properties: - objectInstanceIds: - description: >- - Identifiers of the object instance for which logging information is requested to be collected. - This attribute shall contain the identifier of the instance of the object to be logged according to their type. - If more than one identifier is provided, values shall all refer to object instances of the same type, - for which the same criteria is then applicable. - type: array - minItems: 1 - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - jobCriteria: - description: >- - Criteria of the collection of logging information. - $ref: "#/components/schemas/LoggingJobCriteria" - jobConfig: - description: >- - Configuration about the logging job. - $ref: "#/components/schemas/LoggingJobConfig" - LoggingJob: - description: >- - This type represents a logging job. It shall comply with the provisions defined in table 8.6.2.6-1. - type: object - required: - - id - - objectInstanceIds - - jobCriteria - - jobConfig - - _links - properties: - id: - description: >- - Identifier of this logging job. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - objectInstanceIds: - description: >- - Identifiers of the object instance for which logging information is collected. This attribute shall - contain the identifier of the instance of the object that is logged according to their type. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - jobCriteria: - description: >- - Criteria of the collection of logging information. - $ref: "#/components/schemas/LoggingJobCriteria" - jobConfig: - description: >- - Configuration about the logging job. - $ref: "#/components/schemas/LoggingJobConfig" - logReports: - description: >- - Information about available log reports created by the logging job. - type: array - items: - type: object - required: - - logReportId - - logReportLoc - properties: - logReportId: - description: >- - Identifier of the available log report. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - logReportLoc: - description: >- - Link to the available log report. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Link' - _links: - description: >- - Links for this resource. - type: object - required: - - self - properties: - self: - description: >- - URI of this resource. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Link' - objects: - description: >- - Links to resources representing the object instances that are logged. Shall be present - if the logged object instance information is accessible as a resource. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Link' - - LoggingJobCriteria: - description: >- - This type represents collection criteria for logging jobs. - * NOTE: The value of the loggingType has dependency on the object that is requested to be logged - (refer to the CreateLoggingJobRequest): a) the logging of messages is only applicable to - ManoServiceInterface and ConsumedManoInterface objects. - type: object - required: - - loggingType - properties: - loggingType: - description: >- - Type of logging. This defines the types of logged information to collect. - - Permitted values: - - MESSAGES: logged NFV-MANO service interface messages. - - SERVICES: logged messages about processes pertaining to NFV-MANO services. - - SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider. - - See note. - type: string - enum: [MESSAGES, SERVICES, SYSTEM] - messagesLogDetail: - description: >- - Values for the collection of logged NFV-MANO service interface messages. Shall be - present if loggingType="MESSAGES". - type: object - $ref: "#/components/schemas/LoggingJobMessagesCriteria" - servicesLogDetail: - description: >- - Values for the collection of logged NFV-MANO service messages. Shall be present if loggingType="SERVICES". - type: object - $ref: "#/components/schemas/LoggingJobServicesCriteria" - systemLogDetail: - description: >- - Values for the collection of logged messages about the NFV-MANO functional entity’s system. - Shall be present if loggingType="SYSTEM". - type: object - $ref: "#/components/schemas/LoggingJobSystemCriteria" - - LoggingJobMessagesCriteria: - description: >- - This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. - * NOTE: If a matching pattern is present, at least one of the "srcIpAddress", "dstIpAddress", "requestMethod", - "requestUriPattern" or "responseCodes" shall be provided. - type: object - required: - - direction - properties: - direction: - description: >- - The direction of the interface messages to match. - - Permitted values: - - IN: input messages into the interface. - - OUT: output messages from the interface. - - ALL: both input and output messages into/from the interface. - type: string - enum: [IN, OUT,ALL] - matchingPatterns: - description: >- - Patterns to be matched in the interface message. If provided, only messages that match all the - values provided in the sub-attributes shall be logged. An API consumer can provide more than one - "matchingPattern" if combinations of patterns are to be considered to match diverse sets of interface - messages. - See note. - type: array - items: - type: object - anyOf: - - required: - - srcIpAddress - - required: - - dstIpAddress - - required: - - requestMethod - - required: - - requestUriPattern - - required: - - responseCodes - properties: - srcIpAddress: - description: >- - IP address to match the source IP address of request messages to log. The API producer - shall support this attribute. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/IpAddress' - requestMethod: - description: >- - HTTP request method to be matched. To match, the HTTP request method of the message shall be the - same as the value of this attribute. Valid values are specified in IETF RFC 7231. The API producer - shall support this attribute. - type: string - requestUriPattern: - description: >- - Substring to be matched in the request URI. To match, the request URI shall include the value of - this attribute as a substring. This is typically used to match messages which associate to RESTful - resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall - support this attribute. - type: string - dstIpAddress: - description: >- - IP address to match the destination IP address of response messages to log. The API - producer shall support this attribute - $ref: '../components/SOL009_schemas.yaml#/components/schemas/IpAddress' - responseCodes: - description: >- - HTTP response codes or patterns to match. A list of all valid HTTP response codes and their - specification documents can be obtained from the HTTP status code registry. In addition, - if supported, the following patterns may be used (case-insensitive): - - "1XX": for matching any kind of informational response. - - "2XX": for matching any kind of success response. - - "3XX": for matching any kind redirection response. - - "4XX": for matching any kind of client error response. - - "5XX": for matching any kind of server error response. - - The API producer shall support this attribute - type: array - items: - type: string - headerField: - description: >- - Name of the header field to be matched. The header field name shall be one of the supported fields - in a request message as defined in clause 4.2.2 of ETSI GS NFV-SOL 013 or in a response message - as defined in clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance with the "direction" criteria - input. - The API producer may support this attribute. - type: string - headerValue: - description: >- - Value in the header to be matched. To match, the value in the header field indicated by - "headerField" shall be the same as in this attribute. Shall be provided if a "headerField" - is provided. The API producer may support this attribute. - type: string - bodyValues: - description: >- - A list of strings to be matched in the body part of the interface message (e.g., the body of an - HTTP message). If provided, only messages with text in the body part containing all the values from - the list shall match the filter. In addition to a matching filter for the body of the message, a - corresponding "headerField" filter shall also be provided, with "headerField" set to "Content-Type", - to restrict matching to appropriate textual payloads such as "application/json" or "text/plain". - The API producer may support this attribute - type: string - - LoggingJobServicesCriteria: - description: >- - This type represents criteria for logging jobs to collect logged messages about processes pertaining - to NFV-MANO services. - * NOTE: In the present version of the present document, only one attribute, i.e. - "logGarbageCollection", is available. - type: object - properties: - logGarbageCollection: - description: >- - Indicates to collect logged information about garbage collection processes associated to NFV-MANO services. - See note. - type: boolean - - LoggingJobSystemCriteria: - description: >- - This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional - entity. - * NOTE: The set of properties and values for this attribute are assumed to be known to the consumer - by means defined outside of the present document. - type: object - required: - - systemLogs - - severityLevel - properties: - systemLogs: - description: >- - Values for the provider enabled system logs. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - severityLevelScheme: - description: >- - Identifies a severity level scheme. - The default value is "rfc5424", which represents the set of values specified in the clause 6.2.1, - table 2 of IETF RFC 5424. Other values may be used to signal different schemes. - type: string - severityLevel: - description: >- - The severity level, which determines the severity of the system messages to collect. The NFV-MANO - functional entity shall collect system log messages, as indicated by the "systemLogs" attribute, - with severity levels lower (i.e., more severe) or equal to the value provided by this present attribute. - type: number - - LoggingJobConfig: - description: >- - This type represents configuration data for a logging job. It shall comply with the provisions - defined in table 8.6.3.6-1. - NOTE: The present document version does not specify the support for "log compilation and reporting based - on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. - - * NOTE 1: The minimumReportingPeriod is used to throttle possible flooding of reports by providing a lower - limit on the gap between two log availability notification to be emitted by the same logging job. - NOTE 2: More than one logCompilingCondition is possible to provide a combination of different conditions - for the compilation. This covers use cases when the compilation of the log can be based on, e.g. - a timer value and a size value, whichever first condition is met first. For instance, compile a - log every 3 600 seconds, or whenever during the 3 600 seconds period the log grows in - size to 1 000 000 bytes. - NOTE 3: The value is indicative, as the actual size of the compiled log files might not match the provided - compileBySizeValue due to possible deviations in the tracking of the size of the log data by the - API producer, and the size of individual logged data entries when these are collected. - type: object - required: - - reportingCondition - - securityConf - properties: - startTime: - description: >- - Specifies the time for the logging job to be started. If not provided, the logging job is - requested to start immediately. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - endTime: - description: >- - Specifies the time after which the logging job will stop. Shall only be provided if the - logging job is requested to stop at a specific time. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - reportingCondition: - description: >- - Specifies the condition under which the producer will report to the consumer about the compiled log data. - required: - - reportingType - properties: - reportingType: - description: >- - Specifies the type of reporting condition. - Permitted values: - - REPORTING_ON_COMPILATION: the producer shall notify the consumer once the compilation of the - collected logging data into a file is completed and a new log report is available. - - NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the - availability of new log reports). - - type: string - enum: [REPORTING_ON_COMPILATION, NO_REPORTING] - minimumReportingPeriod: - description: >- - Specifies the minimum periodicity at which the producer will report to the consumer about the - collected log information, in seconds. See note 1. - type: integer - format: int32 - compileBySizeValue: - description: >- - An indicative size threshold for compiling the collected log data, in bytes. It is used when the - compilation is based on the size of the collected log data. If not present, a default value as - specified with the "defaultLogCompileBySizeValue" configuration in the "ManoEntityConfigurableParams" - shall be used. See note 2 and note 3. - type: integer - format: int32 - compileByTimerValue: - description: >- - The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation - is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the - "defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used. - See note 2. - type: integer - format: int32 - securityConf: - description: >- - Configuration about the security aspects of the logging job. - type: object - properties: - logFileEncryption: - description: >- - Information about the encryption of the compiled log files. Shall be present if the log - file is requested to be encrypted. - required: - - encryptionCertificate - - cipherAlgorithm - type: object - properties: - encryptionCertificate: - description: >- - X.509 certificate with the public key to use for the encryption of the compiled log file. - type: string - cipherAlgorithm: - description: >- - Cryptographic algorithm to be used for the encryption of the compiled log file. More than - one algorithm can be provided from higher (lower array index) to lower (higher array index) - precedence. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", - as specified in clause 6.5 of ETSI GS NFV-SEC 012 - type: array - items: - type: string - minItems: 1 - encryptAndSignOrder: - description: >- - Indication about the order in signing and encrypting the compiled log file. Valid values are: - "encryptFirst", to apply the order "first encrypt, then sign", and "signFirst" for the order - "first sign, then encrypt". Default value is "encryptFirst". - type: string - logTransferSecurity: - description: >- - Information about the security measures for retrieving/accessing the compiled log files. - type: object - properties: - publicKey: - description: >- - The public key of the API consumer used for the client authentication with the file server. - Shall be provided if required by the type of transfer protocol. May be omitted if the key has - been provided to the API producer by other means, or if it has already been provided in some - previous CreateLoggingJobRequest issued by the same API consumer, whose public key has not changed. - type: string - - LogReportAvailableNotification: - description: >- - This notification informs the receiver that the log report of the NFV-MANO functional entity is available. - It shall comply with the provisions defined in table 8.6.2.4-1. - The notification shall be triggered by the NFV-MANO functional entity when log information has been collected - by the logging job and the log report is available. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - objectInstanceId - - _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/SOL009_schemas.yaml#/components/schemas/Identifier' - notificationType: - description: >- - Discriminator for the different notification types. - Shall be set to "LogReportAvailableNotification" for this notification type. - type: string - subscriptionId: - description: >- - Identifier of the subscription that this notification relates to. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - timeStamp: - description: >- - Date and time of the generation of the notification. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/DateTime' - objectInstanceId: - description: >- - Identifier that identifies the object instance for which the log report is available. - This attribute shall contain the identifier of the logged object according to their type. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - _links: - description: >- - Links to resources related to this notification. - type: object - required: - - subscription - - logReports - properties: - subscription: - description: >- - Link to the related subscription. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - objectInstance: - description: >- - Link to the resource representing the measured object instance to which the notified change applies. - Shall be present if the measured object instance information is accessible as a resource. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - LoggingJob: - description: >- - Link to the resource that represents the logging job for which the log report is available. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - logReports: - description: >- - Link from which the available log report can be obtained. Due to the relationship of the logging - job compilation and the logging information availability reporting, more than one logReport - notification link can be provided. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' callbacks: LogReportAvailableNotification: '{$request.body#/callbackUri}': diff --git a/src/SOL009/NFVManoLogManagement/components/NFVManoLogManagement_def.yaml b/src/SOL009/NFVManoLogManagement/components/NFVManoLogManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e70482bb9f0a32c3baa8f4fc08ad92f294bdb942 --- /dev/null +++ b/src/SOL009/NFVManoLogManagement/components/NFVManoLogManagement_def.yaml @@ -0,0 +1,770 @@ +components: + schemas: + LogmSubscription: + description: >- + This type represents a subscription. 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/SOL009_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/LogmNotificationsFilter" + callbackUri: + description: >- + The URI of the endpoint to send the notification to. + $ref: '../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/Link' + + LogmNotificationsFilter: + description: >- + This type represents a filter that can be used to subscribe for notifications related to log + management events. + * 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: object + properties: + objectInstanceFilter: + description: >- + Filter criteria to select object instance about which to notify. + $ref: "#/components/schemas/ManoEntitySubscriptionFilter" + notificationTypes: + description: >- + Match particular notification types. + Permitted values: + - LogReportAvailableNotification + See note. + type: string + enum: [LogReportAvailableNotification] + + ManoEntitySubscriptionFilter: + description: >- + This type represents subscription filter criteria to match NFV-MANO functional entities and their + associated managed objects. It shall comply with the provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: >- + If present, match the NFV-MANO functional entity with an instance identifier listed in this attribute. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance identifier listed in this attribute. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity' + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced interfaces with an instance + identifier listed in this attribute. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity' + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in + this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed interfaces with an instance Name + listed in this attribute. + type: array + items: + type: string + + CompileLogRequest: + description: > + This type represents a request to compile the logged data associated to an object instance. + It shall comply with the provisions defined in table 8.6.2.8-1. + type: object + properties: + objectInstanceId: + description: > + Identifier of the object instance for which logging information is requested to be compiled. The provided + value shall correspond to an object instance for which log data is being collected as specified in the + corresponding "LoggingJob". If not present, the compile log request is requested for all managed object + instances associated to the logging job. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + LogReport: + description: > + This type represents a log report, which provides information about a compiled log and how to obtain it. + * NOTE: It is not specified in the present document how the NFV-MANO functional entity's private + key is provided to the NFV-MANO functional entity. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: >- + Identifier of this log report. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + objectInstanceId: + description: >- + Identifiers of the object instance for which logging information is collected. + This attribute shall contain the identifier of the instance of the object that is + logged according to their type. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference' + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: + - ON_DEMAND: created based on explicit request by a client. + - AUTOMATIC: created according to the logging job compilation configuration. + type: string + enum: [ON_DEMAND, AUTOMATIC] + readyTime: + description: >- + The time when the report and log file was made available. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/DateTime' + expiryTime: + description: >- + The time when the report and log file will expire. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/DateTime' + fileSize: + description: >- + The size of the compiled log file in bytes, if known. + type: integer + format: int32 + fileFormat: + description: >- + The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. The consumer can use this information + to obtain the compiled log file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be retrieved. + + Permitted values: + - HTTPS: transmission over HTTP Secure (HTTPS). + - SFTP: transmission over SSH file transfer protocol (SFTP). + - SCP: transmission over secure copy protocol (SCP). + - FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228, + using explicit mode as specified in IETF RFC 4217. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be supported. + type: string + enum: [HTTPS, SFTP, SCP, FTPS] + fileEndpoint: + description: >- + The host name (or IP address), optionally a port number (if the host with the compile log file uses a + non-standard port number as per the supported transmission protocol), a valid file directory path, + and the file name of the compiled log file, or a valid URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of the log files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled log file. Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log file. The hash shall be computed + from the encrypted compiled log file, in case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log file. Shall be present if the + compiled log file is encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is + encrypted. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", + as specified in clause 6.5 of ETSI GS NFV-SEC 012. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the NFV-MANO functional entity’s private key, + which is used to ensure the authenticity of the compiled log file. The signature shall be applied + according to the "encryptAndSignOrder" of the "LoggingJobConfig". See note. + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional entity’s public key used for verifying the + log report and compiled log file signatures. + type: string + _links: + description: >- + Links for this resource. + type: object + required: + - self + properties: + self: + description: >- + URI of this resource. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Link' + objects: + description: >- + Links to resources representing the object instances that are logged. Shall be present + if the logged object instance information is accessible as a resource. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Link' + + LogmSubscriptionRequest: + description: >- + Information on application context created by the MEC system + type: object + required: + - callbackUri + type: object + 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/LogmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + CreateLoggingJobRequest: + description: >- + Information on application context created by the MEC system + type: object + required: + - objectInstanceIds + - jobCriteria + - jobConfig + properties: + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging information is requested to be collected. + This attribute shall contain the identifier of the instance of the object to be logged according to their type. + If more than one identifier is provided, values shall all refer to object instances of the same type, + for which the same criteria is then applicable. + type: array + minItems: 1 + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + jobCriteria: + description: >- + Criteria of the collection of logging information. + $ref: "#/components/schemas/LoggingJobCriteria" + jobConfig: + description: >- + Configuration about the logging job. + $ref: "#/components/schemas/LoggingJobConfig" + + LoggingJob: + description: >- + This type represents a logging job. It shall comply with the provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: >- + Identifier of this logging job. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging information is collected. This attribute shall + contain the identifier of the instance of the object that is logged according to their type. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + jobCriteria: + description: >- + Criteria of the collection of logging information. + $ref: "#/components/schemas/LoggingJobCriteria" + jobConfig: + description: >- + Configuration about the logging job. + $ref: "#/components/schemas/LoggingJobConfig" + logReports: + description: >- + Information about available log reports created by the logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: >- + Identifier of the available log report. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + logReportLoc: + description: >- + Link to the available log report. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Link' + _links: + description: >- + Links for this resource. + type: object + required: + - self + properties: + self: + description: >- + URI of this resource. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Link' + objects: + description: >- + Links to resources representing the object instances that are logged. Shall be present + if the logged object instance information is accessible as a resource. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Link' + + LoggingJobCriteria: + description: >- + This type represents collection criteria for logging jobs. + * NOTE: The value of the loggingType has dependency on the object that is requested to be logged + (refer to the CreateLoggingJobRequest): a) the logging of messages is only applicable to + ManoServiceInterface and ConsumedManoInterface objects. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged information to collect. + + Permitted values: + - MESSAGES: logged NFV-MANO service interface messages. + - SERVICES: logged messages about processes pertaining to NFV-MANO services. + - SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider. + + See note. + type: string + enum: [MESSAGES, SERVICES, SYSTEM] + messagesLogDetail: + description: >- + Values for the collection of logged NFV-MANO service interface messages. Shall be + present if loggingType="MESSAGES". + type: object + $ref: "#/components/schemas/LoggingJobMessagesCriteria" + servicesLogDetail: + description: >- + Values for the collection of logged NFV-MANO service messages. Shall be present if loggingType="SERVICES". + type: object + $ref: "#/components/schemas/LoggingJobServicesCriteria" + systemLogDetail: + description: >- + Values for the collection of logged messages about the NFV-MANO functional entity’s system. + Shall be present if loggingType="SYSTEM". + type: object + $ref: "#/components/schemas/LoggingJobSystemCriteria" + + LoggingJobMessagesCriteria: + description: >- + This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. + * NOTE: If a matching pattern is present, at least one of the "srcIpAddress", "dstIpAddress", "requestMethod", + "requestUriPattern" or "responseCodes" shall be provided. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: + - IN: input messages into the interface. + - OUT: output messages from the interface. + - ALL: both input and output messages into/from the interface. + type: string + enum: [IN, OUT,ALL] + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If provided, only messages that match all the + values provided in the sub-attributes shall be logged. An API consumer can provide more than one + "matchingPattern" if combinations of patterns are to be considered to match diverse sets of interface + messages. + See note. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: >- + IP address to match the source IP address of request messages to log. The API producer + shall support this attribute. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/IpAddress' + requestMethod: + description: >- + HTTP request method to be matched. To match, the HTTP request method of the message shall be the + same as the value of this attribute. Valid values are specified in IETF RFC 7231. The API producer + shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To match, the request URI shall include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: >- + IP address to match the destination IP address of response messages to log. The API + producer shall support this attribute + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/IpAddress' + responseCodes: + description: >- + HTTP response codes or patterns to match. A list of all valid HTTP response codes and their + specification documents can be obtained from the HTTP status code registry. In addition, + if supported, the following patterns may be used (case-insensitive): + - "1XX": for matching any kind of informational response. + - "2XX": for matching any kind of success response. + - "3XX": for matching any kind redirection response. + - "4XX": for matching any kind of client error response. + - "5XX": for matching any kind of server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The header field name shall be one of the supported fields + in a request message as defined in clause 4.2.2 of ETSI GS NFV-SOL 013 or in a response message + as defined in clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance with the "direction" criteria + input. + The API producer may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the value in the header field indicated by + "headerField" shall be the same as in this attribute. Shall be provided if a "headerField" + is provided. The API producer may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part of the interface message (e.g., the body of an + HTTP message). If provided, only messages with text in the body part containing all the values from + the list shall match the filter. In addition to a matching filter for the body of the message, a + corresponding "headerField" filter shall also be provided, with "headerField" set to "Content-Type", + to restrict matching to appropriate textual payloads such as "application/json" or "text/plain". + The API producer may support this attribute + type: string + + LoggingJobServicesCriteria: + description: >- + This type represents criteria for logging jobs to collect logged messages about processes pertaining + to NFV-MANO services. + * NOTE: In the present version of the present document, only one attribute, i.e. + "logGarbageCollection", is available. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage collection processes associated to NFV-MANO services. + See note. + type: boolean + + LoggingJobSystemCriteria: + description: >- + This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional + entity. + * NOTE: The set of properties and values for this attribute are assumed to be known to the consumer + by means defined outside of the present document. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + description: >- + Values for the provider enabled system logs. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + severityLevelScheme: + description: >- + Identifies a severity level scheme. + The default value is "rfc5424", which represents the set of values specified in the clause 6.2.1, + table 2 of IETF RFC 5424. Other values may be used to signal different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, as indicated by the "systemLogs" attribute, + with severity levels lower (i.e., more severe) or equal to the value provided by this present attribute. + type: number + + LoggingJobConfig: + description: >- + This type represents configuration data for a logging job. It shall comply with the provisions + defined in table 8.6.3.6-1. + NOTE: The present document version does not specify the support for "log compilation and reporting based + on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. + + * NOTE 1: The minimumReportingPeriod is used to throttle possible flooding of reports by providing a lower + limit on the gap between two log availability notification to be emitted by the same logging job. + NOTE 2: More than one logCompilingCondition is possible to provide a combination of different conditions + for the compilation. This covers use cases when the compilation of the log can be based on, e.g. + a timer value and a size value, whichever first condition is met first. For instance, compile a + log every 3 600 seconds, or whenever during the 3 600 seconds period the log grows in + size to 1 000 000 bytes. + NOTE 3: The value is indicative, as the actual size of the compiled log files might not match the provided + compileBySizeValue due to possible deviations in the tracking of the size of the log data by the + API producer, and the size of individual logged data entries when these are collected. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: >- + Specifies the time for the logging job to be started. If not provided, the logging job is + requested to start immediately. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + endTime: + description: >- + Specifies the time after which the logging job will stop. Shall only be provided if the + logging job is requested to stop at a specific time. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + reportingCondition: + description: >- + Specifies the condition under which the producer will report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. + Permitted values: + - REPORTING_ON_COMPILATION: the producer shall notify the consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the + availability of new log reports). + + type: string + enum: [REPORTING_ON_COMPILATION, NO_REPORTING] + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the producer will report to the consumer about the + collected log information, in seconds. See note 1. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected log data, in bytes. It is used when the + compilation is based on the size of the collected log data. If not present, a default value as + specified with the "defaultLogCompileBySizeValue" configuration in the "ManoEntityConfigurableParams" + shall be used. See note 2 and note 3. + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation + is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used. + See note 2. + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log files. Shall be present if the log + file is requested to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the encryption of the compiled log file. More than + one algorithm can be provided from higher (lower array index) to lower (higher array index) + precedence. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", + as specified in clause 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and encrypting the compiled log file. Valid values are: + "encryptFirst", to apply the order "first encrypt, then sign", and "signFirst" for the order + "first sign, then encrypt". Default value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the client authentication with the file server. + Shall be provided if required by the type of transfer protocol. May be omitted if the key has + been provided to the API producer by other means, or if it has already been provided in some + previous CreateLoggingJobRequest issued by the same API consumer, whose public key has not changed. + type: string + + LogReportAvailableNotification: + description: >- + This notification informs the receiver that the log report of the NFV-MANO functional entity is available. + It shall comply with the provisions defined in table 8.6.2.4-1. + The notification shall be triggered by the NFV-MANO functional entity when log information has been collected + by the logging job and the log report is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _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/SOL009_schemas.yaml#/components/schemas/Identifier' + notificationType: + description: >- + Discriminator for the different notification types. + Shall be set to "LogReportAvailableNotification" for this notification type. + type: string + subscriptionId: + description: >- + Identifier of the subscription that this notification relates to. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + timeStamp: + description: >- + Date and time of the generation of the notification. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/DateTime' + objectInstanceId: + description: >- + Identifier that identifies the object instance for which the log report is available. + This attribute shall contain the identifier of the logged object according to their type. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + _links: + description: >- + Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: >- + Link to the related subscription. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + objectInstance: + description: >- + Link to the resource representing the measured object instance to which the notified change applies. + Shall be present if the measured object instance information is accessible as a resource. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + LoggingJob: + description: >- + Link to the resource that represents the logging job for which the log report is available. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + logReports: + description: >- + Link from which the available log report can be obtained. Due to the relationship of the logging + job compilation and the logging information availability reporting, more than one logReport + notification link can be provided. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' diff --git a/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml b/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml index e09ff8bef09fb497b6940e19382712718c99ff76..e0419b98e787fdbb0c0b8258a1d1abf5a593c9b2 100644 --- a/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml +++ b/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml @@ -19,8 +19,8 @@ info: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -107,7 +107,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/LogReportAvailableNotification" + $ref: "./components/NFVManoLogManagementNotification_def.yaml#/components/schemas/LogReportAvailableNotification" required: true responses: @@ -154,71 +154,3 @@ components: schema: type: string - schemas: - LogReportAvailableNotification: - description: >- - This notification informs the receiver that the log report of the NFV-MANO functional entity is available. - It shall comply with the provisions defined in table 8.6.2.4-1. - The notification shall be triggered by the NFV-MANO functional entity when log information has been collected - by the logging job and the log report is available. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - objectInstanceId - - _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/SOL009_schemas.yaml#/components/schemas/Identifier' - notificationType: - description: >- - Discriminator for the different notification types. - Shall be set to "LogReportAvailableNotification" for this notification type. - type: string - subscriptionId: - description: >- - Identifier of the subscription that this notification relates to. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' - timeStamp: - description: >- - Date and time of the generation of the notification. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/DateTime' - objectInstanceId: - description: >- - Identifier that identifies the object instance for which the log report is available. - This attribute shall contain the identifier of the logged object according to their type. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - _links: - description: >- - Links to resources related to this notification. - type: object - required: - - subscription - - logReports - properties: - subscription: - description: >- - Link to the related subscription. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - objectInstance: - description: >- - Link to the resource representing the measured object instance to which the notified change applies. - Shall be present if the measured object instance information is accessible as a resource. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - LoggingJob: - description: >- - Link to the resource that represents the logging job for which the log report is available. - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' - logReports: - description: >- - Link from which the available log report can be obtained. Due to the relationship of the logging - job compilation and the logging information availability reporting, more than one logReport - notification link can be provided. - type: array - items: - $ref: '../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' diff --git a/src/SOL009/NFVManoLogManagementNotification/components/NFVManoLogManagementNotification_def.yaml b/src/SOL009/NFVManoLogManagementNotification/components/NFVManoLogManagementNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cd2efbdda0dfce65d466d6f8cb498936b206b5da --- /dev/null +++ b/src/SOL009/NFVManoLogManagementNotification/components/NFVManoLogManagementNotification_def.yaml @@ -0,0 +1,69 @@ +components: + schemas: + LogReportAvailableNotification: + description: >- + This notification informs the receiver that the log report of the NFV-MANO functional entity is available. + It shall comply with the provisions defined in table 8.6.2.4-1. + The notification shall be triggered by the NFV-MANO functional entity when log information has been collected + by the logging job and the log report is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _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/SOL009_schemas.yaml#/components/schemas/Identifier' + notificationType: + description: >- + Discriminator for the different notification types. + Shall be set to "LogReportAvailableNotification" for this notification type. + type: string + subscriptionId: + description: >- + Identifier of the subscription that this notification relates to. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/Identifier' + timeStamp: + description: >- + Date and time of the generation of the notification. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/DateTime' + objectInstanceId: + description: >- + Identifier that identifies the object instance for which the log report is available. + This attribute shall contain the identifier of the logged object according to their type. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + _links: + description: >- + Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: >- + Link to the related subscription. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + objectInstance: + description: >- + Link to the resource representing the measured object instance to which the notified change applies. + Shall be present if the measured object instance information is accessible as a resource. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + LoggingJob: + description: >- + Link to the resource that represents the logging job for which the log report is available. + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' + logReports: + description: >- + Link from which the available log report can be obtained. Due to the relationship of the logging + job compilation and the logging information availability reporting, more than one logReport + notification link can be provided. + type: array + items: + $ref: '../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink' diff --git a/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml b/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml index aafde553ca087937b6b55916c6abcfdaccceef45..5da440b2345c673e62e76a9ae123ea70ac35c2a6 100644 --- a/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml +++ b/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml @@ -20,8 +20,8 @@ info: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/nfvmanopm/v2 @@ -403,509 +403,6 @@ paths: $ref: ../components/SOL009_resp.yaml#/components/responses/504 components: - schemas: - CreatePmJobRequest: - description: > - This type represents a request to create a PM job. - type: object - required: - - objectType - - objectInstanceIds - - criteria - - callbackUri - properties: - objectType: - description: > - Type of measured object. The applicable measured object type for a measurement - is defined in clause 8.2 of ETSI GS NFV-IFA 031. - type: string - objectInstanceIds: - description: > - Identifiers of the measured object instance for which performance information - is requested to be collected. This attribute shall contain the identifier of - the instance of the measure object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. - If more than one identifier is provided, values shall all refer to measured - object instances of the same type, for which the same criteria is then applicable. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - minItems: 1 - subObjectInstanceIds: - description: > - Identifiers of the sub-object instances of the measured object instance for - which performance information is requested to be collected. - May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 - for the related measured object type. - If this attribute is present, the cardinality of the "objectInstanceIds" - attribute shall be 1. - If this attribute is absent and a sub-object is defined in clause 8.2 of - ETSI GS NFV-IFA 031 for the related measured object type, measurements will - be taken for all sub-object instances of the measured object instance. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - criteria: - description: > - Criteria of the collection of performance information. - $ref: "#/components/schemas/PmJobCriteria" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - PmJob: - description: > - This type represents a PM job. - type: object - required: - - id - - objectType - - objectInstanceIds - - criteria - - _links - - callbackUri - properties: - id: - description: > - Identifier of this PM job. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - objectType: - description: > - Type of measured object. The applicable measured object type for a measurement is - defined in clause 8.2 of ETSI GS NFV-IFA 031. - type: string - objectInstanceIds: - description: > - Identifiers of the measured object instance for which performance information - is collected. This attribute shall contain the identifier of the instance of - the measure object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - minItems: 1 - subObjectInstanceIds: - description: > - Identifiers of the sub-object instances of the measured object instance for - which performance information is requested to be collected. - May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 - for the related measured object type. - If this attribute is present, the cardinality of the "objectInstanceIds" - attribute shall be 1. - If this attribute is absent and a sub-object is defined in clause 8.2 of - ETSI GS NFV-IFA 031 for the related measured object type, measurements will - be taken for all sub-object instances of the measured object instance. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - criteria: - description: > - Criteria of the collection of performance information. - $ref: "#/components/schemas/PmJobCriteria" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - reports: - description: > - Information about available reports collected by this PM job. - type: array - items: - type: object - properties: - href: - description: > - The Uri where the report can be obtained. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - readyTime: - description: > - The time when the report was made available. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - expiryTime: - description: > - The time when the report will expire. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - fileSize: - description: > - The size of the report file in bytes, if known. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" - required: - - href - - readyTime - _links: - description: > - Links for this resource. - type: object - properties: - self: - description: > - URI of this resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - objects: - description: > - Links to resources representing the measured object instances for which - performance information is collected. Shall be present if the measured - object instance information is accessible as a resource. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - required: - - self - - CreateThresholdRequest : - description: > - This type represents a request to create a threshold. - type: object - required: - - objectType - - objectInstanceId - - criteria - - callbackUri - properties: - objectType: - description: > - Type of measured object. The applicable measured object type for a measurement - is defined in clause 8.2 of ETSI GS NFV-IFA 031. - type: string - objectInstanceId: - description: > - Identifier of the measured object instance associated with this threshold. - This attribute shall contain the identifier of the instance of the measure - object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - subjObjectInstanceIds: - description: > - Identifiers of the sub-object instances of the measured object instance - associated with this threshold. - May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 - for the related measured object type. - If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI - GS NFV-IFA 031 for the related measured object type, thresholds will be set - for all sub-object instances of the measured object instance. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - criteria: - description: > - Criteria that define this threshold. - $ref: "#/components/schemas/ThresholdCriteria" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - Threshold: - description: > - This type represents a threshold. - type: object - required: - - id - - objectType - - objectInstanceId - - subjObjectInstanceIds - - criteria - - _links - - callbackUri - properties: - id: - description: > - Identifier of this threshold resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - objectType: - description: > - Type of measured object. The applicable measured object type for a measurement - is defined in clause 8.2 of ETSI GS NFV-IFA 031. - type: string - objectInstanceId: - description: > - Identifier of the measured object instance associated with the threshold. - This attribute shall contain the identifier of the instance of the measure - object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - subjObjectInstanceIds: - description: > - Identifiers of the sub-object instances of the measured object instance - associated with this threshold. - May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 - for the related measured object type. - If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI - GS NFV-IFA 031 for the related measured object type, thresholds are set for - all sub-object instances of the measured object instance. - type: array - items: - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - criteria: - description: > - Criteria that define this threshold. - $ref: "#/components/schemas/ThresholdCriteria" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - _links: - description: > - Links for this resource. - type: object - properties: - self: - description: > - URI for this resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - object: - description: > - Link to a resource representing the measured object instance for which performance - information is collected. Shall be present if the measured object instance information - is accessible as a resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" - required: - - self - - PerformanceReport: - description: > - This type defines the format of a performance report provided by the NFV-MANO functional - entity to the API consumer as a result of collecting performance information as part - of a PM job. - type: object - required: - - entries - properties: - entries: - description: > - List of performance information entries. Each performance report entry is for a given - metric of a given object (i.e. measured object instance) corresponding to the related - measured object types, but can include multiple collected values. - type: array - items: - type: object - properties: - objectType: - description: > - Type of measured object. The applicable measured object type for a measurement is - defined in clause 8.2 of ETSI GS NFV-IFA 031. - type: string - objectInstanceId: - description: > - The object instance (i.e. measured object instance) for which the performance metric - is reported. This attribute shall contain the identifier of the instance of the - measure object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" - subObjectInstanceId: - description: > - Identifier of the sub-object instance of the measured object instance for which the - performance metric is reported. Shall be present if this is required in clause 8.2 - of ETSI GS NFV-IFA 031 [1] for the related measured object type. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - performanceMetric: - description: > - Name of the metric collected. This attribute shall contain the related - "Measurement Name" value as defined in clause 8.4 of ETSI GS NFV-IFA 031. - type: string - performanceValues: - description: > - List of performance values with associated timestamp. - type: array - items: - type: object - properties: - timeStamp: - description: > - Time stamp indicating when the data was collected. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - value: - description: > - Value of the metric collected. The type of this attribute shall correspond to - the related "Measurement Unit" as defined in clause 8.4 of ETSI GS NFV-IFA 031. - context: - description: > - Measurement context information related to the measured value. The set of - applicable keys is defined per measurement in clause 8.4 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - required: - - timeStamp - - value - minItems: 1 - required: - - objectType - - objectInstanceId - - performanceMetric - - performanceValues - minItems: 1 - - PmJobModifications: - description: > - This type represents modifications to a PM job. - * NOTE: At least one of the attributes defined in this type shall be present in request bodies. - type: object - properties: - callbackUri: - description: > - New value of the "callbackUri" attribute.The value "null" is not permitted. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - authentication: - description: > - New value of the "authentication" attribute, or "null" to remove the attribute. - If present in a request body, these modifications shall be applied according - to the rules of JSONMerge PATCH (see IETF RFC 7396). - - This attribute shall not be present in response bodies. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - ThresholdModifications: - description: > - This type represents modifications to a threshold. - * NOTE: At least one of the attributes defined in this type shall be present in request bodies. - type: object - properties: - callbackUri: - description: > - New value of the "callbackUri" attribute.The value "null" is not permitted. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" - authentication: - description: > - New value of the "authentication" attribute, or "null" to remove the attribute. - If present in a request body, these modifications shall be applied according - to the rules of JSONMerge PATCH (see IETF RFC 7396). - - This attribute shall not be present in response bodies. See note. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" - - #---------- - - PmJobCriteria: - description: > - This type represents collection criteria for PM jobs. - * NOTE 1: At the end of each reportingPeriod, the producer will inform the API consumer about availability - of the performance data collected for each completed collection period during this reportingPeriod. - The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, - the performance data for the collection periods within one reporting period are reported together. - * NOTE 2: In particular when choosing short collection and reporting periods, the number of PM jobs that can - be supported depends on the capability of the producing entity. - type: object - required: - - collectionPeriod - - reportingPeriod - properties: - performanceMetric: - description: > - This defines the types of performance metrics for the specified measured - object(s). This attribute’s value shall contain the related "Measurement Name" - values as defined in clause 8.4 of ETSI GS NFV-IFA 031. - At least one of the two attributes (performance metric or group) shall be present. - type: array - items: - type: string - performanceMetricGroup: - description: > - Group of performance metrics. - A metric group is a pre-defined list of metrics, known to the producer that it - can decompose to individual metrics. This attribute’s value shall contain the - related "Measurement Group" values as defined in clause 8.4 of ETSI GS - NFV-IFA 031. - At least one of the two attributes (performance metric or group) shall be present. - type: array - items: - type: string - collectionPeriod: - description: > - Specifies the periodicity at which the producer will collect performance - information. The unit shall be seconds. See note 1 and note 2. - type: integer - reportingPeriod: - description: > - Specifies the periodicity at which the producer will report to the API consumer - about performance information. The unit shall be seconds. See note 1 and note 2. - type: integer - reportingBoundary: - description: > - Identifies a time boundary after which the reporting will stop. - The boundary shall allow a single reporting as well as periodic reporting up to - the boundary. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - - ThresholdCriteria: - description: > - This type represents criteria that define a threshold. - * NOTE 1: In the present document, simple thresholds are defined. The definition of additional threshold - types is left for future specification. - * NOTE 2: The hysteresis is defined to prevent storms of threshold crossing notifications. - When processing a request to create a threshold, implementations should enforce a suitable minimum - value for this attribute (e.g. override the value or reject the request). - type: object - required: - - performanceMetric - - thresholdType - properties: - performanceMetric: - description: > - Defines the performance metric associated with the threshold. - This attribute’s value shall contain the related "Measurement Name" values - as defined in clause 8.4 of ETSI GS NFV-IFA 031 - type: string - thresholdType: - description: > - Type of threshold. This attribute determines which other attributes are - present in the data structure. - Permitted values: - - SIMPLE: Single-valued static threshold - - In the present document, simple thresholds are defined. The definition - of additional threshold types is left for future specification. - type: string - enum: - - SIMPLE - simpleThresholdDetails: - description: > - Details of a simple threshold. Shall be present if thresholdType="SIMPLE". - type: object - properties: - thresholdValue: - description: > - The threshold value. Shall be represented as a floating point number. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Number" - hysteresis: - description: > - The hysteresis of the threshold. - Shall be represented as a non-negative floating point number. - A notification with crossing direction "UP" will be generated if the - measured value reaches or exceeds "thresholdValue" + "hysteresis". - A notification with crossing direction "DOWN" will be generated if - the measured value reaches or undercuts "thresholdValue" - "hysteresis". - - The hysteresis is defined to prevent storms of threshold crossing notifications. - When processing a request to create a threshold, implementations should enforce - a suitable minimum value for this attribute (e.g. override the value or reject - the request). - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Number" - required: - - thresholdValue - - hysteresis - - #---------------- - # common types to SOL009 - #---------------- - responses: pm_jobs.Post.201: description: > @@ -934,7 +431,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PmJob" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob" pm_jobs.Post.422: description: > 422 Unprocessable Entity @@ -1017,7 +514,7 @@ components: schema: type: array items: - $ref: "#/components/schemas/PmJob" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob" pm_jobs.Get.400: description: > 400 BAD REQUEST @@ -1077,7 +574,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PmJob" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob" IndividualPmJob.Patch.200: description: > 200 OK @@ -1101,7 +598,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PmJobModifications" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJobModifications" IndividualPmJob.Patch.412: description: > 412 PRECONDITION FAILED @@ -1213,7 +710,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/PerformanceReport" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PerformanceReport" Thresholds.Post.201: description: > @@ -1252,7 +749,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/Threshold" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold" Thresholds.Post.422: description: > 422 Unprocessable Entity @@ -1325,7 +822,7 @@ components: schema: type: array items: - $ref: "#/components/schemas/Threshold" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold" Thresholds.Get.400: description: > 400 BAD REQUEST @@ -1382,7 +879,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/Threshold" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold" Threshold.Patch.200: description: > @@ -1407,7 +904,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/ThresholdModifications" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/ThresholdModifications" Threshold.Patch.412: description: > 412 PRECONDITION FAILED @@ -1541,7 +1038,7 @@ components: structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - - none + - reports in: query required: false schema: @@ -1581,7 +1078,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CreatePmJobRequest" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/CreatePmJobRequest" required: true CreateThresholdRequest: @@ -1590,7 +1087,7 @@ components: content: application/json: schema: - $ref: "#/components/schemas/CreateThresholdRequest" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/CreateThresholdRequest" required: true ThresholdModificationRequest: @@ -1602,7 +1099,7 @@ components: content: application/merge-patch+json: schema: - $ref: "#/components/schemas/ThresholdModifications" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/ThresholdModifications" required: true PmJobModificationRequest: @@ -1614,5 +1111,5 @@ components: content: application/merge-patch+json: schema: - $ref: "#/components/schemas/PmJobModifications" + $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJobModifications" required: true \ No newline at end of file diff --git a/src/SOL009/NFVManoPerformanceManagement/components/NFVManoPerformanceManagement_def.yaml b/src/SOL009/NFVManoPerformanceManagement/components/NFVManoPerformanceManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..07f690632281ab6bb0ce5d035c3a830a8e26c6c2 --- /dev/null +++ b/src/SOL009/NFVManoPerformanceManagement/components/NFVManoPerformanceManagement_def.yaml @@ -0,0 +1,503 @@ +components: + schemas: + CreatePmJobRequest: + description: > + This type represents a request to create a PM job. + type: object + required: + - objectType + - objectInstanceIds + - criteria + - callbackUri + properties: + objectType: + description: > + Type of measured object. The applicable measured object type for a measurement + is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which performance information + is requested to be collected. This attribute shall contain the identifier of + the instance of the measure object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + If more than one identifier is provided, values shall all refer to measured + object instances of the same type, for which the same criteria is then applicable. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object instance for + which performance information is requested to be collected. + May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 + for the related measured object type. + If this attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. + If this attribute is absent and a sub-object is defined in clause 8.2 of + ETSI GS NFV-IFA 031 for the related measured object type, measurements will + be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/components/schemas/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + PmJob: + description: > + This type represents a PM job. + type: object + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + - callbackUri + properties: + id: + description: > + Identifier of this PM job. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + objectType: + description: > + Type of measured object. The applicable measured object type for a measurement is + defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which performance information + is collected. This attribute shall contain the identifier of the instance of + the measure object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object instance for + which performance information is requested to be collected. + May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 + for the related measured object type. + If this attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. + If this attribute is absent and a sub-object is defined in clause 8.2 of + ETSI GS NFV-IFA 031 for the related measured object type, measurements will + be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/components/schemas/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + reports: + description: > + Information about available reports collected by this PM job. + type: array + items: + type: object + properties: + href: + description: > + The Uri where the report can be obtained. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + readyTime: + description: > + The time when the report was made available. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + expiryTime: + description: > + The time when the report will expire. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + fileSize: + description: > + The size of the report file in bytes, if known. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" + required: + - href + - readyTime + _links: + description: > + Links for this resource. + type: object + properties: + self: + description: > + URI of this resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + objects: + description: > + Links to resources representing the measured object instances for which + performance information is collected. Shall be present if the measured + object instance information is accessible as a resource. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + required: + - self + + CreateThresholdRequest : + description: > + This type represents a request to create a threshold. + type: object + required: + - objectType + - objectInstanceId + - criteria + - callbackUri + properties: + objectType: + description: > + Type of measured object. The applicable measured object type for a measurement + is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + Identifier of the measured object instance associated with this threshold. + This attribute shall contain the identifier of the instance of the measure + object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object instance + associated with this threshold. + May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 + for the related measured object type. + If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI + GS NFV-IFA 031 for the related measured object type, thresholds will be set + for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/components/schemas/ThresholdCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_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/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + Threshold: + description: > + This type represents a threshold. + type: object + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + - callbackUri + properties: + id: + description: > + Identifier of this threshold resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + objectType: + description: > + Type of measured object. The applicable measured object type for a measurement + is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + Identifier of the measured object instance associated with the threshold. + This attribute shall contain the identifier of the instance of the measure + object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object instance + associated with this threshold. + May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 + for the related measured object type. + If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI + GS NFV-IFA 031 for the related measured object type, thresholds are set for + all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/components/schemas/ThresholdCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + _links: + description: > + Links for this resource. + type: object + properties: + self: + description: > + URI for this resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + object: + description: > + Link to a resource representing the measured object instance for which performance + information is collected. Shall be present if the measured object instance information + is accessible as a resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Link" + required: + - self + + PerformanceReport: + description: > + This type defines the format of a performance report provided by the NFV-MANO functional + entity to the API consumer as a result of collecting performance information as part + of a PM job. + type: object + required: + - entries + properties: + entries: + description: > + List of performance information entries. Each performance report entry is for a given + metric of a given object (i.e. measured object instance) corresponding to the related + measured object types, but can include multiple collected values. + type: array + items: + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type for a measurement is + defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + The object instance (i.e. measured object instance) for which the performance metric + is reported. This attribute shall contain the identifier of the instance of the + measure object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" + subObjectInstanceId: + description: > + Identifier of the sub-object instance of the measured object instance for which the + performance metric is reported. Shall be present if this is required in clause 8.2 + of ETSI GS NFV-IFA 031 [1] for the related measured object type. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + performanceMetric: + description: > + Name of the metric collected. This attribute shall contain the related + "Measurement Name" value as defined in clause 8.4 of ETSI GS NFV-IFA 031. + type: string + performanceValues: + description: > + List of performance values with associated timestamp. + type: array + items: + type: object + properties: + timeStamp: + description: > + Time stamp indicating when the data was collected. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + value: + description: > + Value of the metric collected. The type of this attribute shall correspond to + the related "Measurement Unit" as defined in clause 8.4 of ETSI GS NFV-IFA 031. + context: + description: > + Measurement context information related to the measured value. The set of + applicable keys is defined per measurement in clause 8.4 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + required: + - timeStamp + - value + minItems: 1 + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValues + minItems: 1 + + PmJobModifications: + description: > + This type represents modifications to a PM job. + * NOTE: At least one of the attributes defined in this type shall be present in request bodies. + type: object + properties: + callbackUri: + description: > + New value of the "callbackUri" attribute.The value "null" is not permitted. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + authentication: + description: > + New value of the "authentication" attribute, or "null" to remove the attribute. + If present in a request body, these modifications shall be applied according + to the rules of JSONMerge PATCH (see IETF RFC 7396). + + This attribute shall not be present in response bodies. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + ThresholdModifications: + description: > + This type represents modifications to a threshold. + * NOTE: At least one of the attributes defined in this type shall be present in request bodies. + type: object + properties: + callbackUri: + description: > + New value of the "callbackUri" attribute.The value "null" is not permitted. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Uri" + authentication: + description: > + New value of the "authentication" attribute, or "null" to remove the attribute. + If present in a request body, these modifications shall be applied according + to the rules of JSONMerge PATCH (see IETF RFC 7396). + + This attribute shall not be present in response bodies. See note. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + #---------- + + PmJobCriteria: + description: > + This type represents collection criteria for PM jobs. + * NOTE 1: At the end of each reportingPeriod, the producer will inform the API consumer about availability + of the performance data collected for each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, + the performance data for the collection periods within one reporting period are reported together. + * NOTE 2: In particular when choosing short collection and reporting periods, the number of PM jobs that can + be supported depends on the capability of the producing entity. + type: object + required: + - collectionPeriod + - reportingPeriod + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the specified measured + object(s). This attribute’s value shall contain the related "Measurement Name" + values as defined in clause 8.4 of ETSI GS NFV-IFA 031. + At least one of the two attributes (performance metric or group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. + A metric group is a pre-defined list of metrics, known to the producer that it + can decompose to individual metrics. This attribute’s value shall contain the + related "Measurement Group" values as defined in clause 8.4 of ETSI GS + NFV-IFA 031. + At least one of the two attributes (performance metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will collect performance + information. The unit shall be seconds. See note 1 and note 2. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will report to the API consumer + about performance information. The unit shall be seconds. See note 1 and note 2. + type: integer + reportingBoundary: + description: > + Identifies a time boundary after which the reporting will stop. + The boundary shall allow a single reporting as well as periodic reporting up to + the boundary. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + + ThresholdCriteria: + description: > + This type represents criteria that define a threshold. + * NOTE 1: In the present document, simple thresholds are defined. The definition of additional threshold + types is left for future specification. + * NOTE 2: The hysteresis is defined to prevent storms of threshold crossing notifications. + When processing a request to create a threshold, implementations should enforce a suitable minimum + value for this attribute (e.g. override the value or reject the request). + type: object + required: + - performanceMetric + - thresholdType + properties: + performanceMetric: + description: > + Defines the performance metric associated with the threshold. + This attribute’s value shall contain the related "Measurement Name" values + as defined in clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other attributes are + present in the data structure. + Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. The definition + of additional threshold types is left for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: > + The threshold value. Shall be represented as a floating point number. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Number" + hysteresis: + description: > + The hysteresis of the threshold. + Shall be represented as a non-negative floating point number. + A notification with crossing direction "UP" will be generated if the + measured value reaches or exceeds "thresholdValue" + "hysteresis". + A notification with crossing direction "DOWN" will be generated if + the measured value reaches or undercuts "thresholdValue" - "hysteresis". + + The hysteresis is defined to prevent storms of threshold crossing notifications. + When processing a request to create a threshold, implementations should enforce + a suitable minimum value for this attribute (e.g. override the value or reject + the request). + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Number" + required: + - thresholdValue + - hysteresis + + #---------------- + # common types to SOL009 + #---------------- diff --git a/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml b/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml index 25b9099df3409f35a82bb6c18ac06d50db77dfa0..ce2cca6c1e55e3e2548c81744d1053edb9728f9b 100644 --- a/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml +++ b/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml @@ -19,8 +19,8 @@ info: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 009 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf + description: ETSI GS NFV-SOL 009 V3.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf servers: - url: http://127.0.0.1/callback/v2 @@ -152,183 +152,9 @@ components: application/json: schema: oneOf: - - $ref: "#/components/schemas/PerformanceInformationAvailableNotification" - - $ref: "#/components/schemas/ThresholdCrossedNotification" + - $ref: "./components/NFVManoPerformanceManagementNotification_def.yaml#/components/schemas/PerformanceInformationAvailableNotification" + - $ref: "./components/NFVManoPerformanceManagementNotification_def.yaml#/components/schemas/ThresholdCrossedNotification" required: true - schemas: - ThresholdCrossedNotification: - description: > - This type represents a notification that is sent when a threshold has been crossed. - - NOTE: The timing of sending this notification is determined by the capability of - the producing entity to evaluate the threshold crossing condition. - The notification shall be triggered by the NFV-MANO functional entity when - a threshold has been crossed. - type: object - required: - - id - - notificationType - - timeStamp - - thresholdId - - crossingDirection - - objectType - - objectInstanceId - - performanceMetric - - performanceValue - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "ThresholdCrossedNotification" for this notification type. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/String" - timeStamp: - description: > - Date and time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - thresholdId: - description: > - Identifier of the threshold which has been crossed. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - crossingDirection: - description: > - An indication of whether the threshold was crossed in upward or downward direction. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/CrossingDirectionType" - objectType: - description: > - Type of measured object.The applicable measured object type for a measurement - is defined in clause 8.2 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/String" - objectInstanceId: - description: > - Identifier of the measured object instance. This attribute shall contain the - identifier of the instance of the measure object according to their type. - See also definitions in clause 8.2 of ETSI GS NFV-IFA 031 - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - subObjectInstanceId: - description: > - Identifier of the sub-object of the measured object to which the measurement - applies. Shall be present if this is required in clause 8.2 of ETSI GS NFV-IFA 031 - for the related measured object type. Shall be absent otherwise. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - performanceMetric: - description: > - Performance metric associated with the threshold. - This attribute shall contain the related "Measurement Name" value as defined - in clause 8.4 of ETSI GS NFV-IFA 031 - $ref: "../components/SOL009_schemas.yaml#/components/schemas/String" - performanceValue: - description: > - Value of the metric that resulted in threshold crossing. - The type of this attribute shall correspond to the related "Measurement Unit" - as defined in clause 8.4 of ETSI GS NFV-IFA 031. - context: - description: >- - Measurement context information related to the measured value. The set of applicable keys is defined per - measurement in clause 8.4 of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" - _links: - description: > - Links to resources related to this notification. - type: object - properties: - objectInstance: - description: > - Link to the resource representing the measured object instance to which - the notified change applies. Shall be present if the measured object - instance information is accessible as a resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - threshold: - description: > - Link to the resource that represents the threshold that was crossed. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - required: - - objectInstance - - PerformanceInformationAvailableNotification: - description: > - This notification informs the receiver that performance information is available. - type: object - required: - - id - - notificationType - - pmJobId - - timeStamp - - objectType - - objectInstanceId - - _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/SOL009_schemas.yaml#/components/schemas/Identifier" - notificationType: - description: > - Discriminator for the different notification types. - Shall be set to "PerformanceInformationAvailableNotification" for this - notification type. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/String" - timeStamp: - description: > - Date and time of the generation of the notification. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" - pmJobId: - description: > - Identifier of the PM job for which performance information is available. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - objectType: - description: > - Type of measured object. - The applicable measured object type for a measurement is defined in clause 8.2 - of ETSI GS NFV-IFA 031. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/String" - objectInstanceId: - description: > - Type of measured object. - The applicable measured object type for a measurement is defined in clause 8.2 - of ETSI GS NFV-IFA 031 - $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" - subObjectInstanceId: - description: > - Identifier of the sub-object of the measured object instance for which the - measurements have been taken. Shall be present if the related PM job has been - set up to measure a sub-object instance of the measured object instance and a - sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related - measured object type. Shall be absent otherwise. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" - _links: - description: > - Links to resources related to this notification. - type: object - properties: - objectInstance: - description: > - Link to the resource representing the measured object instance to which the - notification applies. Shall be present if the measured object instance - information is accessible as a resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - pmJob: - description: > - Link to the resource that represents the PM job for which performance - information is available. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - PerformanceReport: - description: > - Link from which the available performance information of data type - "PerformanceReport" can be obtained. - This link should point to an "Individual performance report" resource. - $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" - required: - - pmJob - - performanceReport diff --git a/src/SOL009/NFVManoPerformanceManagementNotification/components/NFVManoPerformanceManagementNotification_def.yaml b/src/SOL009/NFVManoPerformanceManagementNotification/components/NFVManoPerformanceManagementNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4e4fefd6a8474f43fa3aec2914277ef746061ff5 --- /dev/null +++ b/src/SOL009/NFVManoPerformanceManagementNotification/components/NFVManoPerformanceManagementNotification_def.yaml @@ -0,0 +1,176 @@ +components: + schemas: + ThresholdCrossedNotification: + description: > + This type represents a notification that is sent when a threshold has been crossed. + + NOTE: The timing of sending this notification is determined by the capability of + the producing entity to evaluate the threshold crossing condition. + + The notification shall be triggered by the NFV-MANO functional entity when + a threshold has been crossed. + type: object + required: + - id + - notificationType + - timeStamp + - thresholdId + - crossingDirection + - objectType + - objectInstanceId + - performanceMetric + - performanceValue + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "ThresholdCrossedNotification" for this notification type. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/String" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + thresholdId: + description: > + Identifier of the threshold which has been crossed. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + crossingDirection: + description: > + An indication of whether the threshold was crossed in upward or downward direction. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/CrossingDirectionType" + objectType: + description: > + Type of measured object.The applicable measured object type for a measurement + is defined in clause 8.2 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/String" + objectInstanceId: + description: > + Identifier of the measured object instance. This attribute shall contain the + identifier of the instance of the measure object according to their type. + See also definitions in clause 8.2 of ETSI GS NFV-IFA 031 + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + subObjectInstanceId: + description: > + Identifier of the sub-object of the measured object to which the measurement + applies. Shall be present if this is required in clause 8.2 of ETSI GS NFV-IFA 031 + for the related measured object type. Shall be absent otherwise. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + performanceMetric: + description: > + Performance metric associated with the threshold. + This attribute shall contain the related "Measurement Name" value as defined + in clause 8.4 of ETSI GS NFV-IFA 031 + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/String" + performanceValue: + description: > + Value of the metric that resulted in threshold crossing. + The type of this attribute shall correspond to the related "Measurement Unit" + as defined in clause 8.4 of ETSI GS NFV-IFA 031. + context: + description: >- + Measurement context information related to the measured value. The set of applicable keys is defined per + measurement in clause 8.4 of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" + _links: + description: > + Links to resources related to this notification. + type: object + properties: + objectInstance: + description: > + Link to the resource representing the measured object instance to which + the notified change applies. Shall be present if the measured object + instance information is accessible as a resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + threshold: + description: > + Link to the resource that represents the threshold that was crossed. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + required: + - objectInstance + + PerformanceInformationAvailableNotification: + description: > + This notification informs the receiver that performance information is available. + type: object + required: + - id + - notificationType + - pmJobId + - timeStamp + - objectType + - objectInstanceId + - _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/SOL009_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "PerformanceInformationAvailableNotification" for this + notification type. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/String" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime" + pmJobId: + description: > + Identifier of the PM job for which performance information is available. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + objectType: + description: > + Type of measured object. + The applicable measured object type for a measurement is defined in clause 8.2 + of ETSI GS NFV-IFA 031. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/String" + objectInstanceId: + description: > + Type of measured object. + The applicable measured object type for a measurement is defined in clause 8.2 + of ETSI GS NFV-IFA 031 + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier" + subObjectInstanceId: + description: > + Identifier of the sub-object of the measured object instance for which the + measurements have been taken. Shall be present if the related PM job has been + set up to measure a sub-object instance of the measured object instance and a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type. Shall be absent otherwise. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" + _links: + description: > + Links to resources related to this notification. + type: object + properties: + objectInstance: + description: > + Link to the resource representing the measured object instance to which the + notification applies. Shall be present if the measured object instance + information is accessible as a resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + pmJob: + description: > + Link to the resource that represents the PM job for which performance + information is available. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + PerformanceReport: + description: > + Link from which the available performance information of data type + "PerformanceReport" can be obtained. + This link should point to an "Individual performance report" resource. + $ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" + required: + - pmJob + - performanceReport