{
  "description": "This type represents a subscription.\n",
  "type": "object",
  "required": [
    "id",
    "callbackUri",
    "_links"
  ],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "filter": {
      "description": "This type represents a filter that can be used to subscribe for  notifications related to performance management events. It shall comply with the provisions defined in Table 7.5.3.2-1. 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).\n",
      "type": "object",
      "properties": {
        "nsInstanceSubscriptionFilter": {
          "description": "This type represents subscription filter criteria to match NS instances.\n",
          "type": "object",
          "properties": {
            "nsdIds": {
              "description": "If present, match NS instances that were created based on a NSD identified by one of the nsdId values listed in this attribute.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
                "type": "string"
              }
            },
            "vnfdIds": {
              "description": "If present, match NS instances that contain VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
                "type": "string"
              }
            },
            "pnfdIds": {
              "description": "If present, match NS instances that contain PNFs that are represented by a PNFD identified by one of the pnfdId values listed in this attribute.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
                "type": "string"
              }
            },
            "nsInstanceIds": {
              "description": "If present, match NS instances with an instance identifier listed in this attribute.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
                "type": "string"
              }
            },
            "nsInstanceNames": {
              "description": "If present, match NS instances with a NS Instance Name listed in this attribute.\n",
              "type": "array",
              "items": {
                "description": "This type represents stack of string values\n",
                "type": "string"
              }
            }
          }
        },
        "notificationTypes": {
          "description": "Match particular notification types. Permitted values: - ThresholdCrossedNotification - PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.          \n",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "ThresholdCrossedNotification",
              "PerformanceInformationAvailableNotification"
            ]
          }
        }
      }
    },
    "callbackUri": {
      "description": "String formatted according to IETF RFC 3986.\n",
      "type": "string"
    },
    "_links": {
      "description": "Links to resources related to 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"
            }
          }
        }
      }
    }
  }
}