{
	"schema": {
		"uniqueItems": "true",
		"format": "tabs-top",
		"type": "array",
		"title": "TCA Policy JSON",
		"items": {
			"type": "object",
			"title": "TCA Policy JSON",
			"required": [
				"domain",
				"metricsPerEventName"
			],
			"properties": {
				"domain": {
					"propertyOrder": 1001,
					"default": "measurementsForVfScaling",
					"title": "Domain name to which TCA needs to be applied",
					"type": "string"
				},
				"metricsPerEventName": {
					"propertyOrder": 1002,
					"uniqueItems": "true",
					"format": "tabs-top",
					"title": "Contains eventName and threshold details that need to be applied to given eventName",
					"type": "array",
					"items": {
						"type": "object",
						"required": [
							"controlLoopSchemaType",
							"eventName",
							"policyName",
							"policyScope",
							"policyVersion",
							"thresholds"
						],
						"properties": {
							"policyVersion": {
								"propertyOrder": 1007,
								"title": "TCA Policy Scope Version",
								"type": "string"
							},
							"thresholds": {
								"propertyOrder": 1008,
								"uniqueItems": "true",
								"format": "tabs-top",
								"title": "Thresholds associated with eventName",
								"type": "array",
								"items": {
									"type": "object",
									"required": [
										"closedLoopControlName",
										"closedLoopEventStatus",
										"direction",
										"fieldPath",
										"severity",
										"thresholdValue",
										"version"
									],
									"properties": {
										"severity": {
											"propertyOrder": 1013,
											"title": "Threshold Event Severity",
											"type": "string",
											"enum": [
												"CRITICAL",
												"MAJOR",
												"MINOR",
												"WARNING",
												"NORMAL"
											]
										},
										"fieldPath": {
											"propertyOrder": 1012,
											"title": "Json field Path as per CEF message which needs to be analyzed for TCA",
											"type": "string",
											"enum": [
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
												"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
												"$.event.measurementsForVfScalingFields.meanRequestLatency",
												"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
												"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
												"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
												"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
												"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
												"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
											]
										},
										"thresholdValue": {
											"propertyOrder": 1014,
											"title": "Threshold value for the field Path inside CEF message",
											"type": "integer"
										},
										"closedLoopEventStatus": {
											"propertyOrder": 1010,
											"title": "Closed Loop Event Status of the threshold",
											"type": "string",
											"enum": [
												"ONSET",
												"ABATED"
											]
										},
										"closedLoopControlName": {
											"propertyOrder": 1009,
											"title": "Closed Loop Control Name associated with the threshold",
											"type": "string"
										},
										"version": {
											"propertyOrder": 1015,
											"title": "Version number associated with the threshold",
											"type": "string"
										},
										"direction": {
											"propertyOrder": 1011,
											"title": "Direction of the threshold",
											"type": "string",
											"enum": [
												"LESS",
												"LESS_OR_EQUAL",
												"GREATER",
												"GREATER_OR_EQUAL",
												"EQUAL"
											]
										}
									}
								}
							},
							"policyName": {
								"propertyOrder": 1005,
								"title": "TCA Policy Scope Name",
								"type": "string"
							},
							"controlLoopSchemaType": {
								"propertyOrder": 1003,
								"title": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
								"type": "string",
								"enum": [
									"VM",
									"VNF"
								]
							},
							"policyScope": {
								"propertyOrder": 1006,
								"title": "TCA Policy Scope",
								"type": "string"
							},
							"eventName": {
								"propertyOrder": 1004,
								"title": "Event name to which thresholds need to be applied",
								"type": "string"
							}
						}
					}
				}
			}
		}
	}
}