{
  "description": "This type represents a subscription related to notifications about  NFV-MANO configuration and information management changes\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 subscription filter related to notifications  about NFV-MANO configuration and information management. * NOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names\n        of the notification types to facilitate automated code generation systems.\n",
      "type": "object",
      "properties": {
        "manoEntitySubscriptionFilter": {
          "description": "This type represents subscription filter criteria to match NFV-MANO functional  entities and their associated managed objects. \n",
          "type": "object",
          "properties": {
            "manoEntityId": {
              "description": "An identifier with the intention of being globally unique.\n",
              "type": "string"
            },
            "manoServiceIds": {
              "description": "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO  services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives  to reference to NFV-MANO services in a filter. They should not be used  together in the same filter instance, but one alternative should be chosen.\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"
              }
            },
            "manoServiceNames": {
              "description": "If present, match NFV-MANO services with an NFV-MANO service name listed  in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives  to reference to NFV-MANO services in a filter. They should not be used  together in the same filter instance, but one alternative should be chosen.\n",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "manoServiceInterfaceIds": {
              "description": "If present, match NFV-MANO functional entity produced interfaces with an  instance identifier listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\"  are alternatives to reference to NFV-MANO functional entity produced  interfaces in a filter. They should not be used both in the same filter  instance, but one alternative should be chosen.\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"
              }
            },
            "manoServiceInterfaceNames": {
              "description": "If present, match NFV-MANO functional entity produced interfaces with an  instance Name listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\"  are alternatives to reference to NFV-MANO functional entity produced  interfaces in a filter. They should not be used both in the same filter  instance, but one alternative should be chosen.\n",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "consumedManoInterfaceIds": {
              "description": "If present, match NFV-MANO functional entity consumed interfaces with an  instance identifier listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\"  are alternatives to reference to NFV-MANO functional entity consumed  interfaces in a filter. They should not be used both in the same filter  instance, but one alternative should be chosen.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
                "type": "string"
              }
            },
            "consumedManoInterfaceNames": {
              "description": "If present, match NFV-MANO functional entity consumed interfaces with an  instance Name listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\"  are alternatives to reference to NFV-MANO functional entity consumed  interfaces in a filter. They should not be used both in the same filter  instance, but one alternative should be chosen.\n",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "notificationTypes": {
          "description": "Match particular notification types. \nPermitted values:\n  - InformationChangedNotification\n  - ChangeStateNotification\n\nSee note.\n",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "InformationChangedNotification",
              "ChangeStateNotification"
            ]
          }
        }
      }
    },
    "callbackUri": {
      "description": "String formatted according to IETF RFC 3986.\n",
      "type": "string"
    },
    "_links": {
      "description": "Links to resources related to 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"
            }
          }
        }
      },
      "required": [
        "self"
      ]
    }
  }
}