
{
  "description": "This type represents an NS change notification, which informs the receiver of changes on the NS instance caused by the LCM operation occurrence, which directly or indirectly impacts its NS component and is triggered without any context of this NS instance. This notification is different from the NsLcmOperationOccurenceNotification (see clause 6.5.2.5), which is triggered by the NS LCM operation occurrence on the NS instance itself. It shall comply with the provisions defined in Table 6.5.2.8-1. The support of the notification is mandatory. The trigger conditions include: 1) NS LCM operation occurrence which directly or indirectly impacts the NS component (start and result). If this is a notification about the start of an LCM operation occurrence impacting the NS component, the notification shall be sent as soon as the impact on the NS component is identified. If this is a notification about a final result state of an NS LCM operation occurrence impacting the NS component, the notification shall be sent after the impact on the NS component has been executed.\n",
  "type": "object",
  "required": [
    "id",
    "nsInstanceId",
    "nsComponentType",
    "nsComponentId",
    "lcmOpOccIdImpactingNsComponent",
    "lcmOpNameImpactingNsComponent",
    "lcmOpOccStatusImpactingNsCompon",
    "notificationType",
    "subscriptionId",
    "timestamp",
    "_links"
  ],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "nsInstanceId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "nsComponentType": {
      "description": "The enumeration NsComponentType represents the NS component type. It shall comply with the provisions defined in Table 6.5.4.5-1. Value | Description ------|------------ VNF | Represents the impacted NS component is a VNF. PNF | Represents the impacted NS component is a PNF. NS | Represents the impacted NS component is a nested NS.\n",
      "type": "string",
      "enum": [
        "VNF",
        "PNF",
        "NS"
      ]
    },
    "nsComponentId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "lcmOpOccIdImpactingNsComponent": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "lcmOpNameImpactingNsComponent": {
      "description": "The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and trigger an NS change notification. It shall comply with the provisions defined in Table 6.5.4.6-1. Value | Description ------|------------ VNF_INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. VNF_SCALE | Represents the \"Scale VNF\" LCM operation. VNF_SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. VNF_CHANGE_FLAVOUR | Represents the \"Change VNF Flavor\" LCM operation. VNF_TERMINATE | Represents the \"Terminate VNF\" LCM operation. VNF_HEAL | Represents the \"Heal VNF\" LCM operation. VNF_OPERATE | Represents the \"Operate VNF\" LCM operation. VNF_CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. VNF_MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.            NS_INSTANTIATE | Represents the \"Instantiate NS\" LCM operation NS_SCALE | Represents the \"Scale NS\" LCM operation. NS_UPDATE | Represents the \"Update NS\" LCM operation. NS_TERMINATE | Represents the \"Terminate NS\" LCM operation. NS_HEAL | Represents the \"Heal NS\" LCM operation.\n",
      "type": "string",
      "enum": [
        "VNF_INSTANTIATE",
        "VNF_SCALE",
        "VNF_SCALE_TO_LEVEL",
        "VNF_CHANGE_FLAVOUR",
        "VNF_TERMINATE",
        "VNF_HEAL",
        "VNF_OPERATE",
        "VNF_CHANGE_EXT_CONN",
        "VNF_MODIFY_INFO",
        "NS_INSTANTIATE",
        "NS_SCALE",
        "NS_UPDATE",
        "NS_TERMINATE",
        "NS_HEAL"
      ]
    },
    "lcmOpOccStatusImpactingNsComponent": {
      "description": "The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and trigger an NS change notification. It shall comply with the provisions defined in table 6.5.4.6-1.\nValue                   | Description VNF_INSTANTIATE\t        Represents the \"Instantiate VNF\" LCM operation. VNF_SCALE\t                Represents the \"Scale VNF\" LCM operation. VNF_SCALE_TO_LEVEL\t    Represents the \"Scale VNF to Level\" LCM operation. VNF_CHANGE_FLAVOUR\t    Represents the \"Change VNF Flavour\" LCM operation. VNF_TERMINATE\t            Represents the \"Terminate VNF\" LCM operation. VNF_HEAL\t                Represents the \"Heal VNF\" LCM operation. VNF_OPERATE\t            Represents the \"Operate VNF\" LCM operation. VNF_CHANGE_EXT_CONN\t    Represents the \"Change external VNF connectivity\" LCM operation. VNF_MODIFY_INFO\t        Represents the \"Modify VNF Information\" LCM operation. VNF_CREATE_SNAPSHOT\t    Represents the \"Create VNF Snapshot\" LCM operation. VNF_REVERT_TO_SNAPSHOT\tRepresents the \"Revert To VNF Snapshot\" LCM operation. VNF_CHANGE_VNFPKG\t        Represents the \"Change current VNF package\" LCM operation. NS_INSTANTIATE\t        Represents the \"Instantiate NS\" LCM operation. NS_SCALE\t                Represents the \"Scale NS\" LCM operation. NS_UPDATE\t                Represents the \"Update NS\" LCM operation. NS_TERMINATE\t            Represents the \"Terminate NS\" LCM operation. NS_HEAL\t                Represents the \"Heal NS\" LCM operation.\n",
      "type": "string",
      "enum": [
        "VNF_INSTANTIATE",
        "VNF_SCALE",
        "VNF_SCALE_TO_LEVEL",
        "VNF_CHANGE_FLAVOUR",
        "VNF_TERMINATE",
        "VNF_HEAL",
        "VNF_OPERATE",
        "VNF_CHANGE_EXT_CONN",
        "VNF_MODIFY_INFO",
        "VNF_CREATE_SNAPSHOT",
        "VNF_REVERT_TO_SNAPSHOT",
        "VNF_CHANGE_VNFPKG",
        "NS_INSTANTIATE",
        "NS_SCALE",
        "NS_UPDATE",
        "NS_TERMINATE",
        "NS_HEAL"
      ]
    },
    "notificationType": {
      "description": "Discriminator for the different notification types. Shall be set to \"NsChangeNotification\" for this notification type.\n",
      "type": "string"
    },
    "subscriptionId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "timestamp": {
      "description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n",
      "format": "date-time"
    },
    "error": {
      "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced in this structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
      "type": "object",
      "required": [
        "status",
        "detail"
      ],
      "properties": {
        "type": {
          "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
          "type": "string",
          "format": "URI"
        },
        "title": {
          "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
          "type": "string"
        },
        "status": {
          "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
          "type": "integer"
        },
        "detail": {
          "description": "A human-readable explanation specific to this occurrence of the problem.\n",
          "type": "string"
        },
        "instance": {
          "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
          "type": "string",
          "format": "URI"
        }
      }
    },
    "_links": {
      "type": "object",
      "required": [
        "nsInstance"
      ],
      "properties": {
        "nsInstance": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n",
              "type": "string",
              "format": "url"
            }
          }
        },
        "subscription": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n",
              "type": "string",
              "format": "url"
            }
          }
        },
        "nslcmOpOcc": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "URI of a resource referenced from a notification. Should be an absolute URI (i.e. a URI that contains {apiRoot}), however, may be a relative URI (i.e. a URI where the {apiRoot} part is omitted) if the {apiRoot} information is not available.\n",
              "type": "string",
              "format": "url"
            }
          }
        }
      }
    }
  }
}