Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageyml
titleExample Policy You Would Expect To Be Able to Create
linenumberstrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
imports:
    -
      tca_policy_model_casablanca.yml
policies:
    -
      onap.vfirewall.tca_policy:
        type: policy.nodes.tca
        properties:
            domain: measurementsForVfScaling
            metricsPerEventName: 
                - 
                    eventName: Mfvs_eNodeB_RANKPIvFirewallBroadcastPackets
                    controlLoopSchemaType: VNF
                    policyScope: "resource=vFirewall;type=configurationDCAE"
                    policyName: "configuration.dcae.microservice.tca.xmlDCAE.Config_tca-hi-lo"
                    policyVersion: "v0.0.1"
                    thresholds: 
                        - 
                            closedLoopControlName: "CLControlLoop-FRWLvFirewall-LOWd0a1dfc6-TRAFFIC94f5-SIG4fd4-d925ed73-8231-4d02-9545-db4e101f88f8a5b5-4630b438850a"
                            closedLoopEventStatus: ONSET
                            version: "1.0.2"
                            fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArrayvNicUsageArray[*].receivedBroadcastPacketsAccumulatedreceivedTotalPacketsDelta"
                            thresholdValue: 4000300
                            direction: LESS_OR_EQUAL
                            severity: MAJOR
                        - 
                            closedLoopControlName: "CLControlLoop-FRWLvFirewall-HIGHd0a1dfc6-TRAFFIC94f5-SIG4fd4-EA36FE84-9342-5E13-A656-EC5F21309A09a5b5-4630b438850a"
                            closedLoopEventStatus: ONSET
                            version: "1.0.2"
                            fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArrayvNicUsageArray[*].receivedBroadcastPacketsAccumulatedreceivedTotalPacketsDelta"
                            thresholdValue: 20000700
                            direction: GREATER_OR_EQUAL
                            severity: CRITICAL
                        - 
                            closedLoopControlName: "CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09"
                            closedLoopEventStatus: ABATED
                            version: "1.0.2"
                            fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
                            thresholdValue: 0
                            direction: EQUAL
                            severity: CRITICAL

Actual Input expected by the API does not match the above YAML, but instead is JSON.



Actual Input expected by the API does not match the above YAML, but instead is JSON.

Code Block
languagebash
titleExample API Call using CURL (CLAMP uses Java API)
linenumberstrue
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{

    "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevFirewall\", \"description\": \"MicroService vFirewall Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"vFirewallBroadcastPackets\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 300, \"direction\": \"LESS_OR_EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ONSET\" }, { \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 700, \"direction\": \"GREATER_OR_EQUAL\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" } ] }] } } }",

    "policyConfigType": "MicroService",

    "policyName": "com.MicroServicevFirewall",

    "onapName": "DCAE"

}' 'https://pdp:8081/pdp/api/createPolicy'


