SOL009 NFV MANO Log Management - Implementation of deltas between v3.5.1 and v3.3.1

This merge request refers to the implementation of deltas between v3.5.1 and v3.3.1 of SOL009 NFV MANO Log Management.

@lynchpi @aelken @matsuurat @sayama @kraja @zafar @muhammadh @abbasim

Deadline for review: Monday 1st November 2021 @6pm CEST

Review period elapsed: Approved !

Edited by Giacomo Bernini

Merge request reports

Loading
+8 −7
Changes for SOL009/NFVMANOLogManagement-API/environment/variables.txt: 8 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -6,17 +6,17 @@ ${NFVMANO_SCHEMA} https
${logJobId}       0b000d4f1a2b67
${erroneousLogJobId}    wrongID


${AUTHORIZATION}    Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${NEG_AUTHORIZATION}    Bearer negativetoken
${BAD_AUTHORIZATION}    Bear sometoken
${AUTHORIZATION_HEADER}    Authorization
${AUTHORIZATION_TOKEN}    Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${NEG_AUTHORIZATION_TOKEN}    Bearer negativetoken
${BAD_AUTHORIZATION_TOKEN}    Bear sometoken

${CONTENT_TYPE}    application/json
${CONTENT_TYPE_JSON}    application/json
${ACCEPT_JSON}    application/json
${ACCEPT}         application/json
${AUTH_USAGE}     1
${FIELD_USAGE}    1

${NFVMANO_CHECKS_NOTIF_ENDPOINT}    1        ## If true, during subscription, the FUT performs a get to the notification endpoint

${NFVMANO_ALLOWS_DUPLICATE_SUBS}    1
@@ -30,12 +30,13 @@ ${origResponse} {}

${callback_port}    9091
${callback_uri}    http://172.22.1.7:${callback_port}
${unreachable_callback_uri}   http://unreachable_callback_uri-error-422
${callback_endpoint}    /nfvmanologm/subscriptions
${filter_ok}      callbackUri=${callbackUri}
${filter_ko}      erroneousFilter=erroneous
${callback_endpoint_fwd}    /endpoint/check
${callback_endpoint_error}    /subs_404
${sleep_interval}    20s



${total_polling_time}   2 min
${polling_interval}     10 sec
+12 −32
Changes for SOL009/NFVMANOLogManagement-API/schemas/LogReport.schema.json: 12 added lines, 32 removed lines.
Original line number Diff line number Diff line
{
    "description": "This type represents a log report, which provides information about a compiled log and how to obtain it. It shall comply with the provisions defined in table 8.6.2.7-1.\n",
  "description": "This type represents a log report, which provides information about a compiled log and how to obtain it. * NOTE:\tIt is not specified in the present document how the NFV-MANO functional entity's private\n        key is provided to the NFV-MANO functional entity.\n",
  "type": "object",
  "required": [
    "id",
@@ -40,18 +40,12 @@
          "type": "string"
        }
      },
        "required": [
          "type",
          "objectId"
        ]
      "required": ["type", "objectId"]
    },
    "compilationTrigger": {
      "description": "The trigger for the compilation of the log file.\nPermitted 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"
        ]
      "enum": ["ON_DEMAND", "AUTOMATIC"]
    },
    "readyTime": {
      "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
@@ -75,20 +69,12 @@
    "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"
        ],
      "required": ["protocol", "fileEndpoint"],
      "properties": {
        "protocol": {
            "description": "Protocol over which the compiled log file can be retrieved.\nPermitted 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 [i.11],\n     using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, \"private\" protection level shall be used.\n\nHTTPS shall be supported, and other protocols may be supported.",
          "description": "Protocol over which the compiled log file can be retrieved.\nPermitted 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,\n      using explicit mode as specified in IETF RFC 4217. If FTPS is supported, \"private\" protection level shall be used.\n\nHTTPS shall be supported, and other protocols may be supported.",
          "type": "string",
            "enum": [
              "HTTPS",
              "SFTP",
              "SCP",
              "FTPS"
            ]
          "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.",
@@ -120,15 +106,15 @@
          "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 [14].",
          "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\".",
          "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.",
          "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"
        }
      }
