{
  "type": "array",
  "items": {
    "description": "This type represents a PM job.\n",
    "type": "object",
    "required": [
      "id",
      "objectInstanceIds",
      "criteria"
    ],
    "properties": {
      "id": {
        "description": "An identifier with the intention of being globally unique.\n",
        "type": "string"
      },
      "objectInstanceIds": {
        "description": "Identifiers of the VNF instances for which performance information is collected.\n",
        "type": "array",
        "items": {
          "description": "An identifier with the intention of being globally unique.\n",
          "type": "string"
        }
      },
      "criteria": {
        "description": "Criteria of the collection of performance information.\n",
        "type": "object",
        "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",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "performanceMetricGroup": {
            "description": "Group of performance metrics. A metric group is a pre-defined list of metrics, known to the producer that it can decompose to individual metrics. At least one of the two attributes (performance metric or group) shall be present.\n",
            "type": "array",
            "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"
          },
          "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"
          },
          "reportingBoundary": {
            "description": "Date-time stamp.  Representation: String formatted according to IETF RFC 3339.\n",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "reports": {
        "description": "Information about available reports collected by this PM job.\n",
        "type": "object",
        "required": [
          "href",
          "readyTime",
          "_links"
        ],
        "properties": {
          "href": {
            "description": "The Uri where the report can be obtained.\n",
            "type": "string",
            "format": "url"
          },
          "readyTime": {
            "description": "Date-time stamp.  Representation: String formatted according to IETF RFC 3339.\n",
            "type": "string",
            "format": "date-time"
          },
          "expiryTime": {
            "description": "Date-time stamp.  Representation: String formatted according to IETF RFC 3339.\n",
            "type": "string",
            "format": "date-time"
          },
          "fileSize": {
            "description": "The size of the report file in bytes, if known.\n",
            "type": "integer"
          },
          "_links": {
            "description": "Links for this resource.\n",
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "description": "This type represents a link to a resource.\n",
                "type": "object",
                "required": [
                  "href"
                ],
                "properties": {
                  "href": {
                    "description": "URI of the referenced resource.\n",
                    "type": "string",
                    "format": "url"
                  }
                }
              },
              "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",
                "type": "array",
                "items": {
                  "description": "This type represents a link to a resource.\n",
                  "type": "object",
                  "required": [
                    "href"
                  ],
                  "properties": {
                    "href": {
                      "description": "URI of the referenced resource.\n",
                      "type": "string",
                      "format": "url"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}