Code Block
languagejs
titleFrom the example API call, this is the configBody JSON contents UNStringified and Pretty Printed
linenumberstrue
{
	"service": "tca_policy",
	"location": "SampleServiceLocation",
	"uuid": "test",
	"policyName": "MicroServicevFirewall", ## WHOA - THIS DOES NOT MATCH policyName in the top-level API call JSON payload
	"description": "MicroService vFirewall Policy",
	"configName": "SampleConfigName", ### ?????
	"templateVersion": "OpenSource.version.1",
	"version": "1.1.0",
	"priority": "1",
	"policyScope": "resource=SampleResource,service=SampleService,
Code Block
languagebash
titleExample API Call
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{

    "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevFirewall\", \"description\": \"MicroService vFirewall Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \
	"riskType\": \"SampleRiskType\", \
	"riskLevel\": \"1\", \
	"guard\": \"False\", \
	"content\": { \
		"tca_policy\": { \
			"domain\": \"measurementsForVfScaling\", \
			"metricsPerEventName\": [{ \
				{
					"eventName\": \"vFirewallBroadcastPackets\", \
					"controlLoopSchemaType\": \"VNF\", \
					"policyScope\": \"DCAE\", \
					"policyName\": \"DCAE.Config_tca-hi-lo\", \
					"policyVersion\": \"v0.0.1\", \
					"thresholds\": [{ \
						{
							"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \
							"version\": \"1.0.2\", \
							"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \
							"thresholdValue\": 300, \
							"direction\": \"LESS_OR_EQUAL\", \
							"severity\": \"MAJOR\", \
							"closedLoopEventStatus\": \"ONSET\" }, { \"closedLoopControlName\"
						},
						{
							"closedLoopControlName": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \
							"version\": \"1.0.2\", \
							"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \
							"thresholdValue\": 700, \
							"direction\": \"GREATER_OR_EQUAL\", \
							"severity\": \"CRITICAL\", \"closedLoopEventStatus\
							"closedLoopEventStatus": \"ONSET\" } ] }] } } }",

    "policyConfigType": "MicroService",

    "policyName": "com.MicroServicevFirewall",

    "onapName": "DCAE"

}' 'https://pdp:8081/pdp/api/createPolicy'

Code Block
titleFrom the example API call, this is the configBody JSON contents UNStringified and Pretty Printed
linenumberstrue
"
						}
					]
				}
			]
		}
	}
}

The exact details on what DCAE Policy Handler has to do be able to retrieve the policy are way to numerous and are documented in this PDF:

DCAEGEN2 architecture of policy-handling by DCAE-controller


Code Block
languagebash
titleCLAMP Push API call
linenumberstrue
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{

  "pdpGroup": "default",

  "policyName": "com.MicroServicevFirewall",

  "policyType": "MicroService"

}' 'https://pdp:8081/pdp/api/pushPolicy'




DCAE Policy Handler

Code Block
languagejs
https://pdp:8081/pdp/api/getConfig POST
Content-Type: application/json

{"configAttributes": {}, "unique": false, "ecompName": "DCAE", "configName": ".*", "policyName": ".*vFirewall*"}


#
# Returns
#

{
  "policyConfigMessage": "Config Retrieved! ",
  "policyConfigStatus": "CONFIG_RETRIEVED",
  "type": "JSON",
  "config": "{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevFirewall\",\"description\":\"MicroService vFirewall Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName={
	"service": "tca_policy",
	"location": "SampleServiceLocation",
	"uuid": "test",
	"policyName": "MicroServicevFirewall",
	"description": "MicroService vFirewall Policy",
	"configName": "SampleConfigName",
	"templateVersion": "OpenSource.version.1",
	"version": "1.1.0",
	"priority": "1",
	"policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
	"riskType": "SampleRiskType",
	"riskLevel": "1",
	"guard": "False",
	"content": {
		"tca_policy": {
			"domain": "measurementsForVfScaling",
			"metricsPerEventName": [
				{
					"eventName": "vFirewallBroadcastPackets",
					"controlLoopSchemaType": "VNF",
					"policyScope": "DCAE",
					"policyName": "DCAE.Config_tca-hi-lo",
					"policyVersion": "v0.0.1",
					"thresholds": [
						{
							"closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",
							"version": "1.0.2",
							"fieldPath": \"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"False\",\"content\":{\"policyVersion\":\"v0.0.1\",\"threshholds\":[{\"severity\":\"MAJOR\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
							\"thresholdValue\": \"300,
							"direction": "LESS_OR_EQUAL",
							"severity": "MAJOR",
							"closedLoopEventStatus": "ONSET"
						},
						{
							"closedLoopControlName": \",\"closedLoopEventStatus\":\"ONSET\",\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",
							\"version\": \"1.0.2",
							"fieldPath": \",\"direction\":\"LESS_OR_EQUAL\"},{\"severity\":\"CRITICAL\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
							\"thresholdValue\": \"700,
							"direction": "GREATER_OR_EQUAL",
							"severity": "CRITICAL",
							"closedLoopEventStatus": "ONSET"
						}
					]
				}
			]
		}
	}
}

