Commit 1b8c4c03 authored by Mudassar Khan's avatar Mudassar Khan Committed by Giacomo Bernini
Browse files

update response body schemas as per SOL 003 version 5.1.1

parent 1f35391b
Loading
Loading
Loading
Loading
+137 −48
Original line number Diff line number Diff line
{
  "description": "This type represents a PM job.\n",
  "type": "object",
  "required": ["id", "objectInstanceIds", "criteria"],
  "required": [
    "id",
    "objectType",
    "objectInstanceIds",
    "criteria",
    "callbackUri",
    "_links"
  ],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "objectType": {
      "description": "Type of the measured object. The applicable measured object type for a measurement is defined in clause 7.2 of ETSI GS NFV-IFA 027.\n",
      "type": "string"
    },
    "objectInstanceIds": {
      "description": "Identifiers of the VNF instances for which performance information is collected.\n",
      "type": "array",
@@ -15,28 +26,47 @@
        "type": "string"
      }
    },
    "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 6.2 of ETSI GS NFV-IFA 027 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 6.2 of ETSI GS NFV IFA 027 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance.\n",
      "type": "array",
      "items": {
        "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
        "type": "string"
      }
    },
    "criteria": {
      "description": "Criteria of the collection of performance information.\n",
      "description": "This type represents collection criteria for PM jobs.\nNOTE 1:\tAt the end of each reportingPeriod, the API producer will inform the API consumer about availability of the \n        performance data collected for each completed collection period during this reportingPeriod. \n        The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance \n        data for the collection periods within one reporting period are reported together.\nNOTE 2:\tIn particular when choosing short collection and reporting periods, the number of PM jobs that can be supported \n        depends on the capability of the producing entity.\n",
      "type": "object",
      "required": ["collectionPeriod", "reportingPeriod"],
      "required": [
        "collectionPeriod",
        "reportingPeriod"
      ],
      "properties": {
        "performanceMetric": {
          "description": "This defines the types of performance metrics for the specified object instances, as specified in ETSI GS NFV-IFA 027). At least one of the two attributes (performance metric or group) shall be present.\n",
          "description": "This defines the types of performance metrics for the specified object instances. Valid values are specified as \"Measurement Name\" values in clause 7.2 of ETSI GS NFV-IFA 027. At least one of the two attributes (performance metric or group) shall be present.\n",
          "type": "array",
          "items": { "type": "string" }
          "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. At least one of the two attributes (performance metric or group) shall be present.\n",
          "description": "Group of performance metrics. A metric group is a pre-defined list of metrics, known to the API producer that it can decompose to individual metrics. Valid values are specified as \"Measurement Group\" values in clause 7.2 of ETSI GS NFV-IFA 027. At least one of the two attributes (performance metric or group) shall be present.\n",
          "type": "array",
          "items": { "type": "string" }
          "items": {
            "type": "string"
          }
        },
        "collectionPeriod": {
          "description": "Specifies the periodicity at which the producer will collect performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the 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.\n",
          "type": "integer"
          "description": "Specifies the periodicity at which the API producer will collect performance information.  The unit shall be seconds. See notes 1 and 2.\n",
          "type": "integer",
          "minimum": 0,
          "maximum": 1024
        },
        "reportingPeriod": {
          "description": "Specifies the periodicity at which the producer will report to the consumer. about performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the 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.\n",
          "type": "integer"
          "description": "Specifies the periodicity at which the API producer will report to the API consumer  about performance information. The unit shall be seconds. See notes 1 and 2.\n",
          "type": "integer",
          "minimum": 0,
          "maximum": 1024
        },
        "reportingBoundary": {
          "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
@@ -45,13 +75,20 @@
        }
      }
    },
    "callbackUri": {
      "description": "String formatted according to IETF RFC 3986.\n",
      "type": "string"
    },
    "reports": {
      "description": "Information about available reports collected by this PM job.\n",
      "type": "object",
      "required": ["href", "readyTime", "_links"],
      "required": [
        "href",
        "readyTime"
      ],
      "properties": {
        "href": {
          "description": "The Uri where the report can be obtained.\n",
          "description": "The URI where the report can be obtained.\n",
          "type": "string",
          "format": "url"
        },
@@ -67,39 +104,91 @@
        },
        "fileSize": {
          "description": "The size of the report file in bytes, if known.\n",
          "type": "integer"
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "pmJobConnection": {
      "description": "An access information and interface information of PM job to monitor the PM of VNF instance  by the VNFM. This can include for instance certain interface endpoint URI together with  necessary credentials to access it.\n",
      "type": "array",
      "items": {
        "description": "The MonitoringConnection shall follow the indications provided.\n* NOTE: The VNFM can be made aware of monitoring connection information, \n  including their identifiers to be used by configuration means outside the scope of the \n  present document (e.g. using relevant NFV-MANO management APIs as defined in \n  ETSI GS NFV-SOL 009 [i.18]).\n",
        "type": "object",
        "required": [
          "id",
          "monitoringType"
        ],
        "properties": {
          "id": {
            "description": "An identifier with the intention of being globally unique.\n",
            "type": "string"
          },
          "monitoringType": {
            "description": "Type of monitoring way.\n",
            "type": "string",
            "enum": [
              "VIM_CISM",
              "EXTERNAL",
              "PAAS"
            ]
          },
          "vimId": {
            "description": "An identifier with the intention of being globally unique.\n",
            "type": "string"
          },
          "paasServiceId": {
            "description": "An identifier with the intention of being globally unique.\n",
            "type": "string"
          },
          "interfaceInfo": {
            "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
            "type": "object"
          },
          "accessInfo": {
            "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
            "type": "object"
          },
          "extra": {
            "description": "A string defined in IETF RFC 8259.\n",
            "type": "string"
          }
        }
      }
    },
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
          "required": ["self"],
      "required": [
        "self"
      ],
      "properties": {
        "self": {
              "description": "This type represents a link to a resource.\n",
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
              "required": ["href"],
          "required": [
            "href"
          ],
          "properties": {
            "href": {
                  "description": "URI of the referenced resource.\n",
                  "type": "string",
                  "format": "url"
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "objects": {
              "description": "Links to resources representing the VNF instances for which performance information is collected. Shall be present if the VNF instance information is accessible as a resource.\n",
          "description": "Links to resources representing the measure object instances for which performance information is collected. Shall be present if the measured object instance information is accessible as a resource.\n",
          "type": "array",
          "items": {
                "description": "This type represents a link to a resource.\n",
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
                "required": ["href"],
            "required": [
              "href"
            ],
            "properties": {
              "href": {
                    "description": "URI of the referenced resource.\n",
                    "type": "string",
                    "format": "url"
                  }
                }
                "description": "String formatted according to IETF RFC 3986.\n",
                "type": "string"
              }
            }
          }
+48 −16
Original line number Diff line number Diff line
@@ -3,10 +3,14 @@
  "type": "object",
  "oneOf": [
    {
      "required": ["callbackUri"]
      "required": [
        "callbackUri"
      ]
    },
    {
      "required": ["authentication"]
      "required": [
        "authentication"
      ]
    }
  ],
  "properties": {
@@ -15,42 +19,70 @@
      "type": "string"
    },
    "authentication": {
      "description": "* NOTE: The clientId and clientPassword passed in a subscription shall not be the same as the clientId and\n        clientPassword that are used to obtain authorization for API requests. Client credentials may differ between\n        subscriptions. The value of clientPassword should be generated by a random process\n",
      "description": "* NOTE 1 : The clientId and clientPassword passed in a subscription shall not be the same as the clientId and\n          clientPassword that are used to obtain authorization for API requests. Client credentials may differ between\n          subscriptions. The value of clientPassword should be generated by a random process.\n* NOTE 2: As a less secure alternative to OAUTH2_CLIENT_CERT which uses mutual authentication based on X.509\n          certificates, this mode which uses client password to authenticate may be used in the access token request\n          toward the authorization server (as defined by IETF RFC 6749 [7]), only to support legacy implementations\n          (version 3.4.1 or earlier version of the present document). See clause 8.1 for more details.\n* NOTE 3: The following values that were included up to version 3.4.1 of the present document have been removed:\n          \"BASIC\" (to signal the use of the basic HTTP authentication) has been removed because it is insecure.\n          \"TLS_CERT\" to signal an alternative non-token based authorization method using TLS certificates has been\n          removed because the method is no longer supported.\n* NOTE 4: The client certificate is established by means outside the scope of the present document.\n",
      "type": "object",
      "required": ["authType"],
      "required": [
        "authType"
      ],
      "properties": {
        "authType": {
          "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use\n  HTTP Basic authentication with the client credentials. \n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n  notification endpoint, use an OAuth 2.0 Bearer token, obtained\n  using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent\n  over a mutually authenticated TLS session, i.e. not only the\n  server is authenticated, but also the client is authenticated\n  during the TLS tunnel setup.\n",
          "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values (see note 3): * OAUTH2_CLIENT_CREDENTIALS: In every\n  HTTP request to the notification endpoint, use\n  an OAuth 2.0 token, obtained using the client\n  credentials grant type after authenticating\n  using client identifier and client password\n  towards the token endpoint.\n* OAUTH2_CLIENT_CERT: In every HTTP\n  request to the notification endpoint, use an\n  OAuth 2.0 token, obtained using the client\n  credentials grant type after mutually\n  authenticating using client identifier and X.509\n  certificates towards the token endpoint.\n",
          "type": "array",
          "items": {
            "type": "string",
            "enum": ["BASIC", "OAUTH2_CLIENT_CREDENTIALS", "TLS_CERT"]
            "enum": [
              "OAUTH2_CLIENT_CREDENTIALS",
              "OAUTH2_CLIENT_CERT"
            ]
          }
        },
        "paramsBasic": {
          "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
        "paramsOauth2ClientCert": {
          "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CERT.\nShall be present if authType is \"OAUTH2_CLIENT_CERT\" and the contained information has not been provisioned out of band. \nShall be absent otherwise.\n",
          "type": "object",
          "required": [
            "clientId",
            "certificateRef",
            "tokenEndpoint"
          ],
          "properties": {
            "clientId": {
              "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. The client identifier is unique in the scope of the tokenEndpoint.\n",
              "type": "string"
            },
            "certificateRef": {
              "description": "Fingerprint of the client certificate. The hash function shall use SHA256 or higher. See note 4.\n",
              "type": "string",
              "required": [
                "type",
                "value"
              ],
              "properties": {
            "userName": {
              "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
                "type": {
                  "description": "A string defined in IETF RFC 8259.\n",
                  "type": "string"
                },
            "password": {
              "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
                "value": {
                  "description": "A string defined in IETF RFC 8259.\n",
                  "type": "string"
                }
              }
            },
            "tokenEndpoint": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "paramsOauth2ClientCredentials": {
          "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
          "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS.\nShall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band.\nShall be absent otherwise.\nSee note 2.\n",
          "type": "object",
          "properties": {
            "clientId": {
              "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. See note.\n",
              "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. The client identifier is unique in the scope of the tokenEndpoint. Shall be present if it has not been provisioned out of band.  See note 1.\n",
              "type": "string"
            },
            "clientPassword": {
              "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. See note.\n",
              "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. See note 1.\n",
              "type": "string"
            },
            "tokenEndpoint": {
+137 −48

File changed.

Preview size limit exceeded, changes collapsed.

+48 −16

File changed.

Preview size limit exceeded, changes collapsed.

+2 −3
Original line number Diff line number Diff line
@@ -21,8 +21,7 @@
    "fileSize": {
      "description": "The size of the report file in bytes, if known.\n",
      "type": "integer",
      "minimum": 0,
      "maximum": 1024
      "minimum": 0
    }
  }
}
 No newline at end of file