{
	"description": "This operation supports the update of a NS instance,  It shall comply with the provisions defined in Table 6.5.2.12-1.\n",
	"type": "object",
	"required": [
		"updateType"
	],
	"properties": {
		"updateType": {
			"description": "The type of update. It determines also which one of the following parameters is present in the operation. Possible values include: * ADD_VNF: Adding existing VNF instance(s) * REMOVE_VNF: Removing VNF instance(s) * INSTANTIATE_VNF: Instantiating new VNF(s) * CHANGE_VNF_DF: Changing VNF DF * OPERATE_VNF: Changing VNF state, * MODIFY_VNF_INFORMATION: Modifying VNF information and/or the configurable properties of VNF instance(s) * CHANGE_EXTERNAL_VNF_CONNECTIVITY: Changing the external connectivity of VNF instance(s)ADD_SAP: Adding SAP(s) * REMOVE_SAP: Removing SAP(s) * ADD_NESTED_NS: Adding existing NS instance(s) as nested NS(s) * REMOVE_NESTED_NS: Removing existing nested NS instance(s) * ASSOC_NEW_NSD_VERSION: Associating a new NSD version to the NS instance * MOVE_VNF: Moving VNF instance(s) from one origin NS instance to another target NS instance * ADD_VNFFG: Adding VNFFG(s) * REMOVE_VNFFG: Removing VNFFG(s) * UPDATE_VNFFG: Updating VNFFG(s) * CHANGE_NS_DF: Changing NS DF * ADD_PNF: Adding PNF * MODIFY_PNF: Modifying PNF * REMOVE_PNF: Removing PNF\n",
			"type": "string",
			"enum": [
				"ADD_VNF",
				"REMOVE_VNF",
				"INSTANTIATE_VNF",
				"CHANGE_VNF_DF",
				"OPERATE_VNF",
				"MODIFY_VNF_INFORMATION",
				"CHANGE_EXTERNAL_VNF_CONNECTIVITY",
				"REMOVE_SAP",
				"ADD_NESTED_NS",
				"REMOVE_NESTED_NS",
				"ASSOC_NEW_NSD_VERSION",
				"MOVE_VNF",
				"ADD_VNFFG",
				"REMOVE_VNFFG",
				"UPDATE_VNFFG",
				"CHANGE_NS_DF",
				"ADD_PNF",
				"MODIFY_PNF",
				"REMOVE_PNF"
			]
		},
		"addVnfIstance": {
			"description": "Identifies an existing VNF instance to be added to the NS instance. It shall be present only if updateType = \"ADD_VNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/VnfInstanceData"
			}
		},
		"removeVnfInstanceId": {
			"description": "Identifies an existing VNF instance to be removed from the NS instance. It contains the identifier(s) of the VNF instances to be removed. It shall be present only if updateType = \"REMOVE_VNF.\" Note: If a VNF instance is removed from a NS and this NS was the last one for which this VNF instance was a part, the VNF instance is terminated by the NFVO.\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/Identifier"
			}
		},
		"instantiateVnfData": {
			"description": "Identifies the new VNF to be instantiated. It can be used e.g. for the bottom-up NS creation. It shall be present only if updateType = \"INSTANTIATE_VNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/InstantiateVnfData"
			}
		},
		"changeVnfFlavourData": {
			"description": "Identifies the new DF of the VNF instance to be changed to. It shall be present only if updateType = \"CHANGE_VNF_DF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/ChangeVnfFlavourData"
			}
		},
		"operateVnfData": {
			"description": "Identifies the state of the VNF instance to be changed.  It shall be present only if updateType = \"OPERATE_VNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/OperateVnfData"
			}
		},
		"modifyVnfInfoData": {
			"description": "Identifies the VNF information parameters and/or the configurable properties of VNF instance to be modified. It shall be present only if updateType = \"MODIFY_VNF_INFORMATION\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/ModifyVnfInfoData"
			}
		},
		"changeExtVnfConnectivityData": {
			"description": "Specifies the new external connectivity data of the VNF instance to be changed. It shall be present only if updateType = \"CHANGE_EXTERNAL_VNF_CONNECTIVITY\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/ChangeExtVnfConnectivityData"
			}
		},
		"addSap": {
			"description": "Identifies a new SAP to be added to the NS instance. It shall be present only if updateType = \"ADD_SAP.\"\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/SapData"
			}
		},
		"removeSapId": {
			"description": "The identifier an existing SAP to be removed from the NS instance. It shall be present only if updateType = \"REMOVE_SAP.\"\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/Identifier"
			}
		},
		"addNestedNsId": {
			"description": "The identifier of an existing nested NS instance to be added to (nested within) the NS instance. It shall be present only if updateType = \"ADD_NESTED_NS\".\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/Identifier"
			}
		},
		"removeNestedNsId": {
			"description": "The identifier of an existing nested NS instance to be removed from the NS instance. It shall be present only if updateType = \"REMOVE_NESTED_NS\".\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/IdentifierInNs"
			}
		},
		"assocNewNsdVersionData": {
			"description": "Specify the new NSD to be used for the NS instance. It shall be present only if updateType = ASSOC_NEW_NSD_VERSION\".\n",
			"$ref": "#/definitions/AssocNewNsdVersionData"
		},
		"moveVnfInstanceData": {
			"description": "Specify existing VNF instance to be moved from one NS instance to another NS instance. It shall be present only if updateType = MOVE_VNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/MoveVnfInstanceData"
			}
		},
		"addVnffg": {
			"description": "Specify the new VNFFG to be created to the NS Instance. It shall be present only if updateType = \"ADD_VNFFG\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/AddVnffgData"
			}
		},
		"removeVnffgId": {
			"description": "Identifier of an existing VNFFG to be removed from the NS Instance. It shall be present only if updateType = \"REMOVE_VNFFG\".\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/Identifier"
			}
		},
		"updateVnffg": {
			"description": "Specify the new VNFFG Information data to be updated for a VNFFG of the NS Instance. It shall be present only if updateType = \"UPDATE_VNFFG\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/UpdateVnffgData"
			}
		},
		"changeNsFlavourData": {
			"description": "Specifies the new DF to be applied to the NS instance. It shall be present only if updateType = \"CHANGE_NS_DF\".\n",
			"$ref": "#/definitions/ChangeNsFlavourData"
		},
		"addPnfData": {
			"description": "specifies the PNF to be added into the NS instance.  It shall be present only if updateType = \"ADD_PNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/AddPnfData"
			}
		},
		"modifyPnfData": {
			"description": "Specifies the PNF to be modified in the NS instance.  It shall be present only if updateType = \"MODIFY_PNF\".\n",
			"type": "array",
			"items": {
				"$ref": "#/definitions/ModifyPnfData"
			}
		},
		"removePnfId": {
			"description": "Identifier of the PNF to be deleted from the NS instance. It shall be present only if updateType = \"REMOVE_PNF\".\n",
			"type": "array",
			"items": {
				"$ref": "SOL005_def.yaml#/definitions/Identifier"
			}
		},
		"updateTime": {
			"description": "Timestamp indicating the update time of the NS, i.e. the NS will be updated at this timestamp. Cardinality \"0\" indicates the NS update takes place immediately.\n",
			"$ref": "SOL005_def.yaml#/definitions/DateTime"
		}
	}
}