The exact details on what DCAE Policy Handler has to do be able to retrieve the policy are way to numerous and are documented in this PDF:

DCAEGEN2 architecture of policy-handling by DCAE-controller

Code Block
languagebash
titleCLAMP Push API call
linenumberstrue
curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{

  "pdpGroup": "default",

  "policyName": "com.MicroServicevFirewall",

  "policyType": "MicroService"

}' 'https://pdp:8081/pdp/api/pushPolicy'



DCAE Policy Handler

Code Block
POST


{"configAttributes": {}, "unique": false, "ecompName": "DCAE", "configName": ".*", "policyName": ".*vFirewall*"}


#
# Returns
#


{
  "policyConfigMessage": "Config Retrieved! ",
  "policyConfigStatus": "CONFIG_RETRIEVED",
  "type": "JSON",
  "config": "{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevFirewall\",\"description\":\"MicroService vFirewall Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\\",\"closedLoopEventStatus\":\"ONSET\",\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"direction\":\"GREATER_OR_EQUAL\"}],\"policyName\":\"DCAE.Config_tca-hi-lo\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"eventName\":\"vFirewallBroadcastPackets\"}}",
  "policyName": "com.Config_MS_CSIT_kf0zc9b9olvs2gm_vFirewall.1.xml", ### Where did this come from?? Why isn't this com.MicroServicevFirewall??
  "policyType": "MicroService",
  "policyVersion": "1",
  "matchingConditions": {
    "ECOMPName": "DCAE",
    "ONAPName": "DCAE",
    "ConfigName": "SampleConfigName",
    "service": "tca_policy",
    "uuid": "test",
    "Location": "SampleServiceLocation"
  },
  "responseAttributes": {},
  "property": null
}


#
# The contents of the config UNESCAPED and PRETTY PRINTED
#
# MISSING under content:
#		"tca_policy": {
#			"domain": "measurementsForVfScaling",
#			"metricsPerEventName": [
#
#
{
  "service": "tca_policy",
  "location": "SampleServiceLocation",
  "uuid": "test",
  "policyName": "MicroServicevFirewall",
  "description": "MicroService vFirewall Policy",
  "configName": "SampleConfigName",
  "templateVersion": "OpenSource.version.1",
  "version": "1.1.0",
  "priority": "1",
  "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\
  "riskType\":\ "SampleRiskType\",\
  "riskLevel\":\ "1\",\
  "guard\":\ "False\",\
  "content\": {\
    "policyVersion\":\ "v0.0.1\",\
    "threshholds\": [{\
      {
        "severity\":\ "MAJOR\",\
        "fieldPath\":\ "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",\
        "thresholdValue\":\ "300\",\"closedLoopEventStatus\":\"ONSET\",\"closedLoopControlName\":\
        "closedLoopEventStatus": "ONSET",
        "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\
        "version\":\ "1.0.2\",\
        "direction\":\ "LESS_OR_EQUAL\"
      },{\
      {
        "severity\":\ "CRITICAL\",\
        "fieldPath\":\ "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",\"thresholdValue\
        "thresholdValue":\ "700\",\
        "closedLoopEventStatus\":\ "ONSET\",\
        "closedLoopControlName\":\ "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\
        "version\":\ "1.0.2\",\
        "direction\":\ "GREATER_OR_EQUAL\"
      }
    ],\
    "policyName\":\ "DCAE.Config_tca-hi-lo\",\
    "controlLoopSchemaType\":\ "VNF\",\"policyScope\":\"DCAE\",\"eventName\":\"vFirewallBroadcastPackets\"}}",
  "policyName": "com.Config_MS_CSIT_kf0zc9b9olvs2gm_vFirewall.1.xml",
  "policyTypepolicyScope": "MicroServiceDCAE",
  "policyVersion": "1",
  "matchingConditionseventName": {
    "ECOMPName": "DCAE",
    "ONAPName": "DCAE",
    "ConfigName": "SampleConfigName",
    "service": "tca_policy",
    "uuid": "test",
    "Location": "SampleServiceLocation"
  },
  "responseAttributes": {},
  "property": null
}