@@ -136,16 +122,12 @@
    "_links": {
      "description": "Links for this resource.",
      "type": "object",
        "required": [
          "self"
        ],
      "required": ["self"],
      "properties": {
        "self": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -159,9 +141,7 @@
          "items": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
              "required": [
                "href"
              ],
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
+6 −20
Changes for SOL009/NFVMANOLogManagement-API/schemas/LogReportAvailableNotification.schema.json: 6 added lines, 20 removed lines.
Original line number Diff line number Diff line
@@ -51,25 +51,17 @@
          "type": "string"
        }
      },
        "required": [
          "type",
          "objectId"
        ]
      "required": ["type", "objectId"]
    },
    "_links": {
      "description": "Links to resources related to this notification.",
      "type": "object",
        "required": [
          "subscription",
          "logReports"
        ],
      "required": ["subscription", "logReports"],
      "properties": {
        "subscription": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -80,9 +72,7 @@
        "objectInstance": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -93,9 +83,7 @@
        "LoggingJob": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -109,9 +97,7 @@
          "items": {
            "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
            "type": "object",
              "required": [
                "href"
              ],
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
+32 −88
Changes for SOL009/NFVMANOLogManagement-API/schemas/LoggingJob.schema.json: 32 added lines, 88 removed lines.
Original line number Diff line number Diff line
{
  "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"
    ],
  "required": ["id", "objectInstanceIds", "jobCriteria", "jobConfig", "_links"],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
@@ -40,74 +34,49 @@
            "type": "string"
          }
        },
          "required": [
            "type",
            "objectId"
          ]
        "required": ["type", "objectId"]
      }
    },
    "jobCriteria": {
        "description": "This type represents collection criteria for logging jobs. It shall comply with the provisions defined in table 8.6.3.2-1.",
      "description": "This type represents collection criteria for logging jobs. * NOTE:\tThe value of the loggingType has dependency on the object that is requested to be logged\n        (refer to the CreateLoggingJobRequest): a) the logging of messages is only applicable to\n        ManoServiceInterface and ConsumedManoInterface objects.",
      "type": "object",
        "required": [
          "loggingType"
        ],
      "required": ["loggingType"],
      "properties": {
        "loggingType": {
            "description": "Type of logging. This defines the types of logged information to collect.\nPermitted 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.",
          "description": "Type of logging. This defines the types of logged information to collect.\nPermitted 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.\nSee note.",
          "type": "string",
            "enum": [
              "MESSAGES",
              "SERVICES",
              "SYSTEM"
            ]
          "enum": ["MESSAGES", "SERVICES", "SYSTEM"]
        },
        "messagesLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. It shall comply with the provisions defined in table 8.6.3.3-1.",
          "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. * NOTE:\tIf a matching pattern is present, at least one of the \"srcIpAddress\", \"dstIpAddress\", \"requestMethod\",\n        \"requestUriPattern\" or \"responseCodes\" shall be provided.",
          "type": "object",
            "required": [
              "direction"
            ],
          "required": ["direction"],
          "properties": {
            "direction": {
              "description": "The direction of the interface messages to match.\nPermitted 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"
                ]
              "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.",
              "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": ["srcIpAddress"]
                  },
                  {
                      "required": [
                        "dstIpAddress"
                      ]
                    "required": ["dstIpAddress"]
                  },
                  {
                      "required": [
                        "requestMethod"
                      ]
                    "required": ["requestMethod"]
                  },
                  {
                      "required": [
                        "requestUriPattern"
                      ]
                    "required": ["requestUriPattern"]
                  },
                  {
                      "required": [
                        "responseCodes"
                      ]
                    "required": ["responseCodes"]
                  }
                ],
                "properties": {
@@ -154,22 +123,19 @@
          }
        },
        "servicesLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. It shall comply with the provisions defined in table 8.6.3.4-1.",
          "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. * NOTE:\tIn the present version of the present document, only one attribute, i.e.\n        \"logGarbageCollection\", is available.",
          "type": "object",
          "properties": {
            "logGarbageCollection": {
                "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.",
              "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services. See note.",
              "type": "boolean"
            }
          }
        },
        "systemLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. It shall comply with the provisions defined in table 8.6.3.5-1.",
          "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. * NOTE:\tThe set of properties and values for this attribute are assumed to be known to the consumer\n        by means defined outside of the present document.",
          "type": "object",
            "required": [
              "systemLogs",
              "severityLevel"
            ],
          "required": ["systemLogs", "severityLevel"],
          "properties": {
            "systemLogs": {
              "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",
@@ -188,12 +154,9 @@
      }
    },
    "jobConfig": {
        "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.",
      "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.\n* NOTE 1:\tThe minimumReportingPeriod is used to throttle possible flooding of reports by providing a lower\n            limit on the gap between two log availability notification to be emitted by the same logging job.\n  NOTE 2:\tMore than one logCompilingCondition is possible to provide a combination of different conditions\n            for the compilation. This covers use cases when the compilation of the log can be based on, e.g.\n            a timer value and a size value, whichever first condition is met first. For instance, compile a\n            log every 3 600 seconds, or whenever during the 3 600 seconds period the log grows in\n            size to 1 000 000 bytes.\n  NOTE 3:\tThe value is indicative, as the actual size of the compiled log files might not match the provided\n            compileBySizeValue due to possible deviations in the tracking of the size of the log data by the\n            API producer, and the size of individual logged data entries when these are collected.",
      "type": "object",
        "required": [
          "reportingCondition",
          "securityConf"
        ],
      "required": ["reportingCondition", "securityConf"],
      "properties": {
        "startTime": {
          "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
@@ -207,32 +170,27 @@
        },
        "reportingCondition": {
          "description": "Specifies the condition under which the producer will report to the consumer about the compiled log data.",
            "required": [
              "reportingType"
            ],
          "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\n                collected logging data into a file is completed and a new log report is available.\n- NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the\n                availability of new log reports).",
              "type": "string",
                "enum": [
                  "REPORTING_ON_COMPILATION",
                  "NO_REPORTING"
                ]
              "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.",
              "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",
          "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",
          "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"
        },
@@ -242,10 +200,7 @@
          "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"
                ],
              "required": ["encryptionCertificate", "cipherAlgorithm"],
              "type": "object",
              "properties": {
                "encryptionCertificate": {
@@ -285,10 +240,7 @@
      "type": "array",
      "items": {
        "type": "object",
          "required": [
            "logReportId",
            "logReportLoc"
          ],
        "required": ["logReportId", "logReportLoc"],
        "properties": {
          "logReportId": {
            "description": "An identifier with the intention of being globally unique.\n",
@@ -297,9 +249,7 @@
          "logReportLoc": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
              "required": [
                "href"
              ],
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
@@ -313,16 +263,12 @@
    "_links": {
      "description": "Links for this resource.",
      "type": "object",
        "required": [
          "self"
        ],
      "required": ["self"],
      "properties": {
        "self": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -336,9 +282,7 @@
          "items": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
              "required": [
                "href"
              ],
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
+31 −81
Changes for SOL009/NFVMANOLogManagement-API/schemas/LoggingJobs.schema.json: 31 added lines, 81 removed lines.
Original line number Diff line number Diff line
@@ -42,74 +42,49 @@
              "type": "string"
            }
          },
          "required": [
            "type",
            "objectId"
          ]
          "required": ["type", "objectId"]
        }
      },
      "jobCriteria": {
        "description": "This type represents collection criteria for logging jobs. It shall comply with the provisions defined in table 8.6.3.2-1.",
        "description": "This type represents collection criteria for logging jobs. * NOTE:\tThe value of the loggingType has dependency on the object that is requested to be logged\n        (refer to the CreateLoggingJobRequest): a) the logging of messages is only applicable to\n        ManoServiceInterface and ConsumedManoInterface objects.",
        "type": "object",
        "required": [
          "loggingType"
        ],
        "required": ["loggingType"],
        "properties": {
          "loggingType": {
            "description": "Type of logging. This defines the types of logged information to collect.\nPermitted 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.",
            "description": "Type of logging. This defines the types of logged information to collect.\nPermitted 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.\nSee note.",
            "type": "string",
            "enum": [
              "MESSAGES",
              "SERVICES",
              "SYSTEM"
            ]
            "enum": ["MESSAGES", "SERVICES", "SYSTEM"]
          },
          "messagesLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. It shall comply with the provisions defined in table 8.6.3.3-1.",
            "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. * NOTE:\tIf a matching pattern is present, at least one of the \"srcIpAddress\", \"dstIpAddress\", \"requestMethod\",\n        \"requestUriPattern\" or \"responseCodes\" shall be provided.",
            "type": "object",
            "required": [
              "direction"
            ],
            "required": ["direction"],
            "properties": {
              "direction": {
                "description": "The direction of the interface messages to match.\nPermitted 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"
                ]
                "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.",
                "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": ["srcIpAddress"]
                    },
                    {
                      "required": [
                        "dstIpAddress"
                      ]
                      "required": ["dstIpAddress"]
                    },
                    {
                      "required": [
                        "requestMethod"
                      ]
                      "required": ["requestMethod"]
                    },
                    {
                      "required": [
                        "requestUriPattern"
                      ]
                      "required": ["requestUriPattern"]
                    },
                    {
                      "required": [
                        "responseCodes"
                      ]
                      "required": ["responseCodes"]
                    }
                  ],
                  "properties": {
@@ -156,22 +131,19 @@
            }
          },
          "servicesLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. It shall comply with the provisions defined in table 8.6.3.4-1.",
            "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. * NOTE:\tIn the present version of the present document, only one attribute, i.e.\n        \"logGarbageCollection\", is available.",
            "type": "object",
            "properties": {
              "logGarbageCollection": {
                "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.",
                "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services. See note.",
                "type": "boolean"
              }
            }
          },
          "systemLogDetail": {
            "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. It shall comply with the provisions defined in table 8.6.3.5-1.",
            "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. * NOTE:\tThe set of properties and values for this attribute are assumed to be known to the consumer\n        by means defined outside of the present document.",
            "type": "object",
            "required": [
              "systemLogs",
              "severityLevel"
            ],
            "required": ["systemLogs", "severityLevel"],
            "properties": {
              "systemLogs": {
                "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",
@@ -190,12 +162,9 @@
        }
      },
      "jobConfig": {
        "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.",
        "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.\n* NOTE 1:\tThe minimumReportingPeriod is used to throttle possible flooding of reports by providing a lower\n            limit on the gap between two log availability notification to be emitted by the same logging job.\n  NOTE 2:\tMore than one logCompilingCondition is possible to provide a combination of different conditions\n            for the compilation. This covers use cases when the compilation of the log can be based on, e.g.\n            a timer value and a size value, whichever first condition is met first. For instance, compile a\n            log every 3 600 seconds, or whenever during the 3 600 seconds period the log grows in\n            size to 1 000 000 bytes.\n  NOTE 3:\tThe value is indicative, as the actual size of the compiled log files might not match the provided\n            compileBySizeValue due to possible deviations in the tracking of the size of the log data by the\n            API producer, and the size of individual logged data entries when these are collected.",
        "type": "object",
        "required": [
          "reportingCondition",
          "securityConf"
        ],
        "required": ["reportingCondition", "securityConf"],
        "properties": {
          "startTime": {
            "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
@@ -209,32 +178,27 @@
          },
          "reportingCondition": {
            "description": "Specifies the condition under which the producer will report to the consumer about the compiled log data.",
            "required": [
              "reportingType"
            ],
            "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\n                collected logging data into a file is completed and a new log report is available.\n- NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the\n                availability of new log reports).",
                "type": "string",
                "enum": [
                  "REPORTING_ON_COMPILATION",
                  "NO_REPORTING"
                ]
                "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.",
                "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",
            "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",
            "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"
          },
@@ -244,10 +208,7 @@
            "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"
                ],
                "required": ["encryptionCertificate", "cipherAlgorithm"],
                "type": "object",
                "properties": {
                  "encryptionCertificate": {
@@ -287,10 +248,7 @@
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "logReportId",
            "logReportLoc"
          ],
          "required": ["logReportId", "logReportLoc"],
          "properties": {
            "logReportId": {
              "description": "An identifier with the intention of being globally unique.\n",
@@ -299,9 +257,7 @@
            "logReportLoc": {
              "description": "This type represents a link to a resource using an absolute URI.\n",
              "type": "object",
              "required": [
                "href"
              ],
              "required": ["href"],
              "properties": {
                "href": {
                  "description": "String formatted according to IETF RFC 3986.\n",
@@ -315,16 +271,12 @@
      "_links": {
        "description": "Links for this resource.",
        "type": "object",
        "required": [
          "self"
        ],
        "required": ["self"],
        "properties": {
          "self": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
            "required": [
              "href"
            ],
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
@@ -338,9 +290,7 @@
            "items": {
              "description": "This type represents a link to a resource using an absolute URI.\n",
              "type": "object",
              "required": [
                "href"
              ],
              "required": ["href"],
              "properties": {
                "href": {
                  "description": "String formatted according to IETF RFC 3986.\n",
Loading
Loading