Commit a07cb515 authored by Elian Kraja's avatar Elian Kraja
Browse files

Added tests on SOL003 and SOL002 postman collections

parent 7ecbac68
{
"info": {
"_postman_id": "6103b843-efec-4129-b85d-72d475bc135e",
"name": "SOL002 - VNF Configuration interface",
"description": "VNF Configuration interface of ETSI NFV SOL002\n\nIMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.\n\nPlease report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---\n",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "configuration",
"description": "Folder for configuration",
"item": [
{
"name": "Read VNF/VNFC configuration from VNF.",
"event": [
{
"listen": "test",
"script": {
"id": "c9bc6a53-9744-4ae6-bdea-655ec5812cae",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"description\":\"This type represents configuration parameters of a VNF instance and its VNFC instances. \",\"type\":\"object\",\"required\":[\"vnfConfigurationData\"],\"properties\":{\"vnfConfigurationData\":{\"description\":\"This type represents configuration parameters of a VNF instance. \",\"type\":\"object\",\"properties\":{\"extCpConfig\":{\"description\":\"This type represents configuration parameters of a CP instance. \",\"type\":\"object\",\"required\":[\"cpId\",\"cpdId\",\"addresses\"],\"properties\":{\"cpId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"cpdId\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"addresses\":{\"description\":\"Network address and port assigned to the CP. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance address. * NOTE 1: Either \\\"address\\\" or \\\"useDynamicAddress\\\" shall be present. * NOTE 2: At least one of \\\"macAddress\\\" and \\\"ipAddress\\\" shall be present. \",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Network address that has been configured on the CP. See NOTE 1. \",\"type\":\"object\",\"properties\":{\"macAddress\":{\"description\":\"A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons. \",\"type\":\"string\",\"format\":\"MAC\"},\"ipAddress\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"}}},\"useDynamicAddress\":{\"description\":\"Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1. \",\"type\":\"boolean\"},\"port\":{\"description\":\"The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). \",\"type\":\"integer\"}}}}}},\"dhcpServer\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"},\"vnfSpecificData\":{\"description\":\"This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159. \",\"type\":\"object\"}}},\"vnfcConfigurationData\":{\"description\":\"Configuration parameters of the VNFC instances. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a VNFC instance. \",\"type\":\"object\",\"required\":[\"vnfcInstanceId\"],\"properties\":{\"vnfcInstanceId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"intCpConfig\":{\"description\":\"Configuration parameters for the internal CPs of the VNFC instance. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance. \",\"type\":\"object\",\"required\":[\"cpId\",\"cpdId\",\"addresses\"],\"properties\":{\"cpId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"cpdId\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"addresses\":{\"description\":\"Network address and port assigned to the CP. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance address. * NOTE 1: Either \\\"address\\\" or \\\"useDynamicAddress\\\" shall be present. * NOTE 2: At least one of \\\"macAddress\\\" and \\\"ipAddress\\\" shall be present. \",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Network address that has been configured on the CP. See NOTE 1. \",\"type\":\"object\",\"properties\":{\"macAddress\":{\"description\":\"A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons. \",\"type\":\"string\",\"format\":\"MAC\"},\"ipAddress\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"}}},\"useDynamicAddress\":{\"description\":\"Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1. \",\"type\":\"boolean\"},\"port\":{\"description\":\"The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). \",\"type\":\"integer\"}}}}}}},\"dhcpServer\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"},\"vnfcSpecificData\":{\"description\":\"This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159. \",\"type\":\"object\"}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfconfig/v1/configuration",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfconfig",
"v1",
"configuration"
]
},
"description": "The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.\n"
},
"response": []
},
{
"name": "Modify VNF/VNFC configuration.",
"event": [
{
"listen": "test",
"script": {
"id": "94714a69-671b-4b3d-98a8-78afe9260841",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"description\":\"This type represents request parameters for the \\\"Set Configuration\\\" operation. * NOTE 1: At least one of \\\"vnfConfigurationData\\\" and \\\"vnfcConfigurationData\\\" shall be present. * NOTE 2: The VnfcConfiguration data type can only be used to modify the configuration of existing VNFC instances. \",\"type\":\"object\",\"properties\":{\"vnfConfigurationData\":{\"description\":\"This type represents configuration parameters of a VNF instance. \",\"type\":\"object\",\"properties\":{\"extCpConfig\":{\"description\":\"This type represents configuration parameters of a CP instance. \",\"type\":\"object\",\"required\":[\"cpId\",\"cpdId\",\"addresses\"],\"properties\":{\"cpId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"cpdId\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"addresses\":{\"description\":\"Network address and port assigned to the CP. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance address. * NOTE 1: Either \\\"address\\\" or \\\"useDynamicAddress\\\" shall be present. * NOTE 2: At least one of \\\"macAddress\\\" and \\\"ipAddress\\\" shall be present. \",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Network address that has been configured on the CP. See NOTE 1. \",\"type\":\"object\",\"properties\":{\"macAddress\":{\"description\":\"A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons. \",\"type\":\"string\",\"format\":\"MAC\"},\"ipAddress\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"}}},\"useDynamicAddress\":{\"description\":\"Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1. \",\"type\":\"boolean\"},\"port\":{\"description\":\"The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). \",\"type\":\"integer\"}}}}}},\"dhcpServer\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"},\"vnfSpecificData\":{\"description\":\"This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159. \",\"type\":\"object\"}}},\"vnfcConfigurationData\":{\"description\":\"Modifications to configuration data for certain VNFC instances. See NOTE 1 and NOTE 2. If present, the modifications of the \\\"vnfcConfigurationData\\\" attribute shall follow these provisions: Modifying an attribute that is an array of objects of type \\\"VnfcConfigurationData\\\". Assumptions: 1) \\\"oldList\\\" is the \\\"VnfcConfigurationData\\\" array to be modified and \\\"newList\\\" is the \\\"VnfcConfigurationData\\\" array that contains the changes. 2) \\\"oldEntry\\\" is an entry in \\\"oldList\\\" and \\\"newEntry\\\" is an entry in \\\"newList\\\". 3) A \\\"newEntry\\\" has a \\\"corresponding entry\\\" if there exists an \\\"oldEntry\\\" that has the same content of the \\\"vnfcInstanceId\\\" attribute as the \\\"newEntry\\\"; a \\\"newEntry\\\" has no corresponding entry if no such \\\"oldEntry\\\" exists. 4) In any array of \\\"VnfcConfigurationData\\\" structures, the content of \\\"vnfcInstanceId\\\" is unique (i.e. there shall be no two entries with the same content of \\\"vnfcInstanceId\\\"). Provisions: 1) For each \\\"newEntry\\\" in \\\"newList\\\" that has no corresponding entry in \\\"oldList\\\", the \\\"oldList\\\" array shall be modified by adding that \\\"newEntry\\\". 2) For each \\\"newEntry\\\" in \\\"newList\\\" that has a corresponding \\\"oldEntry\\\" in \\\"oldList\\\", the value of \\\"oldEntry\\\" shall be updated with the value of \\\"newEntry\\\" according to the rules of JSON Merge PATCH (see IETF RFC 7396 ). \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a VNFC instance. \",\"type\":\"object\",\"required\":[\"vnfcInstanceId\"],\"properties\":{\"vnfcInstanceId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"intCpConfig\":{\"description\":\"Configuration parameters for the internal CPs of the VNFC instance. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance. \",\"type\":\"object\",\"required\":[\"cpId\",\"cpdId\",\"addresses\"],\"properties\":{\"cpId\":{\"description\":\"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique. \",\"type\":\"string\"},\"cpdId\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"addresses\":{\"description\":\"Network address and port assigned to the CP. \",\"type\":\"array\",\"items\":{\"description\":\"This type represents configuration parameters of a CP instance address. * NOTE 1: Either \\\"address\\\" or \\\"useDynamicAddress\\\" shall be present. * NOTE 2: At least one of \\\"macAddress\\\" and \\\"ipAddress\\\" shall be present. \",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Network address that has been configured on the CP. See NOTE 1. \",\"type\":\"object\",\"properties\":{\"macAddress\":{\"description\":\"A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons. \",\"type\":\"string\",\"format\":\"MAC\"},\"ipAddress\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"}}},\"useDynamicAddress\":{\"description\":\"Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1. \",\"type\":\"boolean\"},\"port\":{\"description\":\"The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). \",\"type\":\"integer\"}}}}}}},\"dhcpServer\":{\"description\":\"An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons. \",\"type\":\"string\",\"format\":\"IP\"},\"vnfcSpecificData\":{\"description\":\"This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 7159. \",\"type\":\"object\"}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});",
""
]
}
}
],
"request": {
"method": "PATCH",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"_comment\": \"al least one of vnfConfigurationData and vnfcConfigurationData must be defined\",\n\t\"vnfConfigurationData \": {},\n\t\"vnfcConfigurationData\" : []\n}"
},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfconfig/v1/configuration",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfconfig",
"v1",
"configuration"
]
},
"description": "This method sets or modifies a configuration resource."
},
"response": []
}
]
}
]
}
\ No newline at end of file
{
"info": {
"_postman_id": "abdf0dd6-4f97-4965-bd3e-3d320a4c5354",
"name": "DRAFT - SOL002 - VNF Indicator interface",
"description": "DRAFT - SOL002 - VNF Indicator interface\nThis API allows the EM/VNF to provide information on value changes of VNF related indicators. VNF related indicators are declared in the VNFD.\nIMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence.\nPlease report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis\n",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "subscriptions",
"description": "Folder for subscriptions",
"item": [
{
"name": "Create a new subscription to VNF indicator change notifications",
"event": [
{
"listen": "test",
"script": {
"id": "4fb7cac2-83e4-4a10-b9e0-65ffd3c4ccb2",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 201\", function () {",
" pm.response.to.have.status(201);",
"});",
"",
"var res_schema = {\"description\":\"This type represents a subscription related to notifications about VNF indicator value changes. \",\"type\":\"object\",\"required\":[\"callbackUri\",\"id\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"filter\":{\"description\":\"This type represents a subscription filter related to notifications about VNF indicator value changes. 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). \",\"type\":\"object\",\"properties\":{\"vnfInstanceSubscriptionFilter\":{\"description\":\"This type represents subscription filter criteria to match VNF instances. * NOTE 1: The attributes \\\"vnfdIds\\\" and \\\"vnfProductsFromProviders\\\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. * NOTE 2: The attributes \\\"vnfInstanceIds\\\" and \\\"vnfInstanceNames\\\" are alternatives to reference to particular VNF instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. \",\"type\":\"object\",\"properties\":{\"vnfdIds\":{\"description\":\"If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. See NOTE 1. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfProductsFromProviders\":{\"description\":\"If present, match VNF instances that belong to VNF products from certain providers. See NOTE 1. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProvider\"],\"properties\":{\"vnfProvider\":{\"description\":\"Name of the VNF provider to match. \",\"type\":\"string\"},\"vnfProducts\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain product names, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProductName\"],\"properties\":{\"vnfProductName\":{\"description\":\"Name of the VNF product to match. \",\"type\":\"string\"},\"versions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfSoftwareVersions\"],\"properties\":{\"vnfSoftwareVersions\":{\"description\":\"A version. \",\"type\":\"string\"},\"vnfdVersions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"description\":\"A version. \",\"type\":\"string\"}}}}}}}}}}},\"vnfInstanceIds\":{\"description\":\"If present, match VNF instances with an instance identifier listed in this attribute. See NOTE 2. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfInstanceNames\":{\"description\":\"If present, match VNF instances with a VNF Instance Name listed in this attribute. See NOTE 2 \",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"indicatorIds\":{\"description\":\"Match particular VNF indicator identifiers. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"}}}},\"callbackUri\":{\"description\":\"The URI of the endpoint to send the notification to. \",\"type\":\"string\",\"format\":\"URI\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});"
]
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "Subscription data."
},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/subscriptions",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"subscriptions"
]
},
"description": "Create a new subscription"
},
"response": []
},
{
"name": "Delete a subscription",
"event": [
{
"listen": "test",
"script": {
"id": "2b3e9282-20af-482b-ac15-572a97a5c781",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 204\", function () {",
" pm.response.to.have.status(204);",
"});",
""
]
}
}
],
"request": {
"method": "DELETE",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/subscriptions/{{subscriptionId}}",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"subscriptions",
"{{subscriptionId}}"
]
},
"description": "Terminate an individual subscription."
},
"response": []
},
{
"name": "Query multiple subscriptions.",
"event": [
{
"listen": "test",
"script": {
"id": "3af34b3f-7316-44df-8292-83f6f8af8945",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"type\":\"array\",\"items\":{\"description\":\"This type represents a subscription related to notifications about VNF indicator value changes. \",\"type\":\"object\",\"required\":[\"callbackUri\",\"id\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"filter\":{\"description\":\"This type represents a subscription filter related to notifications about VNF indicator value changes. 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). \",\"type\":\"object\",\"properties\":{\"vnfInstanceSubscriptionFilter\":{\"description\":\"This type represents subscription filter criteria to match VNF instances. * NOTE 1: The attributes \\\"vnfdIds\\\" and \\\"vnfProductsFromProviders\\\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. * NOTE 2: The attributes \\\"vnfInstanceIds\\\" and \\\"vnfInstanceNames\\\" are alternatives to reference to particular VNF instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. \",\"type\":\"object\",\"properties\":{\"vnfdIds\":{\"description\":\"If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. See NOTE 1. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfProductsFromProviders\":{\"description\":\"If present, match VNF instances that belong to VNF products from certain providers. See NOTE 1. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProvider\"],\"properties\":{\"vnfProvider\":{\"description\":\"Name of the VNF provider to match. \",\"type\":\"string\"},\"vnfProducts\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain product names, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProductName\"],\"properties\":{\"vnfProductName\":{\"description\":\"Name of the VNF product to match. \",\"type\":\"string\"},\"versions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfSoftwareVersions\"],\"properties\":{\"vnfSoftwareVersions\":{\"description\":\"A version. \",\"type\":\"string\"},\"vnfdVersions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"description\":\"A version. \",\"type\":\"string\"}}}}}}}}}}},\"vnfInstanceIds\":{\"description\":\"If present, match VNF instances with an instance identifier listed in this attribute. See NOTE 2. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfInstanceNames\":{\"description\":\"If present, match VNF instances with a VNF Instance Name listed in this attribute. See NOTE 2 \",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"indicatorIds\":{\"description\":\"Match particular VNF indicator identifiers. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"}}}},\"callbackUri\":{\"description\":\"The URI of the endpoint to send the notification to. \",\"type\":\"string\",\"format\":\"URI\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/subscriptions",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"subscriptions"
]
},
"description": "Service Unavailable\nThe GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations.\n"
},
"response": []
},
{
"name": "Read an individual subscription.",
"event": [
{
"listen": "test",
"script": {
"id": "c02efd2c-8f56-4f67-a38f-623719ad0414",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"description\":\"This type represents a subscription related to notifications about VNF indicator value changes. \",\"type\":\"object\",\"required\":[\"callbackUri\",\"id\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"filter\":{\"description\":\"This type represents a subscription filter related to notifications about VNF indicator value changes. 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). \",\"type\":\"object\",\"properties\":{\"vnfInstanceSubscriptionFilter\":{\"description\":\"This type represents subscription filter criteria to match VNF instances. * NOTE 1: The attributes \\\"vnfdIds\\\" and \\\"vnfProductsFromProviders\\\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. * NOTE 2: The attributes \\\"vnfInstanceIds\\\" and \\\"vnfInstanceNames\\\" are alternatives to reference to particular VNF instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. \",\"type\":\"object\",\"properties\":{\"vnfdIds\":{\"description\":\"If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. See NOTE 1. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfProductsFromProviders\":{\"description\":\"If present, match VNF instances that belong to VNF products from certain providers. See NOTE 1. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProvider\"],\"properties\":{\"vnfProvider\":{\"description\":\"Name of the VNF provider to match. \",\"type\":\"string\"},\"vnfProducts\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain product names, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfProductName\"],\"properties\":{\"vnfProductName\":{\"description\":\"Name of the VNF product to match. \",\"type\":\"string\"},\"versions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"vnfSoftwareVersions\"],\"properties\":{\"vnfSoftwareVersions\":{\"description\":\"A version. \",\"type\":\"string\"},\"vnfdVersions\":{\"description\":\"If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider. \",\"type\":\"array\",\"items\":{\"description\":\"A version. \",\"type\":\"string\"}}}}}}}}}}},\"vnfInstanceIds\":{\"description\":\"If present, match VNF instances with an instance identifier listed in this attribute. See NOTE 2. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"}},\"vnfInstanceNames\":{\"description\":\"If present, match VNF instances with a VNF Instance Name listed in this attribute. See NOTE 2 \",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"indicatorIds\":{\"description\":\"Match particular VNF indicator identifiers. \",\"type\":\"array\",\"items\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"}}}},\"callbackUri\":{\"description\":\"The URI of the endpoint to send the notification to. \",\"type\":\"string\",\"format\":\"URI\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/subscriptions/{{subscriptionId}}",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"subscriptions",
"{{subscriptionId}}"
]
},
"description": "Service Unavailable\nThis resource represents an individual subscription. The client can use this resource to read and to terminate a subscription to notifications related to VNF indicator value changes.\n"
},
"response": []
}
]
},
{
"name": "indicators",
"description": "Folder for indicators",
"item": [
{
"name": "Read an inidividual VNF indicator.",
"event": [
{
"listen": "test",
"script": {
"id": "d8cb144c-c753-493d-b411-ba47446c5a9a",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"type\":\"object\",\"required\":[\"id\",\"value\",\"vnfInstanceId\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"object\"},\"vnfInstanceId\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}},\"vnfInstance\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});"
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/indicators/{{vnfInstanceId}}/{{indicatorId}}",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"indicators",
"{{vnfInstanceId}}",
"{{indicatorId}}"
]
},
"description": "The GET method reads an individual VNF indicator.\nNOTE: This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n"
},
"response": []
},
{
"name": "Query multiple indicators related to a VNF instance.",
"event": [
{
"listen": "test",
"script": {
"id": "172d98f7-02f8-473c-978b-371ca4722501",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"value\",\"vnfInstanceId\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"object\"},\"vnfInstanceId\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}},\"vnfInstance\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});"
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/indicators/{{vnfInstanceId}}",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"indicators",
"{{vnfInstanceId}}"
]
},
"description": "Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.\n"
},
"response": []
},
{
"name": "Query multiple indicators",
"event": [
{
"listen": "test",
"script": {
"id": "0faf5c48-ecf2-48c3-90f4-b992c7f05aa7",
"type": "text/javascript",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var res_schema = {\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"value\",\"vnfInstanceId\",\"_links\"],\"properties\":{\"id\":{\"description\":\"An identifier that is unique within a VNF descriptor. \",\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"object\"},\"vnfInstanceId\":{\"description\":\"An identifier with the intention of being globally unique. \",\"type\":\"string\"},\"_links\":{\"description\":\"Links to resources related to this resource. \",\"type\":\"object\",\"required\":[\"self\"],\"properties\":{\"self\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}},\"vnfInstance\":{\"description\":\"This type represents a link to a resource. \",\"type\":\"object\",\"required\":[\"href\"],\"properties\":{\"href\":{\"description\":\"URI of the referenced resource. \",\"type\":\"string\",\"format\":\"url\"}}}}}}}};",
"",
"pm.test('Schema is valid', function() {",
" pm.expect(tv4.validate(pm.response.json(), res_schema)).to.be.true;",
"});"
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {},
"url": {
"raw": "{{scheme}}://{{host}}{{port}}/{{uri_prefix}}vnfind/v1/indicators",
"protocol": "{{scheme}}",
"host": [
"{{host}}{{port}}"
],
"path": [
"{{uri_prefix}}vnfind",
"v1",
"indicators"