#
# The contents of the config UNESCAPED and PRETTY PRINTED
#
{
  "service": "tca_policy",
  "location": "SampleServiceLocation",
  "uuid": "test",
  "policyName": "MicroServicevFirewall",
  "description": "MicroService vFirewall Policy",
  "configName": "SampleConfigName",
  "templateVersion": "OpenSource.version.1",
  "version": "1.1.0",
  "priority": "1",
  "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
  "riskType": "SampleRiskType",
  "riskLevel": "1",
  "guard": "False",
  "content": {
    "policyVersion": "v0.0.1",
    "threshholds": [
      {"vFirewallBroadcastPackets"
  }
}


Policy Lifecycle API (DRAFT Beta version for M2)

Dublin TCA DCAE mS Policy Model Schema

Code Block
languageyml
titleDublin DCAE TCA Model Schema
linenumberstrue


tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
    onap.policies.Monitoring:
        derived_from: tosca.policies.Root
        description: a base policy type for all policies that govern monitoring provision
    onap.policy.monitoring.cdap.tca.hi.lo.app:
        derived_from: onap.policies.Monitoring
        properties:
            tca_policy:
                type: map
                description: TCA Policy JSON
        "severity": "MAJOR",
       default: '{"fieldPathdomain": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta",
        "thresholdValue": "300",
        "closedLoopEventStatus": "ONSET",
        "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
        "version": "1.0.2",
        "direction": "LESS_OR_EQUAL"
      },
      {
        "severity": "CRITICAL",
        "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta",
        "thresholdValue": "700",
        "closedLoopEventStatus": "ONSET",
        "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
        "version": "1.0.2",
        "direction": "GREATER_OR_EQUAL"
      }
    ],
    "policyName": "DCAE.Config_tca-hi-lo",
    "controlLoopSchemaType": "VNF",
    "policyScope": "DCAE",
    "eventName": "vFirewallBroadcastPackets"
  }
}

Policy Lifecycle API (DRAFT Beta version for M2)

Dublin TCA DCAE mS Policy Model Schema

Code Block
languageyml
titleDublin DCAE TCA Model Schema
linenumberstrue


tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
    onap.policies.Monitoring:
        derived_from: tosca.policies.Root
        description: a base policy type for all policies that govern monitoring provision
    onap.policy.monitoring.cdap.tca.hi.lo.app:
        derived_from: onap.policies.Monitoring
        properties:
            tca_policy:
                type: map
                description: TCA Policy JSON
                default: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"Mfvs_eNodeB_RANKPI","controlLoopSchemaType":"VNF","policyScope":"resource=vFirewall;type=configuration","policyName":"configuration.dcae.microservice.tca.xml","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8"measurementsForVfScaling","metricsPerEventName":[{"eventName":"Mfvs_eNodeB_RANKPI","controlLoopSchemaType":"VNF","policyScope":"resource=vFirewall;type=configuration","policyName":"configuration.dcae.microservice.tca.xml","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":4000,"direction":"LESS_OR_EQUAL","severity":"MAJOR"},{"closedLoopControlName":"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":20000,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL"},{"closedLoopControlName":"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09","closedLoopEventStatus":"ABATED","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":0,"direction":"EQUAL","severity":"CRITICAL"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VNF","policyScope":"resource=vLoadBalancer;type=configuration","policyName":"configuration.dcae.microservice.tca.xml","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":500,"direction":"LESS_OR_EQUAL","severity":"MAJOR"},{"closedLoopControlName":"CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":40005000,"direction":"LESSGREATER_OR_EQUAL","severity":"MAJORCRITICAL"},{"closedLoopControlName":"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":20000,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL"},{"closedLoopControlName":"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09","closedLoopEventStatus":"ABATED","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":0,"direction":"EQUAL","severity":"CRITICAL"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VNF","policyScope":"resource=vLoadBalancer;type=configuration","policyName":"configuration.dcae.microservice.tca.xml","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":500,"direction":"LESS_OR_EQUAL","severity":"MAJOR"},{"closedLoopControlName":"CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B","closedLoopEventStatus":"ONSET","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated","thresholdValue":5000,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL"}]}]}'
        }]}]}'
                entry_schema:
                    type: onap.datatypes.monitoring.tca_policy
