{
  "description": "This type represents a PM job. \n",
  "type": "object",
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "objectType": {
      "description": "Type of measured object. The applicable measured object type for a measurement is  defined in clause 8.2 of ETSI GS NFV-IFA 031.\n",
      "type": "string"
    },
    "objectInstanceIds": {
      "description": "Identifiers of the measured object instance for which performance information  is collected. This attribute shall contain the identifier of the instance of  the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031.\n",
      "type": "array",
      "items": {
        "description": "An identifier with the intention of being globally unique.\n",
        "type": "string"
      },
      "minItems": 1
    },
    "subObjectInstanceIds": {
      "description": "Identifiers of the sub-object instances of the measured object instance for  which performance information is requested to be collected.  May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is present, the cardinality of the \"objectInstanceIds\"  attribute shall be 1. If this attribute is absent and a sub-object is defined in clause 8.2 of  ETSI GS NFV-IFA 031 for the related measured object type, measurements will  be taken for all sub-object instances of the measured object instance.\n",
      "type": "array",
      "items": {
        "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n",
        "type": "string"
      }
    },
    "criteria": {
      "description": "This type represents collection criteria for PM jobs.\n",
      "type": "object",
      "properties": {
        "performanceMetric": {
          "description": "This defines the types of performance metrics for the specified measured  object(s). This attribute’s value shall contain the related \"Measurement Name\"  values as defined in clause 8.4 of ETSI GS NFV-IFA 031.  At least one of the two attributes (performance metric or group) shall be present.\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. This attribute’s value shall contain the  related \"Measurement Group\" values as defined in clause 8.4 of ETSI GS  NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present.\n",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "collectionPeriod": {
          "description": "Specifies the periodicity at which the producer will collect performance  information. The unit shall be seconds. \nAt the end of each reportingPeriod, the producer will inform the API consumer  about availability of the performance data collected for each completed  collection period during this reportingPeriod. The reportingPeriod should  be equal to or a multiple of the collectionPeriod. In the latter case, the  performance data for the collection periods within one reporting period  are reported together. \nIn particular when choosing short collection and reporting periods, the  number of PM jobs that can be supported depends on the capability of the  producing entity.\n",
          "type": "integer"
        },
        "reportingPeriod": {
          "description": "Specifies the periodicity at which the producer will report to the API consumer  about performance information. The unit shall be seconds.\nAt the end of each reportingPeriod, the producer will inform the API consumer  about availability of the performance data collected for each completed  collection period during this reportingPeriod. The reportingPeriod should  be equal to or a multiple of the collectionPeriod. In the latter case, the  performance data for the collection periods within one reporting period  are reported together. \nIn particular when choosing short collection and reporting periods, the  number of PM jobs that can be supported depends on the capability of the  producing entity.\n",
          "type": "integer"
        },
        "reportingBoundary": {
          "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "collectionPeriod",
        "reportingPeriod"
      ]
    },
    "reports": {
      "description": "Information about available reports collected by this PM job.\n",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "href": {
            "description": "String formatted according to IETF RFC 3986.\n",
            "type": "string"
          },
          "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": "Unsigned integer\n",
            "type": "number"
          }
        },
        "required": [
          "href",
          "readyTime"
        ]
      }
    },
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
      "properties": {
        "self": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "objects": {
          "description": "Links to resources representing the measured object instances for which  performance information is collected. Shall be present if the measured  object instance information is accessible as a resource.\n",
          "type": "array",
          "items": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
            "required": [
              "href"
            ],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
                "type": "string"
              }
            }
          }
        }
      },
      "required": [
        "self"
      ]
    }
  },
  "required": [
    "id",
    "objectType",
    "objectInstanceIds",
    "criteria",
    "_links"
  ]
}