data_types:
    onap.datatypes.monitoring.metricsPerEventName:
        derived_from: tosca.datatypes.Root
        properties:
            controlLoopSchemaType:
                type: string
                description: Specifies Control Loop Schema Type for the
                    event Name e.g. VNF, VM
                constraints:
                  - valid_values:
                      - VM
                      - VNF
            eventName:
                type: string
                description: Event name to which thresholds need to be
                    applied
            policyName:
                type: string
                description: TCA Policy Scope Name
            policyScope:
                type: string
                description: TCA Policy Scope
        entry_schema:
    policyVersion:
                type: onap.datatypes.monitoring.tca_policy
data_types:
string
     onap.datatypes.monitoring.metricsPerEventName:
        derived_from: tosca.datatypes.Root
  description: TCA Policy Scope   properties:Version
            controlLoopSchemaTypethresholds:
                type: stringlist
                description: SpecifiesThresholds Controlassociated Loopwith SchemaeventName
 Type for the
             entry_schema:
       event Name e.g. VNF, VM
         type: onap.datatypes.monitoring.thresholds
      constraintsonap.datatypes.monitoring.tca_policy:
        derived_from: tosca.datatypes.Root
         - valid_valuesproperties:
            domain:
          - VM
     type: string
                -description: VNF
Domain name to which TCA needs to      eventName:be applied
                typedefault: stringmeasurementsForVfScaling
                description: Event name to which thresholds need to beconstraints:
                  - equal: appliedmeasurementsForVfScaling
            policyNamemetricsPerEventName:
                type: stringlist
                description: Contains TCAeventName Policyand Scopethreshold Namedetails
            policyScope:
        that need to be applied to given  type: stringeventName
                descriptionentry_schema:
 TCA Policy Scope
            policyVersion:
     type: onap.datatypes.monitoring.metricsPerEventName
          type: string
onap.datatypes.monitoring.thresholds:
        derived_from: tosca.datatypes.Root
        description: TCA Policy Scope Versionproperties:
            thresholdsclosedLoopControlName:
                type: liststring
                description: Thresholds Closed Loop Control Name associated with eventName
                entry_schema:
    the threshold
            closedLoopEventStatus:
   type: onap.datatypes.monitoring.thresholds
    onap.datatypes.monitoring.tca_policy:
        derived_fromtype: tosca.datatypes.Rootstring
        properties:
        description: Closed Loop Event  domain:Status of the threshold
                typeconstraints: string
                description: Domain name to which TCA needs to be applied
- valid_values:
                      default:- measurementsForVfScalingONSET
                constraints:
      - ABATED
           - equaldirection:
 measurementsForVfScaling
               metricsPerEventNametype: string
                typedescription: list
Direction of the  threshold
            description: Contains eventName and threshold detailsconstraints:
                    that need to be applied to given eventName
- valid_values:
                      - entry_schema:LESS
                    type: onap.datatypes.monitoring.metricsPerEventName
    onap.datatypes.monitoring.thresholds: - LESS_OR_EQUAL
        derived_from: tosca.datatypes.Root
        properties:
     - GREATER
      closedLoopControlName:
                type: string- GREATER_OR_EQUAL
            fieldPath:
    description: Closed Loop Control Name associated with
      type: string
             the threshold
  description: Json field Path as per CEF message which
   closedLoopEventStatus:
                type: string
needs to be analyzed for TCA
           description: Closed Loop Event Status of the threshold severity:
                constraintstype: string
                description: Threshold - valid_values:Event Severity
                constraints:
      - ONSET
           - valid_values:
          - ABATED
           - direction:CRITICAL
                type: string
     - MAJOR
          description: Direction of the threshold
        -    MINOR
    constraints:
                  - valid_values:WARNING
                      - LESSNORMAL
            thresholdValue:
          - LESS_OR_EQUAL
     type: integer
                - GREATER
  description: Threshold value for the field Path inside
                    - GREATER_OR_EQUALCEF message
            fieldPathversion:
                type: string
                description: JsonVersion fieldnumber Pathassociated aswith per CEF message whichthe threshold




Code Block
languageyml
titleExpected Policy to be Created by CLAMP
linenumberstrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
imports:
    -
      tca_policy_model_dublin.yml
policies:
    -
      needs to be analyzed for TCA
onap.vfirewall.tca:
        type: onap.policy.monitoring.cdap.tca.hi.lo.app
        severityproperties:
                typedomain: stringmeasurementsForVfScaling
            metricsPerEventName: 
   description: Threshold Event Severity
      - 
         constraints:
       eventName: vLoadBalancer
          - valid_values:
     controlLoopSchemaType: VNF
                - CRITICALpolicyScope: "resource=vLoadBalancer;type=configuration"
                policyName: "onap.vfirewall.tca" # Do we need -a MAJOR
name? The unique node name should be enough?
               - MINOR
               policyVersion: "v0.0.1" # This field should be removed as Policy Create/Update API will return the version
       - WARNING
        thresholds: 
             - NORMAL
  - 
         thresholdValue:
                type: integer
 closedLoopControlName: "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A"
               description: Threshold value for the field PathclosedLoopEventStatus: insideONSET
                    CEF message
version: "1.0.2"
             version:
       fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
        type: string
           thresholdValue: 500
    description: Version number associated with the threshold



Code Block
languageyml
titleExpected Policy to be Created by CLAMP
linenumberstrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
imports:
    -
     direction: tcaLESS_policy_model_dublin.yml
policies:
OR_EQUAL
      -
      onap.vfirewall.tca:
        typeseverity: onap.policy.monitoring.cdap.tca.hi.lo.appMAJOR
        properties:
        - 
   domain: measurementsForVfScaling
            metricsPerEventName: 
   closedLoopControlName: "CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B"
        - 
           closedLoopEventStatus: ONSET
    eventName: vLoadBalancer
                controlLoopSchemaTypeversion: VNF"1.0.2"
                policyScope: "resource=vLoadBalancer;type=configuration"
                policyNamefieldPath: "onap.vfirewall.tca" # Do we need a name? The unique node name should be enough?
$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
                    thresholdValue: 5000
        policyVersion: "v0.0.1" # This field should be removed as Policy Create/Update API will return the versiondirection: GREATER_OR_EQUAL
                thresholds: 
                - 
                    closedLoopControlName: "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A"
                    closedLoopEventStatus: ONSET
                    version: "1.0.2"
                    fieldPath: "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated"
                    thresholdValue: 500
                    direction: LESS_OR_EQUAL
                    severity: MAJOR
                - 
                    closedLoopControlName: "severity: CRITICAL


Equivalency Table: Casablanca and Dublin APIs

(Comments pasted from API page)

In an equivalency table, this would be the same as the legacy - createPolicy and updatePolicy.   Probably worth to mention for the benefit of other teams.   The result would support the JSON format, so clients should expect little or no change.

This URL for POST should create a resource that we need to identify

POST
https://{url}:{port}/api/v1/policytypes/
{policy type id}/versions/{version}/policies/

One proposal is to use the closedLoopControlName field:

CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A

and the version in this case:

1.0.2.

The GET for this specific one would be then

GET
https://{url}:{port}/api/v1/policytypes/
{policy type id}/versions/{version}/policies/CL-LBAL-LOW-TRAFFIC-SIG-

...

FB480F95-

...

A453-

...

6F24-

...

B767-FD703241AB1A/versions/1.0.2

They can name the policies however they want. If they want to use Closed Loop Control Name go ahead. The problem with the TCA model is they shove all that detail inside the model and use arrays of Control Loops. But its up to them on how they want their model to look.