aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/swagger/swagger.json584
-rw-r--r--docs/swagger/swagger.pdf8628
-rw-r--r--extra/sql/bulkload/create-tables.sql130
-rw-r--r--extra/sql/dump/test-data.sql92
-rw-r--r--pom.xml14
-rw-r--r--src/main/java/org/onap/clamp/clds/Application.java8
-rw-r--r--src/main/java/org/onap/clamp/clds/ClampInUserAuditorAware.java46
-rw-r--r--src/main/java/org/onap/clamp/clds/filter/ClampCadiFilter.java2
-rw-r--r--src/main/java/org/onap/clamp/clds/model/CldsDictionary.java159
-rw-r--r--src/main/java/org/onap/clamp/clds/model/CldsDictionaryItem.java214
-rw-r--r--src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java57
-rw-r--r--src/main/java/org/onap/clamp/loop/Loop.java25
-rw-r--r--src/main/java/org/onap/clamp/loop/LoopService.java28
-rw-r--r--src/main/java/org/onap/clamp/loop/LoopsRepository.java5
-rw-r--r--src/main/java/org/onap/clamp/loop/common/AuditEntity.java108
-rw-r--r--src/main/java/org/onap/clamp/loop/log/LoopLog.java2
-rw-r--r--src/main/java/org/onap/clamp/loop/log/LoopLogRepository.java4
-rw-r--r--src/main/java/org/onap/clamp/loop/service/Service.java18
-rw-r--r--src/main/java/org/onap/clamp/loop/service/ServicesRepository.java31
-rw-r--r--src/main/java/org/onap/clamp/loop/template/LoopTemplate.java268
-rw-r--r--src/main/java/org/onap/clamp/loop/template/LoopTemplatesRepository.java37
-rw-r--r--src/main/java/org/onap/clamp/loop/template/MicroServiceModel.java217
-rw-r--r--src/main/java/org/onap/clamp/loop/template/MicroServiceModelsRepository.java31
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModel.java239
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModelId.java93
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModelsRepository.java38
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java59
-rw-r--r--src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModel.java194
-rw-r--r--src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModelId.java102
-rw-r--r--src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java64
-rw-r--r--src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyRepository.java4
-rw-r--r--src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java (renamed from src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java)4
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java35
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepository.java4
-rw-r--r--src/main/java/org/onap/clamp/tosca/Dictionary.java174
-rw-r--r--src/main/java/org/onap/clamp/tosca/DictionaryElement.java249
-rw-r--r--src/main/java/org/onap/clamp/tosca/DictionaryElementsRepository.java32
-rw-r--r--src/main/java/org/onap/clamp/tosca/DictionaryRepository.java38
-rw-r--r--src/main/java/org/onap/clamp/util/SemanticVersioning.java76
-rw-r--r--src/main/resources/META-INF/resources/swagger.html411
-rw-r--r--src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java6
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java30
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java4
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java137
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java84
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopToJsonTest.java37
-rw-r--r--src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java161
-rw-r--r--src/test/java/org/onap/clamp/util/SemanticVersioningTest.java71
48 files changed, 10690 insertions, 2364 deletions
diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json
index 0738c6f2..32113ccb 100644
--- a/docs/swagger/swagger.json
+++ b/docs/swagger/swagger.json
@@ -1,16 +1,16 @@
{
"swagger" : "2.0",
"info" : {
- "version" : "4.1.2-SNAPSHOT",
+ "version" : "4.2.0-SNAPSHOT",
"title" : "Clamp Rest API"
},
- "host" : "localhost:34219",
+ "host" : "localhost:33953",
"basePath" : "/restservices/clds/",
"schemes" : [ "http" ],
"paths" : {
"/v2/loop/{loopName}" : {
"get" : {
- "operationId" : "route3",
+ "operationId" : "route20",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -26,13 +26,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route3"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route20"
}
},
"/v2/loop/delete/{loopName}" : {
"put" : {
- "operationId" : "route13",
+ "operationId" : "route30",
"parameters" : [ {
"name" : "loopName",
"in" : "path",
@@ -42,13 +42,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route13"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route30"
}
},
"/v2/loop/deploy/{loopName}" : {
"put" : {
- "operationId" : "route8",
+ "operationId" : "route25",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -64,13 +64,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route8"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route25"
}
},
"/v2/loop/getAllNames" : {
"get" : {
- "operationId" : "route2",
+ "operationId" : "route19",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -83,13 +83,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route2"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route19"
}
},
"/v2/loop/getstatus/{loopName}" : {
"get" : {
- "operationId" : "route14",
+ "operationId" : "route31",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -105,13 +105,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route14"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route31"
}
},
"/v2/loop/restart/{loopName}" : {
"put" : {
- "operationId" : "route11",
+ "operationId" : "route28",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -127,13 +127,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route11"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route28"
}
},
"/v2/loop/stop/{loopName}" : {
"put" : {
- "operationId" : "route10",
+ "operationId" : "route27",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -149,13 +149,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route10"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route27"
}
},
"/v2/loop/submit/{loopName}" : {
"put" : {
- "operationId" : "route12",
+ "operationId" : "route29",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -171,13 +171,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route12"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route29"
}
},
"/v2/loop/svgRepresentation/{loopName}" : {
"get" : {
- "operationId" : "route4",
+ "operationId" : "route21",
"produces" : [ "application/xml" ],
"parameters" : [ {
"name" : "loopName",
@@ -193,13 +193,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route4"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route21"
}
},
"/v2/loop/undeploy/{loopName}" : {
"put" : {
- "operationId" : "route9",
+ "operationId" : "route26",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -215,13 +215,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route9"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route26"
}
},
"/v2/loop/updateGlobalProperties/{loopName}" : {
"post" : {
- "operationId" : "route5",
+ "operationId" : "route22",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -245,13 +245,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route5"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route22"
}
},
"/v2/loop/updateMicroservicePolicy/{loopName}" : {
"post" : {
- "operationId" : "route7",
+ "operationId" : "route24",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -275,13 +275,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route7"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route24"
}
},
"/v2/loop/updateOperationalPolicies/{loopName}" : {
"post" : {
- "operationId" : "route6",
+ "operationId" : "route23",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -305,13 +305,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route6"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route23"
}
},
"/v1/clds/cldsInfo" : {
"get" : {
- "operationId" : "route15",
+ "operationId" : "route32",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -321,13 +321,13 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route15"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route32"
}
},
"/v1/healthcheck" : {
"get" : {
- "operationId" : "route16",
+ "operationId" : "route33",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -337,19 +337,19 @@
}
}
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route16"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route33"
}
},
"/v1/user/getUser" : {
"get" : {
- "operationId" : "route17",
+ "operationId" : "route34",
"produces" : [ "text/plain" ],
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-1",
- "x-routeId" : "route17"
+ "x-camelContextId" : "camel-2",
+ "x-routeId" : "route34"
}
}
},
@@ -357,6 +357,20 @@
"Loop" : {
"type" : "object",
"properties" : {
+ "createdDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedBy" : {
+ "type" : "string"
+ },
+ "createdBy" : {
+ "type" : "string"
+ },
"name" : {
"type" : "string"
},
@@ -375,8 +389,8 @@
"globalPropertiesJson" : {
"$ref" : "#/definitions/JsonObject"
},
- "modelPropertiesJson" : {
- "$ref" : "#/definitions/JsonObject"
+ "modelService" : {
+ "$ref" : "#/definitions/Service"
},
"blueprint" : {
"type" : "string"
@@ -411,6 +425,9 @@
"items" : {
"$ref" : "#/definitions/LoopLog"
}
+ },
+ "loopTemplate" : {
+ "$ref" : "#/definitions/LoopTemplate"
}
},
"x-className" : {
@@ -418,128 +435,62 @@
"format" : "org.onap.clamp.loop.Loop"
}
},
- "JsonArray" : {
+ "MicroServiceModel" : {
"type" : "object",
"properties" : {
- "asBoolean" : {
- "type" : "boolean"
- },
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
- "asString" : {
- "type" : "string"
- },
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
- "asFloat" : {
- "type" : "number",
- "format" : "float"
- },
- "asLong" : {
+ "createdDate" : {
"type" : "integer",
"format" : "int64"
},
- "asInt" : {
+ "updatedDate" : {
"type" : "integer",
- "format" : "int32"
- },
- "asByte" : {
- "type" : "string",
- "format" : "byte"
+ "format" : "int64"
},
- "asCharacter" : {
+ "updatedBy" : {
"type" : "string"
},
- "asBigDecimal" : {
- "type" : "number"
- },
- "asBigInteger" : {
- "type" : "integer"
- },
- "asShort" : {
- "type" : "integer",
- "format" : "int32"
- },
- "asJsonPrimitive" : {
- "$ref" : "#/definitions/JsonPrimitive"
- },
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
- },
- "jsonArray" : {
- "type" : "boolean"
- },
- "jsonObject" : {
- "type" : "boolean"
- },
- "jsonNull" : {
- "type" : "boolean"
- },
- "jsonPrimitive" : {
- "type" : "boolean"
- },
- "asJsonObject" : {
- "$ref" : "#/definitions/JsonObject"
- },
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
- }
- },
- "x-className" : {
- "type" : "string",
- "format" : "com.google.gson.JsonArray"
- }
- },
- "LoopLog" : {
- "type" : "object",
- "properties" : {
- "id" : {
- "type" : "integer",
- "format" : "int64"
+ "createdBy" : {
+ "type" : "string"
},
- "logType" : {
- "type" : "string",
- "enum" : [ "INFO", "WARNING", "ERROR" ]
+ "name" : {
+ "type" : "string"
},
- "logComponent" : {
+ "policyType" : {
"type" : "string"
},
- "message" : {
+ "blueprint" : {
"type" : "string"
},
- "loop" : {
- "$ref" : "#/definitions/Loop"
+ "policyModel" : {
+ "$ref" : "#/definitions/PolicyModel"
},
- "logInstant" : {
- "type" : "integer",
- "format" : "int64"
+ "usedByLoopTemplates" : {
+ "type" : "array",
+ "uniqueItems" : true,
+ "items" : {
+ "$ref" : "#/definitions/TemplateMicroServiceModel"
+ }
}
}
},
- "Number" : {
- "type" : "object"
- },
"JsonPrimitive" : {
"type" : "object",
"properties" : {
+ "asBoolean" : {
+ "type" : "boolean"
+ },
"boolean" : {
"type" : "boolean"
},
"number" : {
"type" : "boolean"
},
- "asBoolean" : {
- "type" : "boolean"
+ "asString" : {
+ "type" : "string"
},
"asNumber" : {
"$ref" : "#/definitions/Number"
},
- "asString" : {
- "type" : "string"
- },
"asDouble" : {
"type" : "number",
"format" : "double"
@@ -576,41 +527,61 @@
"string" : {
"type" : "boolean"
},
+ "asJsonObject" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
- },
"jsonArray" : {
"type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
- "type" : "boolean"
- },
"jsonPrimitive" : {
"type" : "boolean"
},
- "asJsonObject" : {
- "$ref" : "#/definitions/JsonObject"
+ "jsonNull" : {
+ "type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
}
}
},
"MicroServicePolicy" : {
"type" : "object",
"properties" : {
+ "createdDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedBy" : {
+ "type" : "string"
+ },
+ "createdBy" : {
+ "type" : "string"
+ },
"name" : {
"type" : "string"
},
"modelType" : {
"type" : "string"
},
+ "context" : {
+ "type" : "string"
+ },
+ "deviceTypeScope" : {
+ "type" : "string"
+ },
"properties" : {
"$ref" : "#/definitions/JsonObject"
},
@@ -629,6 +600,9 @@
"items" : {
"$ref" : "#/definitions/Loop"
}
+ },
+ "microServiceModel" : {
+ "$ref" : "#/definitions/MicroServiceModel"
}
},
"x-className" : {
@@ -639,21 +613,39 @@
"JsonObject" : {
"type" : "object",
"properties" : {
+ "asBoolean" : {
+ "type" : "boolean"
+ },
+ "asJsonObject" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "asString" : {
+ "type" : "string"
+ },
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
+ "jsonArray" : {
+ "type" : "boolean"
},
- "asBoolean" : {
+ "jsonObject" : {
"type" : "boolean"
},
+ "jsonPrimitive" : {
+ "type" : "boolean"
+ },
+ "jsonNull" : {
+ "type" : "boolean"
+ },
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ },
"asNumber" : {
"$ref" : "#/definitions/Number"
},
- "asString" : {
- "type" : "string"
- },
"asDouble" : {
"type" : "number",
"format" : "double"
@@ -686,39 +678,58 @@
"asShort" : {
"type" : "integer",
"format" : "int32"
+ }
+ },
+ "x-className" : {
+ "type" : "string",
+ "format" : "com.google.gson.JsonObject"
+ }
+ },
+ "PolicyModel" : {
+ "type" : "object",
+ "properties" : {
+ "createdDate" : {
+ "type" : "integer",
+ "format" : "int64"
},
- "jsonArray" : {
- "type" : "boolean"
+ "updatedDate" : {
+ "type" : "integer",
+ "format" : "int64"
},
- "jsonObject" : {
- "type" : "boolean"
+ "updatedBy" : {
+ "type" : "string"
},
- "jsonNull" : {
- "type" : "boolean"
+ "createdBy" : {
+ "type" : "string"
},
- "jsonPrimitive" : {
- "type" : "boolean"
+ "policyModelType" : {
+ "type" : "string"
},
- "asJsonObject" : {
- "$ref" : "#/definitions/JsonObject"
+ "version" : {
+ "type" : "string"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "policyModelTosca" : {
+ "type" : "string"
+ },
+ "policyAcronym" : {
+ "type" : "string"
+ },
+ "policyVariant" : {
+ "type" : "string"
}
- },
- "x-className" : {
- "type" : "string",
- "format" : "com.google.gson.JsonObject"
}
},
- "ExternalComponent" : {
+ "Service" : {
"type" : "object",
"properties" : {
- "state" : {
- "$ref" : "#/definitions/ExternalComponentState"
- },
- "componentName" : {
+ "serviceUuid" : {
"type" : "string"
+ },
+ "serviceDetails" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "resourceDetails" : {
+ "$ref" : "#/definitions/JsonObject"
}
}
},
@@ -734,44 +745,97 @@
"loop" : {
"$ref" : "#/definitions/Loop"
},
+ "policyModel" : {
+ "$ref" : "#/definitions/PolicyModel"
+ },
"jsonRepresentation" : {
"$ref" : "#/definitions/JsonObject"
}
}
},
- "ExternalComponentState" : {
+ "JsonNull" : {
"type" : "object",
"properties" : {
- "stateName" : {
+ "asBoolean" : {
+ "type" : "boolean"
+ },
+ "asJsonObject" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "asString" : {
"type" : "string"
},
- "description" : {
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
+ },
+ "jsonArray" : {
+ "type" : "boolean"
+ },
+ "jsonObject" : {
+ "type" : "boolean"
+ },
+ "jsonPrimitive" : {
+ "type" : "boolean"
+ },
+ "jsonNull" : {
+ "type" : "boolean"
+ },
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ },
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "asFloat" : {
+ "type" : "number",
+ "format" : "float"
+ },
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "asByte" : {
+ "type" : "string",
+ "format" : "byte"
+ },
+ "asCharacter" : {
"type" : "string"
},
- "level" : {
+ "asBigDecimal" : {
+ "type" : "number"
+ },
+ "asBigInteger" : {
+ "type" : "integer"
+ },
+ "asShort" : {
"type" : "integer",
"format" : "int32"
}
}
},
- "JsonNull" : {
+ "JsonArray" : {
"type" : "object",
"properties" : {
- "asJsonPrimitive" : {
- "$ref" : "#/definitions/JsonPrimitive"
- },
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
- },
"asBoolean" : {
"type" : "boolean"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
"asString" : {
"type" : "string"
},
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
"asDouble" : {
"type" : "number",
"format" : "double"
@@ -805,23 +869,145 @@
"type" : "integer",
"format" : "int32"
},
+ "asJsonObject" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
+ },
"jsonArray" : {
"type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
- "asJsonObject" : {
- "$ref" : "#/definitions/JsonObject"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ }
+ },
+ "x-className" : {
+ "type" : "string",
+ "format" : "com.google.gson.JsonArray"
+ }
+ },
+ "LoopLog" : {
+ "type" : "object",
+ "properties" : {
+ "id" : {
+ "type" : "integer",
+ "format" : "int64"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "logType" : {
+ "type" : "string",
+ "enum" : [ "INFO", "WARNING", "ERROR" ]
+ },
+ "logComponent" : {
+ "type" : "string"
+ },
+ "message" : {
+ "type" : "string"
+ },
+ "loop" : {
+ "$ref" : "#/definitions/Loop"
+ },
+ "logInstant" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ },
+ "TemplateMicroServiceModel" : {
+ "type" : "object",
+ "properties" : {
+ "loopTemplate" : {
+ "$ref" : "#/definitions/LoopTemplate"
+ },
+ "microServiceModel" : {
+ "$ref" : "#/definitions/MicroServiceModel"
+ },
+ "flowOrder" : {
+ "type" : "integer",
+ "format" : "int32"
+ }
+ }
+ },
+ "Number" : {
+ "type" : "object"
+ },
+ "ExternalComponent" : {
+ "type" : "object",
+ "properties" : {
+ "state" : {
+ "$ref" : "#/definitions/ExternalComponentState"
+ },
+ "componentName" : {
+ "type" : "string"
+ }
+ }
+ },
+ "LoopTemplate" : {
+ "type" : "object",
+ "properties" : {
+ "createdDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedDate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "updatedBy" : {
+ "type" : "string"
+ },
+ "createdBy" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "blueprint" : {
+ "type" : "string"
+ },
+ "svgRepresentation" : {
+ "type" : "string"
+ },
+ "microServiceModelUsed" : {
+ "type" : "array",
+ "uniqueItems" : true,
+ "items" : {
+ "$ref" : "#/definitions/TemplateMicroServiceModel"
+ }
+ },
+ "modelService" : {
+ "$ref" : "#/definitions/Service"
+ },
+ "maximumInstancesAllowed" : {
+ "type" : "integer",
+ "format" : "int32"
+ }
+ }
+ },
+ "ExternalComponentState" : {
+ "type" : "object",
+ "properties" : {
+ "stateName" : {
+ "type" : "string"
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "level" : {
+ "type" : "integer",
+ "format" : "int32"
}
}
},
diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf
index 29975894..8a34cb5e 100644
--- a/docs/swagger/swagger.pdf
+++ b/docs/swagger/swagger.pdf
@@ -4,16 +4,16 @@
<< /Title (Clamp Rest API)
/Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
/Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
-/CreationDate (D:20190924114758+02'00')
-/ModDate (D:20190924114758+02'00')
+/CreationDate (D:20200116114123+01'00')
+/ModDate (D:20200116114123+01'00')
>>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
/Names 18 0 R
-/Outlines 351 0 R
-/PageLabels 434 0 R
+/Outlines 383 0 R
+/PageLabels 471 0 R
/PageMode /UseOutlines
/OpenAction [7 0 R /FitH 793.0]
/ViewerPreferences << /DisplayDocTitle true
@@ -22,8 +22,8 @@ endobj
endobj
3 0 obj
<< /Type /Pages
-/Count 21
-/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 25 0 R 41 0 R 55 0 R 69 0 R 82 0 R 96 0 R 109 0 R 123 0 R 130 0 R 136 0 R 143 0 R 151 0 R 158 0 R 166 0 R 172 0 R 181 0 R]
+/Count 24
+/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 25 0 R 41 0 R 55 0 R 69 0 R 82 0 R 96 0 R 109 0 R 123 0 R 130 0 R 136 0 R 143 0 R 151 0 R 158 0 R 166 0 R 171 0 R 180 0 R 187 0 R 195 0 R 205 0 R]
>>
endobj
4 0 obj
@@ -80,11 +80,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAA+NotoSerif
/Subtype /TrueType
-/FontDescriptor 436 0 R
+/FontDescriptor 473 0 R
/FirstChar 32
/LastChar 255
-/Widths 438 0 R
-/ToUnicode 437 0 R
+/Widths 475 0 R
+/ToUnicode 474 0 R
>>
endobj
9 0 obj
@@ -1559,7 +1559,7 @@ endobj
/F1.0 8 0 R
>>
>>
-/Annots [190 0 R 191 0 R 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R]
+/Annots [212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R]
>>
endobj
11 0 obj
@@ -3102,11 +3102,11 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R]
+/Annots [284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R]
>>
endobj
13 0 obj
-<< /Length 5124
+<< /Length 9378
>>
stream
q
@@ -3238,7 +3238,7 @@ ET
BT
60.24000000000001 689.3459999999999 Td
/F1.0 10.5 Tf
-<332e31312e204d6963726f53657276696365506f6c696379> Tj
+[<332e31312e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
0.000 0.000 0.000 SCN
@@ -3247,9 +3247,9 @@ ET
0.200 0.200 0.200 SCN
BT
-187.23524999999995 689.3459999999999 Td
+160.51274999999998 689.3459999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -3267,7 +3267,7 @@ ET
BT
552.021 689.3459999999999 Td
/F1.0 10.5 Tf
-<3136> Tj
+<3137> Tj
ET
0.000 0.000 0.000 SCN
@@ -3278,7 +3278,7 @@ ET
BT
60.24000000000001 670.8659999999999 Td
/F1.0 10.5 Tf
-<332e31322e204e756d626572> Tj
+<332e31322e204d6963726f536572766963654d6f64656c> Tj
ET
0.000 0.000 0.000 SCN
@@ -3287,9 +3287,9 @@ ET
0.200 0.200 0.200 SCN
BT
-128.44574999999998 670.8659999999999 Td
+187.23524999999995 670.8659999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -3318,7 +3318,7 @@ ET
BT
60.24000000000001 652.3859999999999 Td
/F1.0 10.5 Tf
-[<332e31332e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+<332e31332e204d6963726f53657276696365506f6c696379> Tj
ET
0.000 0.000 0.000 SCN
@@ -3327,9 +3327,9 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 652.3859999999999 Td
+187.23524999999995 652.3859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -3347,7 +3347,207 @@ ET
BT
552.021 652.3859999999999 Td
/F1.0 10.5 Tf
-<3137> Tj
+<3138> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 633.9059999999998 Td
+/F1.0 10.5 Tf
+<332e31342e204e756d626572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+128.44574999999998 633.9059999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 633.9059999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 633.9059999999998 Td
+/F1.0 10.5 Tf
+<3139> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 615.4259999999998 Td
+/F1.0 10.5 Tf
+[<332e31352e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+176.54625 615.4259999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 615.4259999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 615.4259999999998 Td
+/F1.0 10.5 Tf
+<3139> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 596.9459999999998 Td
+/F1.0 10.5 Tf
+<332e31362e20506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+149.82374999999996 596.9459999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 596.9459999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 596.9459999999998 Td
+/F1.0 10.5 Tf
+<3139> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 578.4659999999998 Td
+/F1.0 10.5 Tf
+<332e31372e2053657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+123.10125 578.4659999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 578.4659999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 578.4659999999998 Td
+/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 559.9859999999999 Td
+/F1.0 10.5 Tf
+[<332e31382e2054> 29.78515625 <656d706c6174654d6963726f536572766963654d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+235.33574999999996 559.9859999999999 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 559.9859999999999 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 559.9859999999999 Td
+/F1.0 10.5 Tf
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -3365,7 +3565,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R]
+/Annots [360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R]
>>
endobj
15 0 obj
@@ -3414,7 +3614,7 @@ ET
BT
85.136384765625 660.036 Td
/F1.0 10.5 Tf
-[<203a20342e312e322d534e415053484f> 20.01953125 <54>] TJ
+[<203a20342e322e302d534e415053484f> 20.01953125 <54>] TJ
ET
0.000 0.000 0.000 SCN
@@ -3447,7 +3647,7 @@ ET
BT
71.30850000000001 592.176 Td
/F1.0 10.5 Tf
-<203a206c6f63616c686f73743a3334323139> Tj
+<203a206c6f63616c686f73743a3333393533> Tj
ET
0.000 0.000 0.000 SCN
@@ -3548,7 +3748,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
>>
@@ -3562,18 +3762,18 @@ endobj
>>
endobj
19 0 obj
-<< /Kids [50 0 R 186 0 R 127 0 R 80 0 R 116 0 R 51 0 R 86 0 R]
+<< /Kids [50 0 R 190 0 R 127 0 R 80 0 R 116 0 R 51 0 R 86 0 R]
>>
endobj
20 0 obj
<< /Type /Font
/BaseFont /AAAAAB+NotoSerif-Bold
/Subtype /TrueType
-/FontDescriptor 440 0 R
+/FontDescriptor 477 0 R
/FirstChar 32
/LastChar 255
-/Widths 442 0 R
-/ToUnicode 441 0 R
+/Widths 479 0 R
+/ToUnicode 478 0 R
>>
endobj
21 0 obj
@@ -3583,11 +3783,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAC+NotoSerif-Italic
/Subtype /TrueType
-/FontDescriptor 444 0 R
+/FontDescriptor 481 0 R
/FirstChar 32
/LastChar 255
-/Widths 446 0 R
-/ToUnicode 445 0 R
+/Widths 483 0 R
+/ToUnicode 482 0 R
>>
endobj
23 0 obj
@@ -4487,7 +4687,7 @@ endobj
/F1.0 8 0 R
/F4.0 31 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [29 0 R 34 0 R]
@@ -4517,11 +4717,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAD+mplus1mn-regular
/Subtype /TrueType
-/FontDescriptor 448 0 R
+/FontDescriptor 485 0 R
/FirstChar 32
/LastChar 255
-/Widths 450 0 R
-/ToUnicode 449 0 R
+/Widths 487 0 R
+/ToUnicode 486 0 R
>>
endobj
32 0 obj
@@ -5884,7 +6084,7 @@ endobj
/F1.0 8 0 R
/F4.0 31 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [47 0 R]
@@ -5925,8 +6125,8 @@ endobj
>>
endobj
51 0 obj
-<< /Limits [(_responses_3) (_route12)]
-/Names [(_responses_3) 37 0 R (_responses_4) 43 0 R (_responses_5) 46 0 R (_responses_6) 52 0 R (_responses_7) 58 0 R (_responses_8) 63 0 R (_responses_9) 70 0 R (_route10) 66 0 R (_route11) 61 0 R (_route12) 73 0 R]
+<< /Limits [(_responses_3) (_route25)]
+/Names [(_responses_3) 37 0 R (_responses_4) 43 0 R (_responses_5) 46 0 R (_responses_6) 52 0 R (_responses_7) 58 0 R (_responses_8) 63 0 R (_responses_9) 70 0 R (_route19) 49 0 R (_route20) 117 0 R (_route21) 78 0 R (_route22) 91 0 R (_route23) 107 0 R (_route24) 100 0 R (_route25) 44 0 R]
>>
endobj
52 0 obj
@@ -7129,7 +7329,7 @@ endobj
/F1.0 8 0 R
/F4.0 31 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [59 0 R 64 0 R]
@@ -8599,7 +8799,7 @@ endobj
/F1.0 8 0 R
/F4.0 31 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [71 0 R 76 0 R]
@@ -9962,7 +10162,7 @@ endobj
/F4.0 31 0 R
/F3.0 22 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [89 0 R 93 0 R]
@@ -9978,8 +10178,8 @@ endobj
[82 0 R /XYZ 0 597.0000000000003 null]
endobj
86 0 obj
-<< /Limits [(_route13) (_version_information)]
-/Names [(_route13) 39 0 R (_route14) 56 0 R (_route15) 27 0 R (_route16) 32 0 R (_route17) 36 0 R (_route2) 49 0 R (_route3) 117 0 R (_route4) 78 0 R (_route5) 91 0 R (_route6) 107 0 R (_route7) 100 0 R (_route8) 44 0 R (_route9) 85 0 R (_uri_scheme) 23 0 R (_version_information) 21 0 R]
+<< /Limits [(_route26) (_version_information)]
+/Names [(_route26) 85 0 R (_route27) 66 0 R (_route28) 61 0 R (_route29) 73 0 R (_route30) 39 0 R (_route31) 56 0 R (_route32) 27 0 R (_route33) 32 0 R (_route34) 36 0 R (_service) 206 0 R (_templatemicroservicemodel) 209 0 R (_uri_scheme) 23 0 R (_version_information) 21 0 R]
>>
endobj
87 0 obj
@@ -11153,7 +11353,7 @@ endobj
/F4.0 31 0 R
/F3.0 22 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [97 0 R 102 0 R 104 0 R]
@@ -12542,7 +12742,7 @@ endobj
/F1.0 8 0 R
/F4.0 31 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [111 0 R 113 0 R 120 0 R]
@@ -13832,7 +14032,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
>>
@@ -13848,7 +14048,7 @@ endobj
endobj
127 0 obj
<< /Limits [(_parameters_12) (_produces)]
-/Names [(_parameters_12) 118 0 R (_parameters_2) 45 0 R (_parameters_3) 57 0 R (_parameters_4) 62 0 R (_parameters_5) 67 0 R (_parameters_6) 74 0 R (_parameters_7) 79 0 R (_parameters_8) 87 0 R (_parameters_9) 92 0 R (_paths) 26 0 R (_produces) 30 0 R]
+/Names [(_parameters_12) 118 0 R (_parameters_2) 45 0 R (_parameters_3) 57 0 R (_parameters_4) 62 0 R (_parameters_5) 67 0 R (_parameters_6) 74 0 R (_parameters_7) 79 0 R (_parameters_8) 87 0 R (_parameters_9) 92 0 R (_paths) 26 0 R (_policymodel) 203 0 R (_produces) 30 0 R]
>>
endobj
128 0 obj
@@ -15427,7 +15627,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [131 0 R 134 0 R]
@@ -17135,7 +17335,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [137 0 R 138 0 R 139 0 R 140 0 R]
@@ -18864,7 +19064,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [144 0 R 145 0 R 146 0 R 147 0 R 148 0 R]
@@ -20692,7 +20892,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [152 0 R 153 0 R 154 0 R 155 0 R 156 0 R]
@@ -22426,7 +22626,7 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
/Annots [160 0 R 161 0 R 162 0 R 163 0 R 164 0 R]
@@ -22476,7 +22676,7 @@ endobj
>>
endobj
165 0 obj
-<< /Length 22082
+<< /Length 21453
>>
stream
q
@@ -23650,7 +23850,7 @@ S
BT
51.24 265.5130000000003 Td
/F2.0 10.5 Tf
-<64636165426c75657072696e744964> Tj
+[<6372656174656442> 20.01953125 <79>] TJ
ET
@@ -23732,7 +23932,7 @@ S
BT
51.24 227.95300000000037 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
+<6372656174656444617465> Tj
ET
@@ -23779,7 +23979,7 @@ S
BT
272.17692192000004 220.81300000000036 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -23814,7 +24014,7 @@ S
BT
51.24 190.39300000000037 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
+<64636165426c75657072696e744964> Tj
ET
@@ -23896,7 +24096,7 @@ S
BT
51.24 152.83300000000037 Td
/F2.0 10.5 Tf
-<676c6f62616c50726f706572746965734a736f6e> Tj
+[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
ET
@@ -23939,21 +24139,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
272.17692192000004 145.69300000000035 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -23986,7 +24178,7 @@ S
BT
51.24 115.27300000000035 Td
/F2.0 10.5 Tf
-<6c617374436f6d70757465645374617465> Tj
+[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
ET
@@ -24031,16 +24223,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 115.27300000000035 Td
-/F1.0 10.5 Tf
-[<656e756d202844455349474e2c205355424d49545445442c204445504c4f> 29.78515625 <5945442c2052> 9.765625 <554e4e494e472c>] TJ
-ET
-
-
-BT
-272.17692192000004 100.99300000000035 Td
+272.17692192000004 108.13300000000035 Td
/F1.0 10.5 Tf
-[<53> 20.01953125 <54> 20.01953125 <4f505045442c20494e5f455252> 20.01953125 <4f522c2057> 60.05859375 <414954494e4729>] TJ
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -24075,7 +24260,7 @@ S
BT
51.24 77.71300000000032 Td
/F2.0 10.5 Tf
-<6c6f6f704c6f6773> Tj
+<676c6f62616c50726f706572746965734a736f6e> Tj
ET
@@ -24122,31 +24307,17 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 70.57300000000032 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-280.76592192000004 70.57300000000032 Td
+272.17692192000004 70.57300000000032 Td
/F1.0 10.5 Tf
-<4c6f6f704c6f67> Tj
+<4a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-324.10992192000003 70.57300000000032 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
-ET
-
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -24182,10 +24353,10 @@ endobj
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
-/Annots [168 0 R 169 0 R 170 0 R]
+/Annots [168 0 R 169 0 R]
>>
endobj
167 0 obj
@@ -24203,20 +24374,12 @@ endobj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 142.62700000000038 325.32792192000005 156.90700000000038]
+/Rect [272.17692192000004 67.50700000000032 325.32792192000005 81.78700000000032]
/Type /Annot
>>
endobj
170 0 obj
-<< /Border [0 0 0]
-/Dest (_looplog)
-/Subtype /Link
-/Rect [280.76592192000004 67.50700000000032 324.10992192000003 81.78700000000032]
-/Type /Annot
->>
-endobj
-171 0 obj
-<< /Length 21061
+<< /Length 22836
>>
stream
q
@@ -24269,6 +24432,46 @@ f
269.177 544.920 294.583 37.560 re
f
0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 507.360 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 507.360 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 469.800 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 469.800 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 432.240 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 432.240 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.680 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.680 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 357.120 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 357.120 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -24371,7 +24574,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-<6d6963726f53657276696365506f6c6963696573> Tj
+<6c617374436f6d70757465645374617465> Tj
ET
@@ -24414,33 +24617,18 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 709.333 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-280.76592192000004 709.333 Td
+272.17692192000004 716.473 Td
/F1.0 10.5 Tf
-<4d6963726f53657276696365506f6c696379> Tj
+[<656e756d202844455349474e2c205355424d49545445442c204445504c4f> 29.78515625 <5945442c2052> 9.765625 <554e4e494e472c>] TJ
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
-376.69392192000004 709.333 Td
+272.17692192000004 702.193 Td
/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+[<53> 20.01953125 <54> 20.01953125 <4f505045442c20494e5f455252> 20.01953125 <4f522c2057> 60.05859375 <414954494e4729>] TJ
ET
0.000 0.000 0.000 scn
@@ -24475,7 +24663,7 @@ S
BT
51.24 678.913 Td
/F2.0 10.5 Tf
-<6d6f64656c50726f706572746965734a736f6e> Tj
+<6c6f6f704c6f6773> Tj
ET
@@ -24522,17 +24710,31 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.7729999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-272.17692192000004 671.7729999999999 Td
+280.76592192000004 671.7729999999999 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<4c6f6f704c6f67> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+324.10992192000003 671.7729999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -24565,7 +24767,7 @@ S
BT
51.24 641.3529999999998 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
@@ -24608,13 +24810,21 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
272.17692192000004 634.2129999999999 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -24647,7 +24857,7 @@ S
BT
51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-[<6f706572> 20.01953125 <6174696f6e616c506f6c6963696573>] TJ
+<6d6963726f53657276696365506f6c6963696573> Tj
ET
@@ -24707,14 +24917,14 @@ ET
BT
280.76592192000004 596.6529999999999 Td
/F1.0 10.5 Tf
-[<4f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+<4d6963726f53657276696365506f6c696379> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
BT
-370.37271684187505 596.6529999999999 Td
+376.69392192000004 596.6529999999999 Td
/F1.0 10.5 Tf
[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
@@ -24751,7 +24961,7 @@ S
BT
51.24 566.233 Td
/F2.0 10.5 Tf
-<737667526570726573656e746174696f6e> Tj
+<6d6f64656c53657276696365> Tj
ET
@@ -24794,19 +25004,459 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
272.17692192000004 559.093 Td
/F1.0 10.5 Tf
+<53657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.920 m
+269.177 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.360 m
+269.177 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 545.170 m
+48.240 507.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.170 m
+269.177 507.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 528.673 Td
+/F2.0 10.5 Tf
+<6e616d65> Tj
+ET
+
+
+BT
+51.24 514.3929999999999 Td
+ET
+
+
+BT
+51.24 514.3929999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.920 m
+563.760 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.360 m
+563.760 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.170 m
+269.177 507.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 545.170 m
+563.760 507.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 521.5329999999999 Td
+/F1.0 10.5 Tf
<737472696e67> Tj
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.360 m
+269.177 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.800 m
+269.177 469.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.610 m
+48.240 469.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.610 m
+269.177 469.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 491.1129999999999 Td
+/F2.0 10.5 Tf
+[<6f706572> 20.01953125 <6174696f6e616c506f6c6963696573>] TJ
+ET
+
+
+BT
+51.24 476.83299999999986 Td
+ET
+
+
+BT
+51.24 476.83299999999986 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.360 m
+563.760 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.800 m
+563.760 469.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.610 m
+269.177 469.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 507.610 m
+563.760 469.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 483.9729999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 483.9729999999999 Td
+/F1.0 10.5 Tf
+[<4f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+370.37271684187505 483.9729999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.800 m
+269.177 469.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.240 m
+269.177 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 470.050 m
+48.240 431.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 470.050 m
+269.177 431.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 453.55299999999994 Td
+/F2.0 10.5 Tf
+<737667526570726573656e746174696f6e> Tj
+ET
+
+
+BT
+51.24 439.2729999999999 Td
+ET
+
+
+BT
+51.24 439.2729999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.800 m
+563.760 469.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.240 m
+563.760 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 470.050 m
+269.177 431.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 470.050 m
+563.760 431.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 446.41299999999995 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.240 m
+269.177 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.680 m
+269.177 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.490 m
+48.240 394.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.490 m
+269.177 394.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 415.993 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 401.71299999999997 Td
+ET
+
+
+BT
+51.24 401.71299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.240 m
+563.760 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.680 m
+563.760 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.490 m
+269.177 394.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 432.490 m
+563.760 394.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 408.853 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.680 m
+269.177 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.120 m
+269.177 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.930 m
+48.240 356.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.930 m
+269.177 356.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 378.43300000000005 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 364.153 Td
+ET
+
+
+BT
+51.24 364.153 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.680 m
+563.760 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.120 m
+563.760 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.930 m
+269.177 356.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 394.930 m
+563.760 356.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 371.29300000000006 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24 509.49600000000015 Td
+48.24 321.6960000000001 Td
/F2.0 18 Tf
<332e31302e204c6f6f704c6f67> Tj
ET
@@ -24814,83 +25464,2969 @@ ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 469.560 220.937 23.280 re
+48.240 281.760 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 469.560 294.583 23.280 re
+269.177 281.760 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 432.000 220.937 37.560 re
+48.240 244.200 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 432.000 294.583 37.560 re
+269.177 244.200 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 394.440 220.937 37.560 re
+48.240 206.640 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 394.440 294.583 37.560 re
+269.177 206.640 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 356.880 220.937 37.560 re
+48.240 169.080 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 356.880 294.583 37.560 re
+269.177 169.080 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 319.320 220.937 37.560 re
+48.240 131.520 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 319.320 294.583 37.560 re
+269.177 131.520 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 281.760 220.937 37.560 re
+48.240 93.960 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 281.760 294.583 37.560 re
+269.177 93.960 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 244.200 220.937 37.560 re
+48.240 56.400 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
+269.177 56.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 305.040 m
+269.177 305.040 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 281.760 m
+269.177 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 305.290 m
+48.240 281.010 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 305.290 m
+269.177 281.010 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 289.293 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 305.040 m
+563.760 305.040 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 281.760 m
+563.760 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 305.290 m
+269.177 281.010 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 305.290 m
+563.760 281.010 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 289.293 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 281.760 m
+269.177 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.200 m
+269.177 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 282.010 m
+48.240 243.950 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.010 m
+269.177 243.950 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 265.513 Td
+/F2.0 10.5 Tf
+<6964> Tj
+ET
+
+
+BT
+51.24 251.23299999999998 Td
+ET
+
+
+BT
+51.24 251.23299999999998 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.760 m
+563.760 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.200 m
+563.760 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.010 m
+269.177 243.950 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 282.010 m
+563.760 243.950 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 258.373 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.200 m
+269.177 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.640 m
+269.177 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.450 m
+48.240 206.390 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.450 m
+269.177 206.390 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 227.95300000000003 Td
+/F2.0 10.5 Tf
+<6c6f67436f6d706f6e656e74> Tj
+ET
+
+
+BT
+51.24 213.67300000000003 Td
+ET
+
+
+BT
+51.24 213.67300000000003 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.200 m
+563.760 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.640 m
+563.760 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.450 m
+269.177 206.390 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 244.450 m
+563.760 206.390 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 220.81300000000002 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.640 m
+269.177 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.080 m
+269.177 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.890 m
+48.240 168.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.890 m
+269.177 168.830 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 190.39300000000003 Td
+/F2.0 10.5 Tf
+<6c6f67496e7374616e74> Tj
+ET
+
+
+BT
+51.24 176.11300000000003 Td
+ET
+
+
+BT
+51.24 176.11300000000003 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.640 m
+563.760 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.080 m
+563.760 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.890 m
+269.177 168.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 206.890 m
+563.760 168.830 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 183.25300000000001 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.080 m
+269.177 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.520 m
+269.177 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.330 m
+48.240 131.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.330 m
+269.177 131.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 152.83300000000003 Td
+/F2.0 10.5 Tf
+<6c6f6754797065> Tj
+ET
+
+
+BT
+51.24 138.55300000000003 Td
+ET
+
+
+BT
+51.24 138.55300000000003 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.080 m
+563.760 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.520 m
+563.760 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.330 m
+269.177 131.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 169.330 m
+563.760 131.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 145.693 Td
+/F1.0 10.5 Tf
+[<656e756d2028494e464f2c2057> 60.05859375 <41524e494e472c20455252> 20.01953125 <4f5229>] TJ
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.520 m
+269.177 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.960 m
+269.177 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.770 m
+48.240 93.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.770 m
+269.177 93.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 115.27300000000001 Td
+/F2.0 10.5 Tf
+<6c6f6f70> Tj
+ET
+
+
+BT
+51.24 100.99300000000001 Td
+ET
+
+
+BT
+51.24 100.99300000000001 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.520 m
+563.760 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.960 m
+563.760 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.770 m
+269.177 93.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 131.770 m
+563.760 93.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 108.13300000000001 Td
+/F1.0 10.5 Tf
+<4c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.960 m
+269.177 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 56.400 m
+269.177 56.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 94.210 m
+48.240 56.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.210 m
+269.177 56.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 77.71300000000001 Td
+/F2.0 10.5 Tf
+<6d657373616765> Tj
+ET
+
+
+BT
+51.24 63.43300000000001 Td
+ET
+
+
+BT
+51.24 63.43300000000001 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.960 m
+563.760 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 56.400 m
+563.760 56.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.210 m
+269.177 56.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 94.210 m
+563.760 56.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 70.57300000000001 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+49.24 14.388 Td
+/F1.0 9 Tf
+<3136> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+171 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 170 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 20 0 R
+/F3.0 22 0 R
+/F1.0 8 0 R
+>>
+/XObject << /Stamp1 382 0 R
+>>
+>>
+/Annots [172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 178 0 R]
+>>
+endobj
+172 0 obj
+<< /Border [0 0 0]
+/Dest (_looplog)
+/Subtype /Link
+/Rect [280.76592192000004 668.707 324.10992192000003 682.987]
+/Type /Annot
+>>
+endobj
+173 0 obj
+<< /Border [0 0 0]
+/Dest (_looptemplate)
+/Subtype /Link
+/Rect [272.17692192000004 631.1469999999999 343.82067777937505 645.4269999999999]
+/Type /Annot
+>>
+endobj
+174 0 obj
+<< /Border [0 0 0]
+/Dest (_microservicepolicy)
+/Subtype /Link
+/Rect [280.76592192000004 593.587 376.69392192000004 607.867]
+/Type /Annot
+>>
+endobj
+175 0 obj
+<< /Border [0 0 0]
+/Dest (_service)
+/Subtype /Link
+/Rect [272.17692192000004 556.027 308.65392192 570.307]
+/Type /Annot
+>>
+endobj
+176 0 obj
+<< /Border [0 0 0]
+/Dest (_operationalpolicy)
+/Subtype /Link
+/Rect [280.76592192000004 480.90699999999987 370.37271684187505 495.1869999999999]
+/Type /Annot
+>>
+endobj
+177 0 obj
+[171 0 R /XYZ 0 345.12000000000006 null]
+endobj
+178 0 obj
+<< /Border [0 0 0]
+/Dest (_loop)
+/Subtype /Link
+/Rect [272.17692192000004 105.06700000000001 297.27192192000007 119.34700000000001]
+/Type /Annot
+>>
+endobj
+179 0 obj
+<< /Length 20491
+>>
+stream
+q
+/DeviceRGB cs
+0.200 0.200 0.200 scn
+/DeviceRGB CS
+0.200 0.200 0.200 SCN
+
+BT
+48.24 734.976 Td
+/F2.0 18 Tf
+[<332e31312e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 695.040 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 695.040 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 657.480 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 657.480 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 619.920 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 619.920 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 582.360 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 582.360 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 544.800 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 544.800 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 507.240 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 507.240 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 469.680 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 469.680 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 432.120 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 432.120 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 394.560 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 394.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 357.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 357.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 319.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 319.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 718.320 m
+269.177 718.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 695.040 m
+269.177 695.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 718.570 m
+48.240 694.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 718.570 m
+269.177 694.290 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 702.573 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 718.320 m
+563.760 718.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 695.040 m
+563.760 695.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 718.570 m
+269.177 694.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 718.570 m
+563.760 694.290 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 702.573 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.040 m
+269.177 695.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.480 m
+269.177 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.290 m
+48.240 657.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.290 m
+269.177 657.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 678.7930000000001 Td
+/F2.0 10.5 Tf
+<626c75657072696e74> Tj
+ET
+
+
+BT
+51.24 664.513 Td
+ET
+
+
+BT
+51.24 664.513 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.040 m
+563.760 695.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.480 m
+563.760 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.290 m
+269.177 657.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 695.290 m
+563.760 657.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.653 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.480 m
+269.177 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 619.920 m
+269.177 619.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.730 m
+48.240 619.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.730 m
+269.177 619.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 641.233 Td
+/F2.0 10.5 Tf
+[<6372656174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 626.953 Td
+ET
+
+
+BT
+51.24 626.953 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.480 m
+563.760 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 619.920 m
+563.760 619.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.730 m
+269.177 619.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 657.730 m
+563.760 619.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 634.093 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 619.920 m
+269.177 619.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.360 m
+269.177 582.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.170 m
+48.240 582.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.170 m
+269.177 582.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 603.673 Td
+/F2.0 10.5 Tf
+<6372656174656444617465> Tj
+ET
+
+
+BT
+51.24 589.393 Td
+ET
+
+
+BT
+51.24 589.393 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 619.920 m
+563.760 619.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.360 m
+563.760 582.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.170 m
+269.177 582.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 620.170 m
+563.760 582.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 596.533 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.360 m
+269.177 582.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.800 m
+269.177 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.610 m
+48.240 544.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.610 m
+269.177 544.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 566.113 Td
+/F2.0 10.5 Tf
+<6d6178696d756d496e7374616e636573416c6c6f776564> Tj
+ET
+
+
+BT
+51.24 551.833 Td
+ET
+
+
+BT
+51.24 551.833 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.360 m
+563.760 582.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.800 m
+563.760 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.610 m
+269.177 544.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 582.610 m
+563.760 544.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 558.973 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74333229> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.800 m
+269.177 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.240 m
+269.177 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 545.050 m
+48.240 506.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.050 m
+269.177 506.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 528.5530000000001 Td
+/F2.0 10.5 Tf
+<6d6963726f536572766963654d6f64656c55736564> Tj
+ET
+
+
+BT
+51.24 514.273 Td
+ET
+
+
+BT
+51.24 514.273 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.800 m
+563.760 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.240 m
+563.760 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.050 m
+269.177 506.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 545.050 m
+563.760 506.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 521.413 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 521.413 Td
+/F1.0 10.5 Tf
+[<54> 29.78515625 <656d706c6174654d6963726f536572766963654d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+424.355677779375 521.413 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.240 m
+269.177 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.680 m
+269.177 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.490 m
+48.240 469.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.490 m
+269.177 469.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 490.993 Td
+/F2.0 10.5 Tf
+<6d6f64656c53657276696365> Tj
+ET
+
+
+BT
+51.24 476.71299999999997 Td
+ET
+
+
+BT
+51.24 476.71299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.240 m
+563.760 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.680 m
+563.760 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.490 m
+269.177 469.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 507.490 m
+563.760 469.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 483.853 Td
+/F1.0 10.5 Tf
+<53657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.680 m
+269.177 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.120 m
+269.177 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.930 m
+48.240 431.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.930 m
+269.177 431.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 453.43300000000005 Td
+/F2.0 10.5 Tf
+<6e616d65> Tj
+ET
+
+
+BT
+51.24 439.153 Td
+ET
+
+
+BT
+51.24 439.153 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.680 m
+563.760 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.120 m
+563.760 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.930 m
+269.177 431.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 469.930 m
+563.760 431.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 446.29300000000006 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.120 m
+269.177 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.560 m
+269.177 394.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.370 m
+48.240 394.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.370 m
+269.177 394.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 415.873 Td
+/F2.0 10.5 Tf
+<737667526570726573656e746174696f6e> Tj
+ET
+
+
+BT
+51.24 401.59299999999996 Td
+ET
+
+
+BT
+51.24 401.59299999999996 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.120 m
+563.760 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.560 m
+563.760 394.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.370 m
+269.177 394.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 432.370 m
+563.760 394.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 408.733 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.560 m
+269.177 394.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.000 m
+269.177 357.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.810 m
+48.240 356.750 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.810 m
+269.177 356.750 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 378.313 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 364.033 Td
+ET
+
+
+BT
+51.24 364.033 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.560 m
+563.760 394.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.000 m
+563.760 357.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.810 m
+269.177 356.750 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 394.810 m
+563.760 356.750 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 371.173 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.000 m
+269.177 357.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.440 m
+269.177 319.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.250 m
+48.240 319.190 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.250 m
+269.177 319.190 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 340.753 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 326.47299999999996 Td
+ET
+
+
+BT
+51.24 326.47299999999996 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.000 m
+563.760 357.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.440 m
+563.760 319.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.250 m
+269.177 319.190 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 357.250 m
+563.760 319.190 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 333.613 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 284.016 Td
+/F2.0 18 Tf
+<332e31322e204d6963726f536572766963654d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 244.080 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 244.080 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 206.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 206.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 168.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 168.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 131.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 131.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 93.840 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 93.840 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 56.280 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 56.280 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 267.360 m
+269.177 267.360 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 244.080 m
+269.177 244.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 267.610 m
+48.240 243.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 267.610 m
+269.177 243.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 251.61299999999994 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 267.360 m
+563.760 267.360 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 244.080 m
+563.760 244.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 267.610 m
+269.177 243.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 267.610 m
+563.760 243.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 251.61299999999994 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.080 m
+269.177 244.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.520 m
+269.177 206.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.330 m
+48.240 206.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.330 m
+269.177 206.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 227.83299999999997 Td
+/F2.0 10.5 Tf
+<626c75657072696e74> Tj
+ET
+
+
+BT
+51.24 213.55299999999997 Td
+ET
+
+
+BT
+51.24 213.55299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.080 m
+563.760 244.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.520 m
+563.760 206.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.330 m
+269.177 206.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 244.330 m
+563.760 206.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 220.69299999999996 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.520 m
+269.177 206.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 168.960 m
+269.177 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.770 m
+48.240 168.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.770 m
+269.177 168.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 190.27299999999997 Td
+/F2.0 10.5 Tf
+[<6372656174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 175.99299999999997 Td
+ET
+
+
+BT
+51.24 175.99299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.520 m
+563.760 206.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 168.960 m
+563.760 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.770 m
+269.177 168.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 206.770 m
+563.760 168.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 183.13299999999995 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 168.960 m
+269.177 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.400 m
+269.177 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.210 m
+48.240 131.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.210 m
+269.177 131.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 152.71299999999997 Td
+/F2.0 10.5 Tf
+<6372656174656444617465> Tj
+ET
+
+
+BT
+51.24 138.43299999999996 Td
+ET
+
+
+BT
+51.24 138.43299999999996 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 168.960 m
+563.760 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.400 m
+563.760 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.210 m
+269.177 131.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 169.210 m
+563.760 131.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 145.57299999999995 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.400 m
+269.177 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.840 m
+269.177 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.650 m
+48.240 93.590 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.650 m
+269.177 93.590 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 115.15299999999995 Td
+/F2.0 10.5 Tf
+<6e616d65> Tj
+ET
+
+
+BT
+51.24 100.87299999999995 Td
+ET
+
+
+BT
+51.24 100.87299999999995 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.400 m
+563.760 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.840 m
+563.760 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.650 m
+269.177 93.590 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 131.650 m
+563.760 93.590 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 108.01299999999995 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.840 m
+269.177 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 56.280 m
+269.177 56.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 94.090 m
+48.240 56.030 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.090 m
+269.177 56.030 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 77.59299999999995 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c> Tj
+ET
+
+
+BT
+51.24 63.312999999999946 Td
+ET
+
+
+BT
+51.24 63.312999999999946 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.840 m
+563.760 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 56.280 m
+563.760 56.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.090 m
+269.177 56.030 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 94.090 m
+563.760 56.030 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 70.45299999999995 Td
+/F1.0 10.5 Tf
+<506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.698 14.388 Td
+/F1.0 9 Tf
+<3137> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+180 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 179 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 20 0 R
+/F3.0 22 0 R
+/F1.0 8 0 R
+>>
+/XObject << /Stamp1 382 0 R
+>>
+>>
+/Annots [182 0 R 183 0 R 185 0 R]
+>>
+endobj
+181 0 obj
+[180 0 R /XYZ 0 792.0 null]
+endobj
+182 0 obj
+<< /Border [0 0 0]
+/Dest (_templatemicroservicemodel)
+/Subtype /Link
+/Rect [280.76592192000004 518.3470000000001 424.355677779375 532.6270000000001]
+/Type /Annot
+>>
+endobj
+183 0 obj
+<< /Border [0 0 0]
+/Dest (_service)
+/Subtype /Link
+/Rect [272.17692192000004 480.787 308.65392192 495.067]
+/Type /Annot
+>>
+endobj
+184 0 obj
+[180 0 R /XYZ 0 307.44 null]
+endobj
+185 0 obj
+<< /Border [0 0 0]
+/Dest (_policymodel)
+/Subtype /Link
+/Rect [272.17692192000004 67.38699999999994 333.47592192 81.66699999999994]
+/Type /Annot
+>>
+endobj
+186 0 obj
+<< /Length 21812
+>>
+stream
+q
+/DeviceRGB cs
+1.000 1.000 1.000 scn
+48.240 732.720 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 732.720 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 695.160 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 695.160 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 657.600 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 657.600 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 620.040 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 620.040 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 582.480 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 582.480 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+/DeviceRGB CS
+0.867 0.867 0.867 SCN
+48.240 756.000 m
+269.177 756.000 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 732.720 m
+269.177 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 756.250 m
+48.240 731.970 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.250 m
+269.177 731.970 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 740.2529999999999 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.000 m
+563.760 756.000 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 732.720 m
+563.760 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.250 m
+269.177 731.970 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 756.250 m
+563.760 731.970 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 740.2529999999999 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 732.720 m
+269.177 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.160 m
+269.177 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 732.970 m
+48.240 694.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.970 m
+269.177 694.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 716.473 Td
+/F2.0 10.5 Tf
+<706f6c69637954797065> Tj
+ET
+
+
+BT
+51.24 702.193 Td
+ET
+
+
+BT
+51.24 702.193 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.720 m
+563.760 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.160 m
+563.760 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.970 m
+269.177 694.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 732.970 m
+563.760 694.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 709.333 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.160 m
+269.177 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.600 m
+269.177 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.410 m
+48.240 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 678.913 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 664.633 Td
+ET
+
+
+BT
+51.24 664.633 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.160 m
+563.760 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.600 m
+563.760 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 695.410 m
+563.760 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.773 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.600 m
+269.177 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.040 m
+269.177 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.850 m
+48.240 619.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.850 m
+269.177 619.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 641.3530000000001 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 627.073 Td
+ET
+
+
+BT
+51.24 627.073 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.600 m
+563.760 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.040 m
+563.760 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.850 m
+269.177 619.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 657.850 m
+563.760 619.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 634.213 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.040 m
+269.177 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.480 m
+269.177 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.290 m
+48.240 582.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.290 m
+269.177 582.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 603.7929999999999 Td
+/F2.0 10.5 Tf
+[<7573656442> 20.01953125 <794c6f6f7054> 29.78515625 <656d706c61746573>] TJ
+ET
+
+
+BT
+51.24 589.5129999999999 Td
+ET
+
+
+BT
+51.24 589.5129999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.040 m
+563.760 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.480 m
+563.760 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.290 m
+269.177 582.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 620.290 m
+563.760 582.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+[<54> 29.78515625 <656d706c6174654d6963726f536572766963654d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+424.355677779375 596.6529999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 547.056 Td
+/F2.0 18 Tf
+<332e31332e204d6963726f53657276696365506f6c696379> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 507.120 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 507.120 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 469.560 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 469.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 432.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 432.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 356.880 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 356.880 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.320 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 281.760 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 281.760 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 244.200 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
269.177 244.200 294.583 37.560 re
f
0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 206.640 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 206.640 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 169.080 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 169.080 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 131.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 131.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 93.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 93.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 56.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 56.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 492.840 m
-269.177 492.840 l
+48.240 530.400 m
+269.177 530.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 469.560 m
-269.177 469.560 l
+48.240 507.120 m
+269.177 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 493.090 m
-48.240 468.810 l
+48.240 530.650 m
+48.240 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 493.090 m
-269.177 468.810 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
1 w
@@ -24898,7 +28434,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 477.0930000000001 Td
+51.24 514.653 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -24906,26 +28442,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 492.840 m
-563.760 492.840 l
+269.177 530.400 m
+563.760 530.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 469.560 m
-563.760 469.560 l
+269.177 507.120 m
+563.760 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 493.090 m
-269.177 468.810 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 493.090 m
-563.760 468.810 l
+563.760 530.650 m
+563.760 506.370 l
S
[ ] 0 d
1 w
@@ -24933,7 +28469,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 477.0930000000001 Td
+272.17692192000004 514.653 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -24941,6 +28477,88 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
+48.240 507.120 m
+269.177 507.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.560 m
+269.177 469.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.370 m
+48.240 469.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.370 m
+269.177 469.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 490.8730000000001 Td
+/F2.0 10.5 Tf
+<636f6e74657874> Tj
+ET
+
+
+BT
+51.24 476.5930000000001 Td
+ET
+
+
+BT
+51.24 476.5930000000001 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.120 m
+563.760 507.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.560 m
+563.760 469.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.370 m
+269.177 469.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 507.370 m
+563.760 469.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 483.7330000000001 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
48.240 469.560 m
269.177 469.560 l
S
@@ -24970,7 +28588,7 @@ S
BT
51.24 453.31300000000005 Td
/F2.0 10.5 Tf
-<6964> Tj
+[<6372656174656442> 20.01953125 <79>] TJ
ET
@@ -25017,7 +28635,7 @@ S
BT
272.17692192000004 446.17300000000006 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -25052,7 +28670,7 @@ S
BT
51.24 415.7530000000001 Td
/F2.0 10.5 Tf
-<6c6f67436f6d706f6e656e74> Tj
+<6372656174656444617465> Tj
ET
@@ -25099,7 +28717,7 @@ S
BT
272.17692192000004 408.6130000000001 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -25134,7 +28752,7 @@ S
BT
51.24 378.19300000000004 Td
/F2.0 10.5 Tf
-<6c6f67496e7374616e74> Tj
+<6465766963655479706553636f7065> Tj
ET
@@ -25181,7 +28799,7 @@ S
BT
272.17692192000004 371.05300000000005 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -25216,7 +28834,7 @@ S
BT
51.24 340.6330000000001 Td
/F2.0 10.5 Tf
-<6c6f6754797065> Tj
+<6a736f6e526570726573656e746174696f6e> Tj
ET
@@ -25259,13 +28877,21 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
272.17692192000004 333.4930000000001 Td
/F1.0 10.5 Tf
-[<656e756d2028494e464f2c2057> 60.05859375 <41524e494e472c20455252> 20.01953125 <4f5229>] TJ
+<4a736f6e4f626a656374> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -25298,7 +28924,7 @@ S
BT
51.24 303.07300000000004 Td
/F2.0 10.5 Tf
-<6c6f6f70> Tj
+<6d6963726f536572766963654d6f64656c> Tj
ET
@@ -25351,7 +28977,7 @@ S
BT
272.17692192000004 295.93300000000005 Td
/F1.0 10.5 Tf
-<4c6f6f70> Tj
+<4d6963726f536572766963654d6f64656c> Tj
ET
0.000 0.000 0.000 SCN
@@ -25388,7 +29014,7 @@ S
BT
51.24 265.5130000000001 Td
/F2.0 10.5 Tf
-<6d657373616765> Tj
+<6d6f64656c54797065> Tj
ET
@@ -25439,71 +29065,905 @@ BT
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.200 m
+269.177 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.640 m
+269.177 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.450 m
+48.240 206.390 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.450 m
+269.177 206.390 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 227.95300000000006 Td
+/F2.0 10.5 Tf
+<6e616d65> Tj
+ET
+
+
+BT
+51.24 213.67300000000006 Td
+ET
+
+
+BT
+51.24 213.67300000000006 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.200 m
+563.760 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.640 m
+563.760 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.450 m
+269.177 206.390 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 244.450 m
+563.760 206.390 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 220.81300000000005 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.640 m
+269.177 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.080 m
+269.177 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.890 m
+48.240 168.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.890 m
+269.177 168.830 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 190.39300000000006 Td
+/F2.0 10.5 Tf
+[<706f6c69637954> 29.78515625 <6f736361>] TJ
+ET
+
+
+BT
+51.24 176.11300000000006 Td
+ET
+
+
+BT
+51.24 176.11300000000006 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.640 m
+563.760 206.640 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.080 m
+563.760 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.890 m
+269.177 168.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 206.890 m
+563.760 168.830 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 183.25300000000004 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.080 m
+269.177 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.520 m
+269.177 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.330 m
+48.240 131.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.330 m
+269.177 131.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 152.83300000000006 Td
+/F2.0 10.5 Tf
+<70726f70657274696573> Tj
+ET
+
+
+BT
+51.24 138.55300000000005 Td
+ET
+
+
+BT
+51.24 138.55300000000005 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.080 m
+563.760 169.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.520 m
+563.760 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.330 m
+269.177 131.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 169.330 m
+563.760 131.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 145.69300000000004 Td
+/F1.0 10.5 Tf
+<4a736f6e4f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.520 m
+269.177 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.960 m
+269.177 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.770 m
+48.240 93.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.770 m
+269.177 93.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 115.27300000000004 Td
+/F2.0 10.5 Tf
+<736861726564> Tj
+ET
+
+
+BT
+51.24 100.99300000000004 Td
+ET
+
+
+BT
+51.24 100.99300000000004 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.520 m
+563.760 131.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.960 m
+563.760 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.770 m
+269.177 93.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 131.770 m
+563.760 93.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 108.13300000000004 Td
+/F1.0 10.5 Tf
+<626f6f6c65616e> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.960 m
+269.177 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 56.400 m
+269.177 56.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 94.210 m
+48.240 56.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.210 m
+269.177 56.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 77.71300000000004 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 63.433000000000035 Td
+ET
+
+
+BT
+51.24 63.433000000000035 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.960 m
+563.760 93.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 56.400 m
+563.760 56.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.210 m
+269.177 56.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 94.210 m
+563.760 56.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 70.57300000000004 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+49.24 14.388 Td
+/F1.0 9 Tf
+<3138> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+187 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 186 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 20 0 R
+/F3.0 22 0 R
+/F1.0 8 0 R
+>>
+/XObject << /Stamp1 382 0 R
+>>
+>>
+/Annots [188 0 R 191 0 R 192 0 R 193 0 R]
+>>
+endobj
+188 0 obj
+<< /Border [0 0 0]
+/Dest (_templatemicroservicemodel)
+/Subtype /Link
+/Rect [280.76592192000004 593.587 424.355677779375 607.867]
+/Type /Annot
+>>
+endobj
+189 0 obj
+[187 0 R /XYZ 0 570.48 null]
+endobj
+190 0 obj
+<< /Limits [(_jsonobject) (_parameters_11)]
+/Names [(_jsonobject) 149 0 R (_jsonprimitive) 159 0 R (_loop) 167 0 R (_looplog) 177 0 R (_looptemplate) 181 0 R (_microservicemodel) 184 0 R (_microservicepolicy) 189 0 R (_number) 197 0 R (_operationalpolicy) 198 0 R (_overview) 17 0 R (_parameters) 42 0 R (_parameters_10) 101 0 R (_parameters_11) 110 0 R]
+>>
+endobj
+191 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [272.17692192000004 330.4270000000001 325.32792192000005 344.7070000000001]
+/Type /Annot
+>>
+endobj
+192 0 obj
+<< /Border [0 0 0]
+/Dest (_microservicemodel)
+/Subtype /Link
+/Rect [272.17692192000004 292.867 369.21792192000004 307.14700000000005]
+/Type /Annot
+>>
+endobj
+193 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [272.17692192000004 142.62700000000007 325.32792192000005 156.90700000000004]
+/Type /Annot
+>>
+endobj
+194 0 obj
+<< /Length 19132
+>>
+stream
+q
+/DeviceRGB cs
+1.000 1.000 1.000 scn
+48.240 732.720 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 732.720 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 695.160 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 695.160 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 657.600 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 657.600 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+/DeviceRGB CS
+0.867 0.867 0.867 SCN
+48.240 756.000 m
+269.177 756.000 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 732.720 m
+269.177 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 756.250 m
+48.240 731.970 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.250 m
+269.177 731.970 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 740.2529999999999 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.000 m
+563.760 756.000 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 732.720 m
+563.760 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 756.250 m
+269.177 731.970 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 756.250 m
+563.760 731.970 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 740.2529999999999 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 732.720 m
+269.177 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.160 m
+269.177 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 732.970 m
+48.240 694.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.970 m
+269.177 694.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 716.473 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 702.193 Td
+ET
+
+
+BT
+51.24 702.193 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.720 m
+563.760 732.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.160 m
+563.760 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 732.970 m
+269.177 694.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 732.970 m
+563.760 694.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 709.333 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.160 m
+269.177 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.600 m
+269.177 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.410 m
+48.240 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 678.913 Td
+/F2.0 10.5 Tf
+[<7573656442> 20.01953125 <794c6f6f7073>] TJ
+ET
+
+
+BT
+51.24 664.6329999999999 Td
+ET
+
+
+BT
+51.24 664.6329999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.160 m
+563.760 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.600 m
+563.760 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 695.410 m
+563.760 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.7729999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 671.7729999999999 Td
+/F1.0 10.5 Tf
+<4c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+305.86092192000007 671.7729999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
+0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24 208.7760000000001 Td
+48.24 622.1759999999999 Td
/F2.0 18 Tf
-<332e31312e204d6963726f53657276696365506f6c696379> Tj
+<332e31342e204e756d626572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 593.5559999999999 Td
+/F3.0 10.5 Tf
+<54797065> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+71.4345 593.5559999999999 Td
+/F1.0 10.5 Tf
+<203a206f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 554.316 Td
+/F2.0 18 Tf
+[<332e31352e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 168.840 220.937 23.280 re
+48.240 514.380 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 168.840 294.583 23.280 re
+269.177 514.380 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 131.280 220.937 37.560 re
+48.240 476.820 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 131.280 294.583 37.560 re
+269.177 476.820 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 93.720 220.937 37.560 re
+48.240 439.260 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 93.720 294.583 37.560 re
+269.177 439.260 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 56.160 220.937 37.560 re
+48.240 401.700 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 56.160 294.583 37.560 re
+269.177 401.700 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 364.140 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 364.140 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 326.580 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 326.580 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 192.120 m
-269.177 192.120 l
+48.240 537.660 m
+269.177 537.660 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 168.840 m
-269.177 168.840 l
+48.240 514.380 m
+269.177 514.380 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 192.370 m
-48.240 168.090 l
+48.240 537.910 m
+48.240 513.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 192.370 m
-269.177 168.090 l
+269.177 537.910 m
+269.177 513.630 l
S
[ ] 0 d
1 w
@@ -25511,7 +29971,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 176.3730000000001 Td
+51.24 521.913 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -25519,26 +29979,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 192.120 m
-563.760 192.120 l
+269.177 537.660 m
+563.760 537.660 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 168.840 m
-563.760 168.840 l
+269.177 514.380 m
+563.760 514.380 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 192.370 m
-269.177 168.090 l
+269.177 537.910 m
+269.177 513.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 192.370 m
-563.760 168.090 l
+563.760 537.910 m
+563.760 513.630 l
S
[ ] 0 d
1 w
@@ -25546,7 +30006,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 176.3730000000001 Td
+272.17692192000004 521.913 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -25554,26 +30014,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 168.840 m
-269.177 168.840 l
+48.240 514.380 m
+269.177 514.380 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.280 m
-269.177 131.280 l
+48.240 476.820 m
+269.177 476.820 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 169.090 m
-48.240 131.030 l
+48.240 514.630 m
+48.240 476.570 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.090 m
-269.177 131.030 l
+269.177 514.630 m
+269.177 476.570 l
S
[ ] 0 d
1 w
@@ -25581,19 +30041,109 @@ S
0.200 0.200 0.200 scn
BT
-51.24 152.5930000000001 Td
+51.24 498.1330000000001 Td
+/F2.0 10.5 Tf
+[<636f6e6669677572> 20.01953125 <6174696f6e734a736f6e>] TJ
+ET
+
+
+BT
+51.24 483.85300000000007 Td
+ET
+
+
+BT
+51.24 483.85300000000007 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 514.380 m
+563.760 514.380 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 476.820 m
+563.760 476.820 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 514.630 m
+269.177 476.570 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 514.630 m
+563.760 476.570 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 490.9930000000001 Td
+/F1.0 10.5 Tf
+<4a736f6e4f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 476.820 m
+269.177 476.820 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 439.260 m
+269.177 439.260 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 477.070 m
+48.240 439.010 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 477.070 m
+269.177 439.010 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 460.57300000000004 Td
/F2.0 10.5 Tf
<6a736f6e526570726573656e746174696f6e> Tj
ET
BT
-51.24 138.3130000000001 Td
+51.24 446.293 Td
ET
BT
-51.24 138.3130000000001 Td
+51.24 446.293 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -25601,26 +30151,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 168.840 m
-563.760 168.840 l
+269.177 476.820 m
+563.760 476.820 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.280 m
-563.760 131.280 l
+269.177 439.260 m
+563.760 439.260 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.090 m
-269.177 131.030 l
+269.177 477.070 m
+269.177 439.010 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 169.090 m
-563.760 131.030 l
+563.760 477.070 m
+563.760 439.010 l
S
[ ] 0 d
1 w
@@ -25634,7 +30184,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 145.4530000000001 Td
+272.17692192000004 453.43300000000005 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -25644,26 +30194,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.280 m
-269.177 131.280 l
+48.240 439.260 m
+269.177 439.260 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.720 m
-269.177 93.720 l
+48.240 401.700 m
+269.177 401.700 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.530 m
-48.240 93.470 l
+48.240 439.510 m
+48.240 401.450 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.530 m
-269.177 93.470 l
+269.177 439.510 m
+269.177 401.450 l
S
[ ] 0 d
1 w
@@ -25671,19 +30221,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 115.03300000000009 Td
+51.24 423.0130000000001 Td
/F2.0 10.5 Tf
-<6d6f64656c54797065> Tj
+<6c6f6f70> Tj
ET
BT
-51.24 100.75300000000009 Td
+51.24 408.73300000000006 Td
ET
BT
-51.24 100.75300000000009 Td
+51.24 408.73300000000006 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -25691,61 +30241,69 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.280 m
-563.760 131.280 l
+269.177 439.260 m
+563.760 439.260 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.720 m
-563.760 93.720 l
+269.177 401.700 m
+563.760 401.700 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.530 m
-269.177 93.470 l
+269.177 439.510 m
+269.177 401.450 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 131.530 m
-563.760 93.470 l
+563.760 439.510 m
+563.760 401.450 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 107.89300000000009 Td
+272.17692192000004 415.8730000000001 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4c6f6f70> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.720 m
-269.177 93.720 l
+48.240 401.700 m
+269.177 401.700 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 56.160 m
-269.177 56.160 l
+48.240 364.140 m
+269.177 364.140 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.970 m
-48.240 55.910 l
+48.240 401.950 m
+48.240 363.890 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.970 m
-269.177 55.910 l
+269.177 401.950 m
+269.177 363.890 l
S
[ ] 0 d
1 w
@@ -25753,19 +30311,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 77.47300000000008 Td
+51.24 385.45300000000003 Td
/F2.0 10.5 Tf
<6e616d65> Tj
ET
BT
-51.24 63.19300000000008 Td
+51.24 371.173 Td
ET
BT
-51.24 63.19300000000008 Td
+51.24 371.173 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -25773,26 +30331,491 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.720 m
-563.760 93.720 l
+269.177 401.700 m
+563.760 401.700 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 56.160 m
-563.760 56.160 l
+269.177 364.140 m
+563.760 364.140 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.970 m
-269.177 55.910 l
+269.177 401.950 m
+269.177 363.890 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 93.970 m
-563.760 55.910 l
+563.760 401.950 m
+563.760 363.890 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 378.31300000000005 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 364.140 m
+269.177 364.140 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 326.580 m
+269.177 326.580 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 364.390 m
+48.240 326.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 364.390 m
+269.177 326.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 347.8930000000001 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c> Tj
+ET
+
+
+BT
+51.24 333.61300000000006 Td
+ET
+
+
+BT
+51.24 333.61300000000006 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 364.140 m
+563.760 364.140 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 326.580 m
+563.760 326.580 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 364.390 m
+269.177 326.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 364.390 m
+563.760 326.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 340.7530000000001 Td
+/F1.0 10.5 Tf
+<506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 291.1560000000001 Td
+/F2.0 18 Tf
+<332e31362e20506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 251.220 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 251.220 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 213.660 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 213.660 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 176.100 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 176.100 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 138.540 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 138.540 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 100.980 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 100.980 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 63.420 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 63.420 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 274.500 m
+269.177 274.500 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 251.220 m
+269.177 251.220 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 274.750 m
+48.240 250.470 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 274.750 m
+269.177 250.470 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 258.75300000000004 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 274.500 m
+563.760 274.500 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 251.220 m
+563.760 251.220 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 274.750 m
+269.177 250.470 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 274.750 m
+563.760 250.470 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 258.75300000000004 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 251.220 m
+269.177 251.220 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 213.660 m
+269.177 213.660 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 251.470 m
+48.240 213.410 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 251.470 m
+269.177 213.410 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 234.97300000000007 Td
+/F2.0 10.5 Tf
+[<6372656174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 220.69300000000007 Td
+ET
+
+
+BT
+51.24 220.69300000000007 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 251.220 m
+563.760 251.220 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 213.660 m
+563.760 213.660 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 251.470 m
+269.177 213.410 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 251.470 m
+563.760 213.410 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 227.83300000000006 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 213.660 m
+269.177 213.660 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 176.100 m
+269.177 176.100 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 213.910 m
+48.240 175.850 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 213.910 m
+269.177 175.850 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 197.41300000000007 Td
+/F2.0 10.5 Tf
+<6372656174656444617465> Tj
+ET
+
+
+BT
+51.24 183.13300000000007 Td
+ET
+
+
+BT
+51.24 183.13300000000007 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 213.660 m
+563.760 213.660 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 176.100 m
+563.760 176.100 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 213.910 m
+269.177 175.850 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 213.910 m
+563.760 175.850 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 190.27300000000005 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 176.100 m
+269.177 176.100 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 138.540 m
+269.177 138.540 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 176.350 m
+48.240 138.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 176.350 m
+269.177 138.290 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 159.85300000000007 Td
+/F2.0 10.5 Tf
+[<706f6c69637941> 20.01953125 <63726f6e> 20.01953125 <796d>] TJ
+ET
+
+
+BT
+51.24 145.57300000000006 Td
+ET
+
+
+BT
+51.24 145.57300000000006 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 176.100 m
+563.760 176.100 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 138.540 m
+563.760 138.540 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 176.350 m
+269.177 138.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 176.350 m
+563.760 138.290 l
S
[ ] 0 d
1 w
@@ -25800,7 +30823,171 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 70.33300000000008 Td
+272.17692192000004 152.71300000000005 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 138.540 m
+269.177 138.540 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 100.980 m
+269.177 100.980 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 138.790 m
+48.240 100.730 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 138.790 m
+269.177 100.730 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 122.29300000000006 Td
+/F2.0 10.5 Tf
+[<706f6c6963794d6f64656c54> 29.78515625 <6f736361>] TJ
+ET
+
+
+BT
+51.24 108.01300000000006 Td
+ET
+
+
+BT
+51.24 108.01300000000006 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 138.540 m
+563.760 138.540 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 100.980 m
+563.760 100.980 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 138.790 m
+269.177 100.730 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 138.790 m
+563.760 100.730 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 115.15300000000006 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 100.980 m
+269.177 100.980 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 63.420 m
+269.177 63.420 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 101.230 m
+48.240 63.170 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 101.230 m
+269.177 63.170 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 84.73300000000005 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c54797065> Tj
+ET
+
+
+BT
+51.24 70.45300000000005 Td
+ET
+
+
+BT
+51.24 70.45300000000005 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 100.980 m
+563.760 100.980 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 63.420 m
+563.760 63.420 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 101.230 m
+269.177 63.170 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 101.230 m
+563.760 63.170 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 77.59300000000005 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -25818,9 +31005,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3136> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -25830,70 +31017,73 @@ Q
endstream
endobj
-172 0 obj
+195 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 171 0 R
+/Contents 194 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 20 0 R
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
-/Annots [173 0 R 174 0 R 175 0 R 177 0 R 179 0 R]
+/Annots [196 0 R 199 0 R 200 0 R 201 0 R 202 0 R]
>>
endobj
-173 0 obj
+196 0 obj
<< /Border [0 0 0]
-/Dest (_microservicepolicy)
+/Dest (_loop)
/Subtype /Link
-/Rect [280.76592192000004 706.267 376.69392192000004 720.547]
+/Rect [280.76592192000004 668.707 305.86092192000007 682.987]
/Type /Annot
>>
endobj
-174 0 obj
+197 0 obj
+[195 0 R /XYZ 0 645.5999999999999 null]
+endobj
+198 0 obj
+[195 0 R /XYZ 0 577.74 null]
+endobj
+199 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 668.707 325.32792192000005 682.987]
+/Rect [272.17692192000004 487.9270000000001 325.32792192000005 502.2070000000001]
/Type /Annot
>>
endobj
-175 0 obj
+200 0 obj
<< /Border [0 0 0]
-/Dest (_operationalpolicy)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [280.76592192000004 593.587 370.37271684187505 607.867]
+/Rect [272.17692192000004 450.367 325.32792192000005 464.64700000000005]
/Type /Annot
>>
endobj
-176 0 obj
-[172 0 R /XYZ 0 532.9200000000001 null]
-endobj
-177 0 obj
+201 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [272.17692192000004 292.867 297.27192192000007 307.14700000000005]
+/Rect [272.17692192000004 412.8070000000001 297.27192192000007 427.0870000000001]
/Type /Annot
>>
endobj
-178 0 obj
-[172 0 R /XYZ 0 232.2000000000001 null]
-endobj
-179 0 obj
+202 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_policymodel)
/Subtype /Link
-/Rect [272.17692192000004 142.3870000000001 325.32792192000005 156.6670000000001]
+/Rect [272.17692192000004 337.68700000000007 333.47592192 351.9670000000001]
/Type /Annot
>>
endobj
-180 0 obj
-<< /Length 13104
+203 0 obj
+[195 0 R /XYZ 0 314.5800000000001 null]
+endobj
+204 0 obj
+<< /Length 15919
>>
stream
q
@@ -26040,7 +31230,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-[<706f6c69637954> 29.78515625 <6f736361>] TJ
+[<706f6c69637956> 60.05859375 <617269616e74>] TJ
ET
@@ -26122,7 +31312,7 @@ S
BT
51.24 678.913 Td
/F2.0 10.5 Tf
-<70726f70657274696573> Tj
+[<7570646174656442> 20.01953125 <79>] TJ
ET
@@ -26165,21 +31355,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
272.17692192000004 671.773 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -26212,7 +31394,7 @@ S
BT
51.24 641.3530000000001 Td
/F2.0 10.5 Tf
-<736861726564> Tj
+<7570646174656444617465> Tj
ET
@@ -26259,7 +31441,7 @@ S
BT
272.17692192000004 634.213 Td
/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -26292,19 +31474,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 603.7930000000001 Td
+51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-[<7573656442> 20.01953125 <794c6f6f7073>] TJ
+<76657273696f6e> Tj
ET
BT
-51.24 589.513 Td
+51.24 589.5129999999999 Td
ET
BT
-51.24 589.513 Td
+51.24 589.5129999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -26337,33 +31519,11 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 596.653 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-
-BT
-280.76592192000004 596.653 Td
-/F1.0 10.5 Tf
-<4c6f6f70> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
-305.86092192000007 596.653 Td
+272.17692192000004 596.6529999999999 Td
/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -26373,106 +31533,65 @@ ET
BT
48.24 547.056 Td
/F2.0 18 Tf
-<332e31322e204e756d626572> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 518.4360000000001 Td
-/F3.0 10.5 Tf
-<54797065> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-71.4345 518.4360000000001 Td
-/F1.0 10.5 Tf
-<203a206f626a656374> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 479.19600000000014 Td
-/F2.0 18 Tf
-[<332e31332e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+<332e31372e2053657276696365> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 439.260 220.937 23.280 re
+48.240 507.120 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 439.260 294.583 23.280 re
+269.177 507.120 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 401.700 220.937 37.560 re
+48.240 469.560 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 401.700 294.583 37.560 re
+269.177 469.560 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 364.140 220.937 37.560 re
+48.240 432.000 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 364.140 294.583 37.560 re
+269.177 432.000 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 326.580 220.937 37.560 re
+48.240 394.440 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 326.580 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 289.020 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 289.020 294.583 37.560 re
+269.177 394.440 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 462.540 m
-269.177 462.540 l
+48.240 530.400 m
+269.177 530.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 439.260 m
-269.177 439.260 l
+48.240 507.120 m
+269.177 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 462.790 m
-48.240 438.510 l
+48.240 530.650 m
+48.240 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 462.790 m
-269.177 438.510 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
1 w
@@ -26480,7 +31599,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 446.79300000000006 Td
+51.24 514.653 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -26488,26 +31607,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 462.540 m
-563.760 462.540 l
+269.177 530.400 m
+563.760 530.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 439.260 m
-563.760 439.260 l
+269.177 507.120 m
+563.760 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 462.790 m
-269.177 438.510 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 462.790 m
-563.760 438.510 l
+563.760 530.650 m
+563.760 506.370 l
S
[ ] 0 d
1 w
@@ -26515,7 +31634,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 446.79300000000006 Td
+272.17692192000004 514.653 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -26523,26 +31642,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 439.260 m
-269.177 439.260 l
+48.240 507.120 m
+269.177 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 401.700 m
-269.177 401.700 l
+48.240 469.560 m
+269.177 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 439.510 m
-48.240 401.450 l
+48.240 507.370 m
+48.240 469.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 439.510 m
-269.177 401.450 l
+269.177 507.370 m
+269.177 469.310 l
S
[ ] 0 d
1 w
@@ -26550,19 +31669,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 423.0130000000001 Td
+51.24 490.8730000000001 Td
/F2.0 10.5 Tf
-[<636f6e6669677572> 20.01953125 <6174696f6e734a736f6e>] TJ
+<7265736f7572636544657461696c73> Tj
ET
BT
-51.24 408.73300000000006 Td
+51.24 476.5930000000001 Td
ET
BT
-51.24 408.73300000000006 Td
+51.24 476.5930000000001 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -26570,26 +31689,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 439.260 m
-563.760 439.260 l
+269.177 507.120 m
+563.760 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 401.700 m
-563.760 401.700 l
+269.177 469.560 m
+563.760 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 439.510 m
-269.177 401.450 l
+269.177 507.370 m
+269.177 469.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 439.510 m
-563.760 401.450 l
+563.760 507.370 m
+563.760 469.310 l
S
[ ] 0 d
1 w
@@ -26603,7 +31722,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 415.8730000000001 Td
+272.17692192000004 483.7330000000001 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -26613,26 +31732,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 401.700 m
-269.177 401.700 l
+48.240 469.560 m
+269.177 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 364.140 m
-269.177 364.140 l
+48.240 432.000 m
+269.177 432.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 401.950 m
-48.240 363.890 l
+48.240 469.810 m
+48.240 431.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 401.950 m
-269.177 363.890 l
+269.177 469.810 m
+269.177 431.750 l
S
[ ] 0 d
1 w
@@ -26640,19 +31759,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 385.45300000000003 Td
+51.24 453.31300000000005 Td
/F2.0 10.5 Tf
-<6a736f6e526570726573656e746174696f6e> Tj
+<7365727669636544657461696c73> Tj
ET
BT
-51.24 371.173 Td
+51.24 439.033 Td
ET
BT
-51.24 371.173 Td
+51.24 439.033 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -26660,26 +31779,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 401.700 m
-563.760 401.700 l
+269.177 469.560 m
+563.760 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 364.140 m
-563.760 364.140 l
+269.177 432.000 m
+563.760 432.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 401.950 m
-269.177 363.890 l
+269.177 469.810 m
+269.177 431.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 401.950 m
-563.760 363.890 l
+563.760 469.810 m
+563.760 431.750 l
S
[ ] 0 d
1 w
@@ -26693,7 +31812,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 378.31300000000005 Td
+272.17692192000004 446.17300000000006 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -26703,26 +31822,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 364.140 m
-269.177 364.140 l
+48.240 432.000 m
+269.177 432.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 326.580 m
-269.177 326.580 l
+48.240 394.440 m
+269.177 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 364.390 m
-48.240 326.330 l
+48.240 432.250 m
+48.240 394.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 364.390 m
-269.177 326.330 l
+269.177 432.250 m
+269.177 394.190 l
S
[ ] 0 d
1 w
@@ -26730,19 +31849,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 347.8930000000001 Td
+51.24 415.7530000000001 Td
/F2.0 10.5 Tf
-<6c6f6f70> Tj
+<7365727669636555756964> Tj
ET
BT
-51.24 333.61300000000006 Td
+51.24 401.47300000000007 Td
ET
BT
-51.24 333.61300000000006 Td
+51.24 401.47300000000007 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -26750,26 +31869,303 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 364.140 m
-563.760 364.140 l
+269.177 432.000 m
+563.760 432.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 326.580 m
-563.760 326.580 l
+269.177 394.440 m
+563.760 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 364.390 m
-269.177 326.330 l
+269.177 432.250 m
+269.177 394.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 364.390 m
-563.760 326.330 l
+563.760 432.250 m
+563.760 394.190 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 408.6130000000001 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 359.01600000000013 Td
+/F2.0 18 Tf
+[<332e31382e2054> 29.78515625 <656d706c6174654d6963726f536572766963654d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.080 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.080 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 281.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 281.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 243.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 243.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 206.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 206.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 342.360 m
+269.177 342.360 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 319.080 m
+269.177 319.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 342.610 m
+48.240 318.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 342.610 m
+269.177 318.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 326.61300000000006 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 342.360 m
+563.760 342.360 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 319.080 m
+563.760 319.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 342.610 m
+269.177 318.330 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 342.610 m
+563.760 318.330 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 326.61300000000006 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.080 m
+269.177 319.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 281.520 m
+269.177 281.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.330 m
+48.240 281.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.330 m
+269.177 281.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 302.833 Td
+/F2.0 10.5 Tf
+<666c6f774f72646572> Tj
+ET
+
+
+BT
+51.24 288.553 Td
+ET
+
+
+BT
+51.24 288.553 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.080 m
+563.760 319.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.520 m
+563.760 281.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.330 m
+269.177 281.270 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 319.330 m
+563.760 281.270 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 295.69300000000004 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74333229> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 281.520 m
+269.177 281.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 243.960 m
+269.177 243.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 281.770 m
+48.240 243.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.770 m
+269.177 243.710 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 265.2730000000001 Td
+/F2.0 10.5 Tf
+[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
+ET
+
+
+BT
+51.24 250.99300000000008 Td
+ET
+
+
+BT
+51.24 250.99300000000008 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.520 m
+563.760 281.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 243.960 m
+563.760 243.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.770 m
+269.177 243.710 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 281.770 m
+563.760 243.710 l
S
[ ] 0 d
1 w
@@ -26783,9 +32179,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 340.7530000000001 Td
+272.17692192000004 258.1330000000001 Td
/F1.0 10.5 Tf
-<4c6f6f70> Tj
+[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
0.000 0.000 0.000 SCN
@@ -26793,26 +32189,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 326.580 m
-269.177 326.580 l
+48.240 243.960 m
+269.177 243.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 289.020 m
-269.177 289.020 l
+48.240 206.400 m
+269.177 206.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 326.830 m
-48.240 288.770 l
+48.240 244.210 m
+48.240 206.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 326.830 m
-269.177 288.770 l
+269.177 244.210 m
+269.177 206.150 l
S
[ ] 0 d
1 w
@@ -26820,19 +32216,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 310.333 Td
+51.24 227.71300000000008 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+<6d6963726f536572766963654d6f64656c> Tj
ET
BT
-51.24 296.053 Td
+51.24 213.43300000000008 Td
ET
BT
-51.24 296.053 Td
+51.24 213.43300000000008 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -26840,38 +32236,46 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 326.580 m
-563.760 326.580 l
+269.177 243.960 m
+563.760 243.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 289.020 m
-563.760 289.020 l
+269.177 206.400 m
+563.760 206.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 326.830 m
-269.177 288.770 l
+269.177 244.210 m
+269.177 206.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 326.830 m
-563.760 288.770 l
+563.760 244.210 m
+563.760 206.150 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 303.19300000000004 Td
+272.17692192000004 220.57300000000006 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4d6963726f536572766963654d6f64656c> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -26885,9 +32289,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3137> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -26897,74 +32301,61 @@ Q
endstream
endobj
-181 0 obj
+205 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 180 0 R
+/Contents 204 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 20 0 R
/F3.0 22 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 350 0 R
+/XObject << /Stamp1 382 0 R
>>
>>
-/Annots [182 0 R 183 0 R 187 0 R 188 0 R 189 0 R]
+/Annots [207 0 R 208 0 R 210 0 R 211 0 R]
>>
endobj
-182 0 obj
-<< /Border [0 0 0]
-/Dest (_jsonobject)
-/Subtype /Link
-/Rect [272.17692192000004 668.7070000000001 325.32792192000005 682.9870000000001]
-/Type /Annot
->>
+206 0 obj
+[205 0 R /XYZ 0 570.48 null]
endobj
-183 0 obj
+207 0 obj
<< /Border [0 0 0]
-/Dest (_loop)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [280.76592192000004 593.5870000000001 305.86092192000007 607.8670000000001]
+/Rect [272.17692192000004 480.6670000000001 325.32792192000005 494.9470000000001]
/Type /Annot
>>
endobj
-184 0 obj
-[181 0 R /XYZ 0 570.48 null]
-endobj
-185 0 obj
-[181 0 R /XYZ 0 502.6200000000001 null]
-endobj
-186 0 obj
-<< /Limits [(_jsonobject) (_parameters_11)]
-/Names [(_jsonobject) 149 0 R (_jsonprimitive) 159 0 R (_loop) 167 0 R (_looplog) 176 0 R (_microservicepolicy) 178 0 R (_number) 184 0 R (_operationalpolicy) 185 0 R (_overview) 17 0 R (_parameters) 42 0 R (_parameters_10) 101 0 R (_parameters_11) 110 0 R]
->>
-endobj
-187 0 obj
+208 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 412.8070000000001 325.32792192000005 427.0870000000001]
+/Rect [272.17692192000004 443.107 325.32792192000005 457.38700000000006]
/Type /Annot
>>
endobj
-188 0 obj
+209 0 obj
+[205 0 R /XYZ 0 382.4400000000001 null]
+endobj
+210 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_looptemplate)
/Subtype /Link
-/Rect [272.17692192000004 375.247 325.32792192000005 389.52700000000004]
+/Rect [272.17692192000004 255.0670000000001 343.82067777937505 269.3470000000001]
/Type /Annot
>>
endobj
-189 0 obj
+211 0 obj
<< /Border [0 0 0]
-/Dest (_loop)
+/Dest (_microservicemodel)
/Subtype /Link
-/Rect [272.17692192000004 337.68700000000007 297.27192192000007 351.9670000000001]
+/Rect [272.17692192000004 217.5070000000001 369.21792192000004 231.7870000000001]
/Type /Annot
>>
endobj
-190 0 obj
+212 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -26972,7 +32363,7 @@ endobj
/Type /Annot
>>
endobj
-191 0 obj
+213 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -26980,7 +32371,7 @@ endobj
/Type /Annot
>>
endobj
-192 0 obj
+214 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -26988,7 +32379,7 @@ endobj
/Type /Annot
>>
endobj
-193 0 obj
+215 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -26996,7 +32387,7 @@ endobj
/Type /Annot
>>
endobj
-194 0 obj
+216 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -27004,7 +32395,7 @@ endobj
/Type /Annot
>>
endobj
-195 0 obj
+217 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -27012,7 +32403,7 @@ endobj
/Type /Annot
>>
endobj
-196 0 obj
+218 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -27020,7 +32411,7 @@ endobj
/Type /Annot
>>
endobj
-197 0 obj
+219 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -27028,23 +32419,23 @@ endobj
/Type /Annot
>>
endobj
-198 0 obj
+220 0 obj
<< /Border [0 0 0]
-/Dest (_route15)
+/Dest (_route32)
/Subtype /Link
/Rect [60.24000000000001 621.7799999999997 183.88800000000003 636.0599999999998]
/Type /Annot
>>
endobj
-199 0 obj
+221 0 obj
<< /Border [0 0 0]
-/Dest (_route15)
+/Dest (_route32)
/Subtype /Link
/Rect [557.8905 621.7799999999997 563.76 636.0599999999998]
/Type /Annot
>>
endobj
-200 0 obj
+222 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -27052,7 +32443,7 @@ endobj
/Type /Annot
>>
endobj
-201 0 obj
+223 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -27060,7 +32451,7 @@ endobj
/Type /Annot
>>
endobj
-202 0 obj
+224 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -27068,7 +32459,7 @@ endobj
/Type /Annot
>>
endobj
-203 0 obj
+225 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -27076,23 +32467,23 @@ endobj
/Type /Annot
>>
endobj
-204 0 obj
+226 0 obj
<< /Border [0 0 0]
-/Dest (_route16)
+/Dest (_route33)
/Subtype /Link
/Rect [60.24000000000001 566.3399999999997 181.64100000000002 580.6199999999998]
/Type /Annot
>>
endobj
-205 0 obj
+227 0 obj
<< /Border [0 0 0]
-/Dest (_route16)
+/Dest (_route33)
/Subtype /Link
/Rect [557.8905 566.3399999999997 563.76 580.6199999999998]
/Type /Annot
>>
endobj
-206 0 obj
+228 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -27100,7 +32491,7 @@ endobj
/Type /Annot
>>
endobj
-207 0 obj
+229 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -27108,7 +32499,7 @@ endobj
/Type /Annot
>>
endobj
-208 0 obj
+230 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -27116,7 +32507,7 @@ endobj
/Type /Annot
>>
endobj
-209 0 obj
+231 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -27124,23 +32515,23 @@ endobj
/Type /Annot
>>
endobj
-210 0 obj
+232 0 obj
<< /Border [0 0 0]
-/Dest (_route17)
+/Dest (_route34)
/Subtype /Link
/Rect [60.24000000000001 510.89999999999975 183.8775 525.1799999999997]
/Type /Annot
>>
endobj
-211 0 obj
+233 0 obj
<< /Border [0 0 0]
-/Dest (_route17)
+/Dest (_route34)
/Subtype /Link
/Rect [557.8905 510.89999999999975 563.76 525.1799999999997]
/Type /Annot
>>
endobj
-212 0 obj
+234 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -27148,7 +32539,7 @@ endobj
/Type /Annot
>>
endobj
-213 0 obj
+235 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -27156,7 +32547,7 @@ endobj
/Type /Annot
>>
endobj
-214 0 obj
+236 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -27164,7 +32555,7 @@ endobj
/Type /Annot
>>
endobj
-215 0 obj
+237 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -27172,23 +32563,23 @@ endobj
/Type /Annot
>>
endobj
-216 0 obj
+238 0 obj
<< /Border [0 0 0]
-/Dest (_route13)
+/Dest (_route30)
/Subtype /Link
/Rect [60.24000000000001 455.4599999999997 239.28600000000003 469.73999999999967]
/Type /Annot
>>
endobj
-217 0 obj
+239 0 obj
<< /Border [0 0 0]
-/Dest (_route13)
+/Dest (_route30)
/Subtype /Link
/Rect [557.8905 455.4599999999997 563.76 469.73999999999967]
/Type /Annot
>>
endobj
-218 0 obj
+240 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -27196,7 +32587,7 @@ endobj
/Type /Annot
>>
endobj
-219 0 obj
+241 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -27204,7 +32595,7 @@ endobj
/Type /Annot
>>
endobj
-220 0 obj
+242 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -27212,7 +32603,7 @@ endobj
/Type /Annot
>>
endobj
-221 0 obj
+243 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -27220,23 +32611,23 @@ endobj
/Type /Annot
>>
endobj
-222 0 obj
+244 0 obj
<< /Border [0 0 0]
-/Dest (_route8)
+/Dest (_route25)
/Subtype /Link
/Rect [60.24000000000001 400.01999999999964 242.56179492187502 414.2999999999996]
/Type /Annot
>>
endobj
-223 0 obj
+245 0 obj
<< /Border [0 0 0]
-/Dest (_route8)
+/Dest (_route25)
/Subtype /Link
/Rect [557.8905 400.01999999999964 563.76 414.2999999999996]
/Type /Annot
>>
endobj
-224 0 obj
+246 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -27244,7 +32635,7 @@ endobj
/Type /Annot
>>
endobj
-225 0 obj
+247 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -27252,7 +32643,7 @@ endobj
/Type /Annot
>>
endobj
-226 0 obj
+248 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -27260,7 +32651,7 @@ endobj
/Type /Annot
>>
endobj
-227 0 obj
+249 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -27268,7 +32659,7 @@ endobj
/Type /Annot
>>
endobj
-228 0 obj
+250 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -27276,7 +32667,7 @@ endobj
/Type /Annot
>>
endobj
-229 0 obj
+251 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -27284,23 +32675,23 @@ endobj
/Type /Annot
>>
endobj
-230 0 obj
+252 0 obj
<< /Border [0 0 0]
-/Dest (_route2)
+/Dest (_route19)
/Subtype /Link
/Rect [60.24000000000001 326.09999999999957 209.00400000000002 340.37999999999954]
/Type /Annot
>>
endobj
-231 0 obj
+253 0 obj
<< /Border [0 0 0]
-/Dest (_route2)
+/Dest (_route19)
/Subtype /Link
/Rect [557.8905 326.09999999999957 563.76 340.37999999999954]
/Type /Annot
>>
endobj
-232 0 obj
+254 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -27308,7 +32699,7 @@ endobj
/Type /Annot
>>
endobj
-233 0 obj
+255 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -27316,7 +32707,7 @@ endobj
/Type /Annot
>>
endobj
-234 0 obj
+256 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -27324,7 +32715,7 @@ endobj
/Type /Annot
>>
endobj
-235 0 obj
+257 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -27332,23 +32723,23 @@ endobj
/Type /Annot
>>
endobj
-236 0 obj
+258 0 obj
<< /Border [0 0 0]
-/Dest (_route14)
+/Dest (_route31)
/Subtype /Link
/Rect [60.24000000000001 270.6599999999995 253.59750000000003 284.9399999999995]
/Type /Annot
>>
endobj
-237 0 obj
+259 0 obj
<< /Border [0 0 0]
-/Dest (_route14)
+/Dest (_route31)
/Subtype /Link
/Rect [557.8905 270.6599999999995 563.76 284.9399999999995]
/Type /Annot
>>
endobj
-238 0 obj
+260 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -27356,7 +32747,7 @@ endobj
/Type /Annot
>>
endobj
-239 0 obj
+261 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -27364,7 +32755,7 @@ endobj
/Type /Annot
>>
endobj
-240 0 obj
+262 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -27372,7 +32763,7 @@ endobj
/Type /Annot
>>
endobj
-241 0 obj
+263 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -27380,7 +32771,7 @@ endobj
/Type /Annot
>>
endobj
-242 0 obj
+264 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -27388,7 +32779,7 @@ endobj
/Type /Annot
>>
endobj
-243 0 obj
+265 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -27396,23 +32787,23 @@ endobj
/Type /Annot
>>
endobj
-244 0 obj
+266 0 obj
<< /Border [0 0 0]
-/Dest (_route11)
+/Dest (_route28)
/Subtype /Link
/Rect [60.24000000000001 196.7399999999995 242.58300000000003 211.0199999999995]
/Type /Annot
>>
endobj
-245 0 obj
+267 0 obj
<< /Border [0 0 0]
-/Dest (_route11)
+/Dest (_route28)
/Subtype /Link
/Rect [557.8905 196.7399999999995 563.76 211.0199999999995]
/Type /Annot
>>
endobj
-246 0 obj
+268 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -27420,7 +32811,7 @@ endobj
/Type /Annot
>>
endobj
-247 0 obj
+269 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -27428,7 +32819,7 @@ endobj
/Type /Annot
>>
endobj
-248 0 obj
+270 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -27436,7 +32827,7 @@ endobj
/Type /Annot
>>
endobj
-249 0 obj
+271 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -27444,7 +32835,7 @@ endobj
/Type /Annot
>>
endobj
-250 0 obj
+272 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -27452,7 +32843,7 @@ endobj
/Type /Annot
>>
endobj
-251 0 obj
+273 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -27460,23 +32851,23 @@ endobj
/Type /Annot
>>
endobj
-252 0 obj
+274 0 obj
<< /Border [0 0 0]
-/Dest (_route10)
+/Dest (_route27)
/Subtype /Link
/Rect [60.24000000000001 122.81999999999954 229.97250000000003 137.09999999999954]
/Type /Annot
>>
endobj
-253 0 obj
+275 0 obj
<< /Border [0 0 0]
-/Dest (_route10)
+/Dest (_route27)
/Subtype /Link
/Rect [557.8905 122.81999999999954 563.76 137.09999999999954]
/Type /Annot
>>
endobj
-254 0 obj
+276 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -27484,7 +32875,7 @@ endobj
/Type /Annot
>>
endobj
-255 0 obj
+277 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -27492,7 +32883,7 @@ endobj
/Type /Annot
>>
endobj
-256 0 obj
+278 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -27500,7 +32891,7 @@ endobj
/Type /Annot
>>
endobj
-257 0 obj
+279 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -27508,7 +32899,7 @@ endobj
/Type /Annot
>>
endobj
-258 0 obj
+280 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -27516,7 +32907,7 @@ endobj
/Type /Annot
>>
endobj
-259 0 obj
+281 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -27524,23 +32915,23 @@ endobj
/Type /Annot
>>
endobj
-260 0 obj
+282 0 obj
<< /Border [0 0 0]
-/Dest (_route12)
+/Dest (_route29)
/Subtype /Link
/Rect [60.24000000000001 48.89999999999957 249.70200000000003 63.17999999999957]
/Type /Annot
>>
endobj
-261 0 obj
+283 0 obj
<< /Border [0 0 0]
-/Dest (_route12)
+/Dest (_route29)
/Subtype /Link
/Rect [557.8905 48.89999999999957 563.76 63.17999999999957]
/Type /Annot
>>
endobj
-262 0 obj
+284 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -27548,7 +32939,7 @@ endobj
/Type /Annot
>>
endobj
-263 0 obj
+285 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -27556,7 +32947,7 @@ endobj
/Type /Annot
>>
endobj
-264 0 obj
+286 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -27564,7 +32955,7 @@ endobj
/Type /Annot
>>
endobj
-265 0 obj
+287 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -27572,7 +32963,7 @@ endobj
/Type /Annot
>>
endobj
-266 0 obj
+288 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -27580,7 +32971,7 @@ endobj
/Type /Annot
>>
endobj
-267 0 obj
+289 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -27588,23 +32979,23 @@ endobj
/Type /Annot
>>
endobj
-268 0 obj
+290 0 obj
<< /Border [0 0 0]
-/Dest (_route4)
+/Dest (_route21)
/Subtype /Link
/Rect [60.24000000000001 686.2799999999999 307.641 700.56]
/Type /Annot
>>
endobj
-269 0 obj
+291 0 obj
<< /Border [0 0 0]
-/Dest (_route4)
+/Dest (_route21)
/Subtype /Link
/Rect [557.8905 686.2799999999999 563.76 700.56]
/Type /Annot
>>
endobj
-270 0 obj
+292 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -27612,7 +33003,7 @@ endobj
/Type /Annot
>>
endobj
-271 0 obj
+293 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -27620,7 +33011,7 @@ endobj
/Type /Annot
>>
endobj
-272 0 obj
+294 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -27628,7 +33019,7 @@ endobj
/Type /Annot
>>
endobj
-273 0 obj
+295 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -27636,7 +33027,7 @@ endobj
/Type /Annot
>>
endobj
-274 0 obj
+296 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -27644,7 +33035,7 @@ endobj
/Type /Annot
>>
endobj
-275 0 obj
+297 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -27652,23 +33043,23 @@ endobj
/Type /Annot
>>
endobj
-276 0 obj
+298 0 obj
<< /Border [0 0 0]
-/Dest (_route9)
+/Dest (_route26)
/Subtype /Link
/Rect [60.24000000000001 612.3599999999998 261.860794921875 626.6399999999999]
/Type /Annot
>>
endobj
-277 0 obj
+299 0 obj
<< /Border [0 0 0]
-/Dest (_route9)
+/Dest (_route26)
/Subtype /Link
/Rect [557.8905 612.3599999999998 563.76 626.6399999999999]
/Type /Annot
>>
endobj
-278 0 obj
+300 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -27676,7 +33067,7 @@ endobj
/Type /Annot
>>
endobj
-279 0 obj
+301 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -27684,7 +33075,7 @@ endobj
/Type /Annot
>>
endobj
-280 0 obj
+302 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -27692,7 +33083,7 @@ endobj
/Type /Annot
>>
endobj
-281 0 obj
+303 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -27700,7 +33091,7 @@ endobj
/Type /Annot
>>
endobj
-282 0 obj
+304 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -27708,7 +33099,7 @@ endobj
/Type /Annot
>>
endobj
-283 0 obj
+305 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -27716,23 +33107,23 @@ endobj
/Type /Annot
>>
endobj
-284 0 obj
+306 0 obj
<< /Border [0 0 0]
-/Dest (_route5)
+/Dest (_route22)
/Subtype /Link
/Rect [60.24000000000001 538.4399999999998 339.560794921875 552.7199999999998]
/Type /Annot
>>
endobj
-285 0 obj
+307 0 obj
<< /Border [0 0 0]
-/Dest (_route5)
+/Dest (_route22)
/Subtype /Link
/Rect [557.8905 538.4399999999998 563.76 552.7199999999998]
/Type /Annot
>>
endobj
-286 0 obj
+308 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -27740,7 +33131,7 @@ endobj
/Type /Annot
>>
endobj
-287 0 obj
+309 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -27748,7 +33139,7 @@ endobj
/Type /Annot
>>
endobj
-288 0 obj
+310 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -27756,7 +33147,7 @@ endobj
/Type /Annot
>>
endobj
-289 0 obj
+311 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -27764,7 +33155,7 @@ endobj
/Type /Annot
>>
endobj
-290 0 obj
+312 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -27772,7 +33163,7 @@ endobj
/Type /Annot
>>
endobj
-291 0 obj
+313 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -27780,7 +33171,7 @@ endobj
/Type /Annot
>>
endobj
-292 0 obj
+314 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -27788,7 +33179,7 @@ endobj
/Type /Annot
>>
endobj
-293 0 obj
+315 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -27796,23 +33187,23 @@ endobj
/Type /Annot
>>
endobj
-294 0 obj
+316 0 obj
<< /Border [0 0 0]
-/Dest (_route7)
+/Dest (_route24)
/Subtype /Link
/Rect [60.24000000000001 446.03999999999974 350.38629492187505 460.3199999999997]
/Type /Annot
>>
endobj
-295 0 obj
+317 0 obj
<< /Border [0 0 0]
-/Dest (_route7)
+/Dest (_route24)
/Subtype /Link
/Rect [557.8905 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-296 0 obj
+318 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -27820,7 +33211,7 @@ endobj
/Type /Annot
>>
endobj
-297 0 obj
+319 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -27828,7 +33219,7 @@ endobj
/Type /Annot
>>
endobj
-298 0 obj
+320 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -27836,7 +33227,7 @@ endobj
/Type /Annot
>>
endobj
-299 0 obj
+321 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -27844,7 +33235,7 @@ endobj
/Type /Annot
>>
endobj
-300 0 obj
+322 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -27852,7 +33243,7 @@ endobj
/Type /Annot
>>
endobj
-301 0 obj
+323 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -27860,7 +33251,7 @@ endobj
/Type /Annot
>>
endobj
-302 0 obj
+324 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -27868,7 +33259,7 @@ endobj
/Type /Annot
>>
endobj
-303 0 obj
+325 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -27876,23 +33267,23 @@ endobj
/Type /Annot
>>
endobj
-304 0 obj
+326 0 obj
<< /Border [0 0 0]
-/Dest (_route6)
+/Dest (_route23)
/Subtype /Link
/Rect [60.24000000000001 353.63999999999965 352.81158984375 367.9199999999996]
/Type /Annot
>>
endobj
-305 0 obj
+327 0 obj
<< /Border [0 0 0]
-/Dest (_route6)
+/Dest (_route23)
/Subtype /Link
/Rect [557.8905 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-306 0 obj
+328 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -27900,7 +33291,7 @@ endobj
/Type /Annot
>>
endobj
-307 0 obj
+329 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -27908,7 +33299,7 @@ endobj
/Type /Annot
>>
endobj
-308 0 obj
+330 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -27916,7 +33307,7 @@ endobj
/Type /Annot
>>
endobj
-309 0 obj
+331 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -27924,7 +33315,7 @@ endobj
/Type /Annot
>>
endobj
-310 0 obj
+332 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -27932,7 +33323,7 @@ endobj
/Type /Annot
>>
endobj
-311 0 obj
+333 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -27940,7 +33331,7 @@ endobj
/Type /Annot
>>
endobj
-312 0 obj
+334 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -27948,7 +33339,7 @@ endobj
/Type /Annot
>>
endobj
-313 0 obj
+335 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -27956,23 +33347,23 @@ endobj
/Type /Annot
>>
endobj
-314 0 obj
+336 0 obj
<< /Border [0 0 0]
-/Dest (_route3)
+/Dest (_route20)
/Subtype /Link
/Rect [60.24000000000001 261.23999999999955 212.0595 275.5199999999995]
/Type /Annot
>>
endobj
-315 0 obj
+337 0 obj
<< /Border [0 0 0]
-/Dest (_route3)
+/Dest (_route20)
/Subtype /Link
/Rect [557.8905 261.23999999999955 563.76 275.5199999999995]
/Type /Annot
>>
endobj
-316 0 obj
+338 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -27980,7 +33371,7 @@ endobj
/Type /Annot
>>
endobj
-317 0 obj
+339 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -27988,7 +33379,7 @@ endobj
/Type /Annot
>>
endobj
-318 0 obj
+340 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -27996,7 +33387,7 @@ endobj
/Type /Annot
>>
endobj
-319 0 obj
+341 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -28004,7 +33395,7 @@ endobj
/Type /Annot
>>
endobj
-320 0 obj
+342 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -28012,7 +33403,7 @@ endobj
/Type /Annot
>>
endobj
-321 0 obj
+343 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -28020,7 +33411,7 @@ endobj
/Type /Annot
>>
endobj
-322 0 obj
+344 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
@@ -28028,7 +33419,7 @@ endobj
/Type /Annot
>>
endobj
-323 0 obj
+345 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
@@ -28036,7 +33427,7 @@ endobj
/Type /Annot
>>
endobj
-324 0 obj
+346 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
@@ -28044,7 +33435,7 @@ endobj
/Type /Annot
>>
endobj
-325 0 obj
+347 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
@@ -28052,7 +33443,7 @@ endobj
/Type /Annot
>>
endobj
-326 0 obj
+348 0 obj
<< /Border [0 0 0]
/Dest (_cldsinfo)
/Subtype /Link
@@ -28060,7 +33451,7 @@ endobj
/Type /Annot
>>
endobj
-327 0 obj
+349 0 obj
<< /Border [0 0 0]
/Dest (_cldsinfo)
/Subtype /Link
@@ -28068,7 +33459,7 @@ endobj
/Type /Annot
>>
endobj
-328 0 obj
+350 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
@@ -28076,7 +33467,7 @@ endobj
/Type /Annot
>>
endobj
-329 0 obj
+351 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
@@ -28084,7 +33475,7 @@ endobj
/Type /Annot
>>
endobj
-330 0 obj
+352 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
@@ -28092,7 +33483,7 @@ endobj
/Type /Annot
>>
endobj
-331 0 obj
+353 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
@@ -28100,7 +33491,7 @@ endobj
/Type /Annot
>>
endobj
-332 0 obj
+354 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -28108,7 +33499,7 @@ endobj
/Type /Annot
>>
endobj
-333 0 obj
+355 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -28116,7 +33507,7 @@ endobj
/Type /Annot
>>
endobj
-334 0 obj
+356 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -28124,7 +33515,7 @@ endobj
/Type /Annot
>>
endobj
-335 0 obj
+357 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -28132,7 +33523,7 @@ endobj
/Type /Annot
>>
endobj
-336 0 obj
+358 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -28140,7 +33531,7 @@ endobj
/Type /Annot
>>
endobj
-337 0 obj
+359 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -28148,7 +33539,7 @@ endobj
/Type /Annot
>>
endobj
-338 0 obj
+360 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -28156,7 +33547,7 @@ endobj
/Type /Annot
>>
endobj
-339 0 obj
+361 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -28164,7 +33555,7 @@ endobj
/Type /Annot
>>
endobj
-340 0 obj
+362 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
@@ -28172,7 +33563,7 @@ endobj
/Type /Annot
>>
endobj
-341 0 obj
+363 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
@@ -28180,7 +33571,7 @@ endobj
/Type /Annot
>>
endobj
-342 0 obj
+364 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
@@ -28188,7 +33579,7 @@ endobj
/Type /Annot
>>
endobj
-343 0 obj
+365 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
@@ -28196,55 +33587,135 @@ endobj
/Type /Annot
>>
endobj
-344 0 obj
+366 0 obj
+<< /Border [0 0 0]
+/Dest (_looptemplate)
+/Subtype /Link
+/Rect [60.24000000000001 686.2799999999999 157.46175585937502 700.56]
+/Type /Annot
+>>
+endobj
+367 0 obj
+<< /Border [0 0 0]
+/Dest (_looptemplate)
+/Subtype /Link
+/Rect [552.021 686.2799999999999 563.76 700.56]
+/Type /Annot
+>>
+endobj
+368 0 obj
+<< /Border [0 0 0]
+/Dest (_microservicemodel)
+/Subtype /Link
+/Rect [60.24000000000001 667.7999999999998 182.85900000000004 682.0799999999999]
+/Type /Annot
+>>
+endobj
+369 0 obj
+<< /Border [0 0 0]
+/Dest (_microservicemodel)
+/Subtype /Link
+/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
+/Type /Annot
+>>
+endobj
+370 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [60.24000000000001 686.2799999999999 181.74600000000004 700.56]
+/Rect [60.24000000000001 649.3199999999998 181.74600000000004 663.5999999999999]
/Type /Annot
>>
endobj
-345 0 obj
+371 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [552.021 686.2799999999999 563.76 700.56]
+/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-346 0 obj
+372 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [60.24000000000001 667.7999999999998 127.39800000000001 682.0799999999999]
+/Rect [60.24000000000001 630.8399999999998 127.39800000000001 645.1199999999999]
/Type /Annot
>>
endobj
-347 0 obj
+373 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
+/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
/Type /Annot
>>
endobj
-348 0 obj
+374 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [60.24000000000001 649.3199999999998 175.42479492187502 663.5999999999999]
+/Rect [60.24000000000001 612.3599999999998 175.42479492187502 626.6399999999999]
/Type /Annot
>>
endobj
-349 0 obj
+375 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
+/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
/Type /Annot
>>
endobj
-350 0 obj
+376 0 obj
+<< /Border [0 0 0]
+/Dest (_policymodel)
+/Subtype /Link
+/Rect [60.24000000000001 593.8799999999998 147.11700000000002 608.1599999999999]
+/Type /Annot
+>>
+endobj
+377 0 obj
+<< /Border [0 0 0]
+/Dest (_policymodel)
+/Subtype /Link
+/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
+/Type /Annot
+>>
+endobj
+378 0 obj
+<< /Border [0 0 0]
+/Dest (_service)
+/Subtype /Link
+/Rect [60.24000000000001 575.3999999999997 122.29500000000002 589.6799999999998]
+/Type /Annot
+>>
+endobj
+379 0 obj
+<< /Border [0 0 0]
+/Dest (_service)
+/Subtype /Link
+/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
+/Type /Annot
+>>
+endobj
+380 0 obj
+<< /Border [0 0 0]
+/Dest (_templatemicroservicemodel)
+/Subtype /Link
+/Rect [60.24000000000001 556.9199999999998 229.40775585937502 571.1999999999998]
+/Type /Annot
+>>
+endobj
+381 0 obj
+<< /Border [0 0 0]
+/Dest (_templatemicroservicemodel)
+/Subtype /Link
+/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
+/Type /Annot
+>>
+endobj
+382 0 obj
<< /Type /XObject
/Subtype /Form
/BBox [0 0 612.0 792.0]
@@ -28272,750 +33743,795 @@ Q
endstream
endobj
-351 0 obj
+383 0 obj
<< /Type /Outlines
-/Count 82
-/First 352 0 R
-/Last 420 0 R
+/Count 87
+/First 384 0 R
+/Last 452 0 R
>>
endobj
-352 0 obj
+384 0 obj
<< /Title <feff0043006c0061006d0070002000520065007300740020004100500049>
-/Parent 351 0 R
+/Parent 383 0 R
/Count 0
-/Next 353 0 R
+/Next 385 0 R
/Dest [7 0 R /XYZ 0 792.0 null]
>>
endobj
-353 0 obj
+385 0 obj
<< /Title <feff005400610062006c00650020006f006600200043006f006e00740065006e00740073>
-/Parent 351 0 R
+/Parent 383 0 R
/Count 0
-/Next 354 0 R
-/Prev 352 0 R
+/Next 386 0 R
+/Prev 384 0 R
/Dest [10 0 R /XYZ 0 792.0 null]
>>
endobj
-354 0 obj
+386 0 obj
<< /Title <feff004300680061007000740065007200200031002e0020004f0076006500720076006900650077>
-/Parent 351 0 R
+/Parent 383 0 R
/Count 2
-/First 355 0 R
-/Last 356 0 R
-/Next 357 0 R
-/Prev 353 0 R
+/First 387 0 R
+/Last 388 0 R
+/Next 389 0 R
+/Prev 385 0 R
/Dest [16 0 R /XYZ 0 792.0 null]
>>
endobj
-355 0 obj
+387 0 obj
<< /Title <feff0031002e0031002e002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e>
-/Parent 354 0 R
+/Parent 386 0 R
/Count 0
-/Next 356 0 R
+/Next 388 0 R
/Dest [16 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-356 0 obj
+388 0 obj
<< /Title <feff0031002e0032002e002000550052004900200073006300680065006d0065>
-/Parent 354 0 R
+/Parent 386 0 R
/Count 0
-/Prev 355 0 R
+/Prev 387 0 R
/Dest [16 0 R /XYZ 0 644.22 null]
>>
endobj
-357 0 obj
+389 0 obj
<< /Title <feff004300680061007000740065007200200032002e002000500061007400680073>
-/Parent 351 0 R
+/Parent 383 0 R
/Count 62
-/First 358 0 R
-/Last 416 0 R
-/Next 420 0 R
-/Prev 354 0 R
+/First 390 0 R
+/Last 448 0 R
+/Next 452 0 R
+/Prev 386 0 R
/Dest [25 0 R /XYZ 0 792.0 null]
>>
endobj
-358 0 obj
+390 0 obj
<< /Title <feff0032002e0031002e00200047004500540020002f00760031002f0063006c00640073002f0063006c006400730049006e0066006f>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 2
-/First 359 0 R
-/Last 360 0 R
-/Next 361 0 R
+/First 391 0 R
+/Last 392 0 R
+/Next 393 0 R
/Dest [25 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-359 0 obj
+391 0 obj
<< /Title <feff0032002e0031002e0031002e00200052006500730070006f006e007300650073>
-/Parent 358 0 R
+/Parent 390 0 R
/Count 0
-/Next 360 0 R
+/Next 392 0 R
/Dest [25 0 R /XYZ 0 672.0 null]
>>
endobj
-360 0 obj
+392 0 obj
<< /Title <feff0032002e0031002e0032002e002000500072006f00640075006300650073>
-/Parent 358 0 R
+/Parent 390 0 R
/Count 0
-/Prev 359 0 R
+/Prev 391 0 R
/Dest [25 0 R /XYZ 0 566.8800000000001 null]
>>
endobj
-361 0 obj
+393 0 obj
<< /Title <feff0032002e0032002e00200047004500540020002f00760031002f006800650061006c007400680063006800650063006b>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 2
-/First 362 0 R
-/Last 363 0 R
-/Next 364 0 R
-/Prev 358 0 R
+/First 394 0 R
+/Last 395 0 R
+/Next 396 0 R
+/Prev 390 0 R
/Dest [25 0 R /XYZ 0 510.60000000000025 null]
>>
endobj
-362 0 obj
+394 0 obj
<< /Title <feff0032002e0032002e0031002e00200052006500730070006f006e007300650073>
-/Parent 361 0 R
+/Parent 393 0 R
/Count 0
-/Next 363 0 R
+/Next 395 0 R
/Dest [25 0 R /XYZ 0 470.5200000000002 null]
>>
endobj
-363 0 obj
+395 0 obj
<< /Title <feff0032002e0032002e0032002e002000500072006f00640075006300650073>
-/Parent 361 0 R
+/Parent 393 0 R
/Count 0
-/Prev 362 0 R
+/Prev 394 0 R
/Dest [25 0 R /XYZ 0 365.4000000000002 null]
>>
endobj
-364 0 obj
+396 0 obj
<< /Title <feff0032002e0033002e00200047004500540020002f00760031002f0075007300650072002f0067006500740055007300650072>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 2
-/First 365 0 R
-/Last 366 0 R
-/Next 367 0 R
-/Prev 361 0 R
+/First 397 0 R
+/Last 398 0 R
+/Next 399 0 R
+/Prev 393 0 R
/Dest [25 0 R /XYZ 0 309.1200000000002 null]
>>
endobj
-365 0 obj
+397 0 obj
<< /Title <feff0032002e0033002e0031002e00200052006500730070006f006e007300650073>
-/Parent 364 0 R
+/Parent 396 0 R
/Count 0
-/Next 366 0 R
+/Next 398 0 R
/Dest [25 0 R /XYZ 0 269.04000000000013 null]
>>
endobj
-366 0 obj
+398 0 obj
<< /Title <feff0032002e0033002e0032002e002000500072006f00640075006300650073>
-/Parent 364 0 R
+/Parent 396 0 R
/Count 0
-/Prev 365 0 R
+/Prev 397 0 R
/Dest [25 0 R /XYZ 0 178.20000000000013 null]
>>
endobj
-367 0 obj
+399 0 obj
<< /Title <feff0032002e0034002e00200050005500540020002f00760032002f006c006f006f0070002f00640065006c006500740065002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 2
-/First 368 0 R
-/Last 369 0 R
-/Next 370 0 R
-/Prev 364 0 R
+/First 400 0 R
+/Last 401 0 R
+/Next 402 0 R
+/Prev 396 0 R
/Dest [25 0 R /XYZ 0 121.9200000000001 null]
>>
endobj
-368 0 obj
+400 0 obj
<< /Title <feff0032002e0034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 367 0 R
+/Parent 399 0 R
/Count 0
-/Next 369 0 R
+/Next 401 0 R
/Dest [41 0 R /XYZ 0 792.0 null]
>>
endobj
-369 0 obj
+401 0 obj
<< /Title <feff0032002e0034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 367 0 R
+/Parent 399 0 R
/Count 0
-/Prev 368 0 R
+/Prev 400 0 R
/Dest [41 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-370 0 obj
+402 0 obj
<< /Title <feff0032002e0035002e00200050005500540020002f00760032002f006c006f006f0070002f006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 371 0 R
-/Last 373 0 R
-/Next 374 0 R
-/Prev 367 0 R
+/First 403 0 R
+/Last 405 0 R
+/Next 406 0 R
+/Prev 399 0 R
/Dest [41 0 R /XYZ 0 562.4400000000004 null]
>>
endobj
-371 0 obj
+403 0 obj
<< /Title <feff0032002e0035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 370 0 R
+/Parent 402 0 R
/Count 0
-/Next 372 0 R
+/Next 404 0 R
/Dest [41 0 R /XYZ 0 522.3600000000005 null]
>>
endobj
-372 0 obj
+404 0 obj
<< /Title <feff0032002e0035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 370 0 R
+/Parent 402 0 R
/Count 0
-/Next 373 0 R
-/Prev 371 0 R
+/Next 405 0 R
+/Prev 403 0 R
/Dest [41 0 R /XYZ 0 417.2400000000005 null]
>>
endobj
-373 0 obj
+405 0 obj
<< /Title <feff0032002e0035002e0033002e002000500072006f00640075006300650073>
-/Parent 370 0 R
+/Parent 402 0 R
/Count 0
-/Prev 372 0 R
+/Prev 404 0 R
/Dest [41 0 R /XYZ 0 312.12000000000046 null]
>>
endobj
-374 0 obj
+406 0 obj
<< /Title <feff0032002e0036002e00200047004500540020002f00760032002f006c006f006f0070002f0067006500740041006c006c004e0061006d00650073>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 2
-/First 375 0 R
-/Last 376 0 R
-/Next 377 0 R
-/Prev 370 0 R
+/First 407 0 R
+/Last 408 0 R
+/Next 409 0 R
+/Prev 402 0 R
/Dest [41 0 R /XYZ 0 255.84000000000043 null]
>>
endobj
-375 0 obj
+407 0 obj
<< /Title <feff0032002e0036002e0031002e00200052006500730070006f006e007300650073>
-/Parent 374 0 R
+/Parent 406 0 R
/Count 0
-/Next 376 0 R
+/Next 408 0 R
/Dest [41 0 R /XYZ 0 215.76000000000042 null]
>>
endobj
-376 0 obj
+408 0 obj
<< /Title <feff0032002e0036002e0032002e002000500072006f00640075006300650073>
-/Parent 374 0 R
+/Parent 406 0 R
/Count 0
-/Prev 375 0 R
+/Prev 407 0 R
/Dest [41 0 R /XYZ 0 110.64000000000038 null]
>>
endobj
-377 0 obj
+409 0 obj
<< /Title <feff0032002e0037002e00200047004500540020002f00760032002f006c006f006f0070002f006700650074007300740061007400750073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 378 0 R
-/Last 380 0 R
-/Next 381 0 R
-/Prev 374 0 R
+/First 410 0 R
+/Last 412 0 R
+/Next 413 0 R
+/Prev 406 0 R
/Dest [55 0 R /XYZ 0 792.0 null]
>>
endobj
-378 0 obj
+410 0 obj
<< /Title <feff0032002e0037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 377 0 R
+/Parent 409 0 R
/Count 0
-/Next 379 0 R
+/Next 411 0 R
/Dest [55 0 R /XYZ 0 718.32 null]
>>
endobj
-379 0 obj
+411 0 obj
<< /Title <feff0032002e0037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 377 0 R
+/Parent 409 0 R
/Count 0
-/Next 380 0 R
-/Prev 378 0 R
+/Next 412 0 R
+/Prev 410 0 R
/Dest [55 0 R /XYZ 0 613.2000000000003 null]
>>
endobj
-380 0 obj
+412 0 obj
<< /Title <feff0032002e0037002e0033002e002000500072006f00640075006300650073>
-/Parent 377 0 R
+/Parent 409 0 R
/Count 0
-/Prev 379 0 R
+/Prev 411 0 R
/Dest [55 0 R /XYZ 0 508.0800000000004 null]
>>
endobj
-381 0 obj
+413 0 obj
<< /Title <feff0032002e0038002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500730074006100720074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 382 0 R
-/Last 384 0 R
-/Next 385 0 R
-/Prev 377 0 R
+/First 414 0 R
+/Last 416 0 R
+/Next 417 0 R
+/Prev 409 0 R
/Dest [55 0 R /XYZ 0 451.80000000000035 null]
>>
endobj
-382 0 obj
+414 0 obj
<< /Title <feff0032002e0038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 381 0 R
+/Parent 413 0 R
/Count 0
-/Next 383 0 R
+/Next 415 0 R
/Dest [55 0 R /XYZ 0 411.7200000000003 null]
>>
endobj
-383 0 obj
+415 0 obj
<< /Title <feff0032002e0038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 381 0 R
+/Parent 413 0 R
/Count 0
-/Next 384 0 R
-/Prev 382 0 R
+/Next 416 0 R
+/Prev 414 0 R
/Dest [55 0 R /XYZ 0 306.6000000000003 null]
>>
endobj
-384 0 obj
+416 0 obj
<< /Title <feff0032002e0038002e0033002e002000500072006f00640075006300650073>
-/Parent 381 0 R
+/Parent 413 0 R
/Count 0
-/Prev 383 0 R
+/Prev 415 0 R
/Dest [55 0 R /XYZ 0 201.48000000000027 null]
>>
endobj
-385 0 obj
+417 0 obj
<< /Title <feff0032002e0039002e00200050005500540020002f00760032002f006c006f006f0070002f00730074006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 386 0 R
-/Last 388 0 R
-/Next 389 0 R
-/Prev 381 0 R
+/First 418 0 R
+/Last 420 0 R
+/Next 421 0 R
+/Prev 413 0 R
/Dest [55 0 R /XYZ 0 145.20000000000024 null]
>>
endobj
-386 0 obj
+418 0 obj
<< /Title <feff0032002e0039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 385 0 R
+/Parent 417 0 R
/Count 0
-/Next 387 0 R
+/Next 419 0 R
/Dest [55 0 R /XYZ 0 105.12000000000023 null]
>>
endobj
-387 0 obj
+419 0 obj
<< /Title <feff0032002e0039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 385 0 R
+/Parent 417 0 R
/Count 0
-/Next 388 0 R
-/Prev 386 0 R
+/Next 420 0 R
+/Prev 418 0 R
/Dest [69 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-388 0 obj
+420 0 obj
<< /Title <feff0032002e0039002e0033002e002000500072006f00640075006300650073>
-/Parent 385 0 R
+/Parent 417 0 R
/Count 0
-/Prev 387 0 R
+/Prev 419 0 R
/Dest [69 0 R /XYZ 0 578.0400000000002 null]
>>
endobj
-389 0 obj
+421 0 obj
<< /Title <feff0032002e00310030002e00200050005500540020002f00760032002f006c006f006f0070002f007300750062006d00690074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 390 0 R
-/Last 392 0 R
-/Next 393 0 R
-/Prev 385 0 R
+/First 422 0 R
+/Last 424 0 R
+/Next 425 0 R
+/Prev 417 0 R
/Dest [69 0 R /XYZ 0 521.7600000000003 null]
>>
endobj
-390 0 obj
+422 0 obj
<< /Title <feff0032002e00310030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 389 0 R
+/Parent 421 0 R
/Count 0
-/Next 391 0 R
+/Next 423 0 R
/Dest [69 0 R /XYZ 0 481.68000000000035 null]
>>
endobj
-391 0 obj
+423 0 obj
<< /Title <feff0032002e00310030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 389 0 R
+/Parent 421 0 R
/Count 0
-/Next 392 0 R
-/Prev 390 0 R
+/Next 424 0 R
+/Prev 422 0 R
/Dest [69 0 R /XYZ 0 376.56000000000034 null]
>>
endobj
-392 0 obj
+424 0 obj
<< /Title <feff0032002e00310030002e0033002e002000500072006f00640075006300650073>
-/Parent 389 0 R
+/Parent 421 0 R
/Count 0
-/Prev 391 0 R
+/Prev 423 0 R
/Dest [69 0 R /XYZ 0 271.4400000000003 null]
>>
endobj
-393 0 obj
+425 0 obj
<< /Title <feff0032002e00310031002e00200047004500540020002f00760032002f006c006f006f0070002f0073007600670052006500700072006500730065006e0074006100740069006f006e002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 394 0 R
-/Last 396 0 R
-/Next 397 0 R
-/Prev 389 0 R
+/First 426 0 R
+/Last 428 0 R
+/Next 429 0 R
+/Prev 421 0 R
/Dest [69 0 R /XYZ 0 215.16000000000028 null]
>>
endobj
-394 0 obj
+426 0 obj
<< /Title <feff0032002e00310031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 393 0 R
+/Parent 425 0 R
/Count 0
-/Next 395 0 R
+/Next 427 0 R
/Dest [69 0 R /XYZ 0 175.08000000000027 null]
>>
endobj
-395 0 obj
+427 0 obj
<< /Title <feff0032002e00310031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 393 0 R
+/Parent 425 0 R
/Count 0
-/Next 396 0 R
-/Prev 394 0 R
+/Next 428 0 R
+/Prev 426 0 R
/Dest [82 0 R /XYZ 0 792.0 null]
>>
endobj
-396 0 obj
+428 0 obj
<< /Title <feff0032002e00310031002e0033002e002000500072006f00640075006300650073>
-/Parent 393 0 R
+/Parent 425 0 R
/Count 0
-/Prev 395 0 R
+/Prev 427 0 R
/Dest [82 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-397 0 obj
+429 0 obj
<< /Title <feff0032002e00310032002e00200050005500540020002f00760032002f006c006f006f0070002f0075006e006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 398 0 R
-/Last 400 0 R
-/Next 401 0 R
-/Prev 393 0 R
+/First 430 0 R
+/Last 432 0 R
+/Next 433 0 R
+/Prev 425 0 R
/Dest [82 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-398 0 obj
+430 0 obj
<< /Title <feff0032002e00310032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 397 0 R
+/Parent 429 0 R
/Count 0
-/Next 399 0 R
+/Next 431 0 R
/Dest [82 0 R /XYZ 0 556.9200000000004 null]
>>
endobj
-399 0 obj
+431 0 obj
<< /Title <feff0032002e00310032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 397 0 R
+/Parent 429 0 R
/Count 0
-/Next 400 0 R
-/Prev 398 0 R
+/Next 432 0 R
+/Prev 430 0 R
/Dest [82 0 R /XYZ 0 451.8000000000006 null]
>>
endobj
-400 0 obj
+432 0 obj
<< /Title <feff0032002e00310032002e0033002e002000500072006f00640075006300650073>
-/Parent 397 0 R
+/Parent 429 0 R
/Count 0
-/Prev 399 0 R
+/Prev 431 0 R
/Dest [82 0 R /XYZ 0 346.6800000000005 null]
>>
endobj
-401 0 obj
+433 0 obj
<< /Title <feff0032002e00310033002e00200050004f005300540020002f00760032002f006c006f006f0070002f0075007000640061007400650047006c006f00620061006c00500072006f0070006500720074006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 4
-/First 402 0 R
-/Last 405 0 R
-/Next 406 0 R
-/Prev 397 0 R
+/First 434 0 R
+/Last 437 0 R
+/Next 438 0 R
+/Prev 429 0 R
/Dest [82 0 R /XYZ 0 290.4000000000005 null]
>>
endobj
-402 0 obj
+434 0 obj
<< /Title <feff0032002e00310033002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 401 0 R
+/Parent 433 0 R
/Count 0
-/Next 403 0 R
+/Next 435 0 R
/Dest [82 0 R /XYZ 0 250.32000000000048 null]
>>
endobj
-403 0 obj
+435 0 obj
<< /Title <feff0032002e00310033002e0032002e00200052006500730070006f006e007300650073>
-/Parent 401 0 R
+/Parent 433 0 R
/Count 0
-/Next 404 0 R
-/Prev 402 0 R
+/Next 436 0 R
+/Prev 434 0 R
/Dest [82 0 R /XYZ 0 107.64000000000044 null]
>>
endobj
-404 0 obj
+436 0 obj
<< /Title <feff0032002e00310033002e0033002e00200043006f006e00730075006d00650073>
-/Parent 401 0 R
+/Parent 433 0 R
/Count 0
-/Next 405 0 R
-/Prev 403 0 R
+/Next 437 0 R
+/Prev 435 0 R
/Dest [96 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-405 0 obj
+437 0 obj
<< /Title <feff0032002e00310033002e0034002e002000500072006f00640075006300650073>
-/Parent 401 0 R
+/Parent 433 0 R
/Count 0
-/Prev 404 0 R
+/Prev 436 0 R
/Dest [96 0 R /XYZ 0 626.8800000000002 null]
>>
endobj
-406 0 obj
+438 0 obj
<< /Title <feff0032002e00310034002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 4
-/First 407 0 R
-/Last 410 0 R
-/Next 411 0 R
-/Prev 401 0 R
+/First 439 0 R
+/Last 442 0 R
+/Next 443 0 R
+/Prev 433 0 R
/Dest [96 0 R /XYZ 0 570.6000000000004 null]
>>
endobj
-407 0 obj
+439 0 obj
<< /Title <feff0032002e00310034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 406 0 R
+/Parent 438 0 R
/Count 0
-/Next 408 0 R
+/Next 440 0 R
/Dest [96 0 R /XYZ 0 502.4400000000004 null]
>>
endobj
-408 0 obj
+440 0 obj
<< /Title <feff0032002e00310034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 406 0 R
+/Parent 438 0 R
/Count 0
-/Next 409 0 R
-/Prev 407 0 R
+/Next 441 0 R
+/Prev 439 0 R
/Dest [96 0 R /XYZ 0 359.7600000000004 null]
>>
endobj
-409 0 obj
+441 0 obj
<< /Title <feff0032002e00310034002e0033002e00200043006f006e00730075006d00650073>
-/Parent 406 0 R
+/Parent 438 0 R
/Count 0
-/Next 410 0 R
-/Prev 408 0 R
+/Next 442 0 R
+/Prev 440 0 R
/Dest [96 0 R /XYZ 0 254.64000000000033 null]
>>
endobj
-410 0 obj
+442 0 obj
<< /Title <feff0032002e00310034002e0034002e002000500072006f00640075006300650073>
-/Parent 406 0 R
+/Parent 438 0 R
/Count 0
-/Prev 409 0 R
+/Prev 441 0 R
/Dest [96 0 R /XYZ 0 198.3600000000003 null]
>>
endobj
-411 0 obj
+443 0 obj
<< /Title <feff0032002e00310035002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 4
-/First 412 0 R
-/Last 415 0 R
-/Next 416 0 R
-/Prev 406 0 R
+/First 444 0 R
+/Last 447 0 R
+/Next 448 0 R
+/Prev 438 0 R
/Dest [96 0 R /XYZ 0 142.08000000000027 null]
>>
endobj
-412 0 obj
+444 0 obj
<< /Title <feff0032002e00310035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 411 0 R
+/Parent 443 0 R
/Count 0
-/Next 413 0 R
+/Next 445 0 R
/Dest [109 0 R /XYZ 0 792.0 null]
>>
endobj
-413 0 obj
+445 0 obj
<< /Title <feff0032002e00310035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 411 0 R
+/Parent 443 0 R
/Count 0
-/Next 414 0 R
-/Prev 412 0 R
+/Next 446 0 R
+/Prev 444 0 R
/Dest [109 0 R /XYZ 0 615.72 null]
>>
endobj
-414 0 obj
+446 0 obj
<< /Title <feff0032002e00310035002e0033002e00200043006f006e00730075006d00650073>
-/Parent 411 0 R
+/Parent 443 0 R
/Count 0
-/Next 415 0 R
-/Prev 413 0 R
+/Next 447 0 R
+/Prev 445 0 R
/Dest [109 0 R /XYZ 0 510.60000000000014 null]
>>
endobj
-415 0 obj
+447 0 obj
<< /Title <feff0032002e00310035002e0034002e002000500072006f00640075006300650073>
-/Parent 411 0 R
+/Parent 443 0 R
/Count 0
-/Prev 414 0 R
+/Prev 446 0 R
/Dest [109 0 R /XYZ 0 454.3200000000001 null]
>>
endobj
-416 0 obj
+448 0 obj
<< /Title <feff0032002e00310036002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 357 0 R
+/Parent 389 0 R
/Count 3
-/First 417 0 R
-/Last 419 0 R
-/Prev 411 0 R
+/First 449 0 R
+/Last 451 0 R
+/Prev 443 0 R
/Dest [109 0 R /XYZ 0 398.0400000000001 null]
>>
endobj
-417 0 obj
+449 0 obj
<< /Title <feff0032002e00310036002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 416 0 R
+/Parent 448 0 R
/Count 0
-/Next 418 0 R
+/Next 450 0 R
/Dest [109 0 R /XYZ 0 357.96000000000004 null]
>>
endobj
-418 0 obj
+450 0 obj
<< /Title <feff0032002e00310036002e0032002e00200052006500730070006f006e007300650073>
-/Parent 416 0 R
+/Parent 448 0 R
/Count 0
-/Next 419 0 R
-/Prev 417 0 R
+/Next 451 0 R
+/Prev 449 0 R
/Dest [109 0 R /XYZ 0 252.83999999999997 null]
>>
endobj
-419 0 obj
+451 0 obj
<< /Title <feff0032002e00310036002e0033002e002000500072006f00640075006300650073>
-/Parent 416 0 R
+/Parent 448 0 R
/Count 0
-/Prev 418 0 R
+/Prev 450 0 R
/Dest [109 0 R /XYZ 0 147.71999999999994 null]
>>
endobj
-420 0 obj
+452 0 obj
<< /Title <feff004300680061007000740065007200200033002e00200044006500660069006e006900740069006f006e0073>
-/Parent 351 0 R
-/Count 13
-/First 421 0 R
-/Last 433 0 R
-/Prev 357 0 R
+/Parent 383 0 R
+/Count 18
+/First 453 0 R
+/Last 470 0 R
+/Prev 389 0 R
/Dest [123 0 R /XYZ 0 792.0 null]
>>
endobj
-421 0 obj
+453 0 obj
<< /Title <feff0033002e0031002e00200043006c00640073004800650061006c007400680043006800650063006b>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 422 0 R
+/Next 454 0 R
/Dest [123 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-422 0 obj
+454 0 obj
<< /Title <feff0033002e0032002e00200043006c006400730049006e0066006f>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 423 0 R
-/Prev 421 0 R
+/Next 455 0 R
+/Prev 453 0 R
/Dest [123 0 R /XYZ 0 524.04 null]
>>
endobj
-423 0 obj
+455 0 obj
<< /Title <feff0033002e0033002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 424 0 R
-/Prev 422 0 R
+/Next 456 0 R
+/Prev 454 0 R
/Dest [123 0 R /XYZ 0 148.19999999999993 null]
>>
endobj
-424 0 obj
+456 0 obj
<< /Title <feff0033002e0034002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 425 0 R
-/Prev 423 0 R
+/Next 457 0 R
+/Prev 455 0 R
/Dest [130 0 R /XYZ 0 645.5999999999999 null]
>>
endobj
-425 0 obj
+457 0 obj
<< /Title <feff0033002e0035002e0020004a0073006f006e00410072007200610079>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 426 0 R
-/Prev 424 0 R
+/Next 458 0 R
+/Prev 456 0 R
/Dest [130 0 R /XYZ 0 457.56 null]
>>
endobj
-426 0 obj
+458 0 obj
<< /Title <feff0033002e0036002e0020004a0073006f006e004e0075006c006c>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 427 0 R
-/Prev 425 0 R
+/Next 459 0 R
+/Prev 457 0 R
/Dest [136 0 R /XYZ 0 307.56000000000034 null]
>>
endobj
-427 0 obj
+459 0 obj
<< /Title <feff0033002e0037002e0020004a0073006f006e004f0062006a006500630074>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 428 0 R
-/Prev 426 0 R
+/Next 460 0 R
+/Prev 458 0 R
/Dest [143 0 R /XYZ 0 157.32000000000022 null]
>>
endobj
-428 0 obj
+460 0 obj
<< /Title <feff0033002e0038002e0020004a0073006f006e005000720069006d00690074006900760065>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 429 0 R
-/Prev 427 0 R
+/Next 461 0 R
+/Prev 459 0 R
/Dest [158 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-429 0 obj
+461 0 obj
<< /Title <feff0033002e0039002e0020004c006f006f0070>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 430 0 R
-/Prev 428 0 R
+/Next 462 0 R
+/Prev 460 0 R
/Dest [166 0 R /XYZ 0 420.2400000000004 null]
>>
endobj
-430 0 obj
+462 0 obj
<< /Title <feff0033002e00310030002e0020004c006f006f0070004c006f0067>
-/Parent 420 0 R
+/Parent 452 0 R
/Count 0
-/Next 431 0 R
-/Prev 429 0 R
-/Dest [172 0 R /XYZ 0 532.9200000000001 null]
+/Next 463 0 R
+/Prev 461 0 R
+/Dest [171 0 R /XYZ 0 345.12000000000006 null]
>>
endobj
-431 0 obj
-<< /Title <feff0033002e00310031002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079>
-/Parent 420 0 R
+463 0 obj
+<< /Title <feff0033002e00310031002e0020004c006f006f007000540065006d0070006c006100740065>
+/Parent 452 0 R
/Count 0
-/Next 432 0 R
-/Prev 430 0 R
-/Dest [172 0 R /XYZ 0 232.2000000000001 null]
+/Next 464 0 R
+/Prev 462 0 R
+/Dest [180 0 R /XYZ 0 792.0 null]
>>
endobj
-432 0 obj
-<< /Title <feff0033002e00310032002e0020004e0075006d006200650072>
-/Parent 420 0 R
+464 0 obj
+<< /Title <feff0033002e00310032002e0020004d006900630072006f0053006500720076006900630065004d006f00640065006c>
+/Parent 452 0 R
/Count 0
-/Next 433 0 R
-/Prev 431 0 R
-/Dest [181 0 R /XYZ 0 570.48 null]
+/Next 465 0 R
+/Prev 463 0 R
+/Dest [180 0 R /XYZ 0 307.44 null]
>>
endobj
-433 0 obj
-<< /Title <feff0033002e00310033002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079>
-/Parent 420 0 R
+465 0 obj
+<< /Title <feff0033002e00310033002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079>
+/Parent 452 0 R
/Count 0
-/Prev 432 0 R
-/Dest [181 0 R /XYZ 0 502.6200000000001 null]
+/Next 466 0 R
+/Prev 464 0 R
+/Dest [187 0 R /XYZ 0 570.48 null]
>>
endobj
-434 0 obj
+466 0 obj
+<< /Title <feff0033002e00310034002e0020004e0075006d006200650072>
+/Parent 452 0 R
+/Count 0
+/Next 467 0 R
+/Prev 465 0 R
+/Dest [195 0 R /XYZ 0 645.5999999999999 null]
+>>
+endobj
+467 0 obj
+<< /Title <feff0033002e00310035002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079>
+/Parent 452 0 R
+/Count 0
+/Next 468 0 R
+/Prev 466 0 R
+/Dest [195 0 R /XYZ 0 577.74 null]
+>>
+endobj
+468 0 obj
+<< /Title <feff0033002e00310036002e00200050006f006c006900630079004d006f00640065006c>
+/Parent 452 0 R
+/Count 0
+/Next 469 0 R
+/Prev 467 0 R
+/Dest [195 0 R /XYZ 0 314.5800000000001 null]
+>>
+endobj
+469 0 obj
+<< /Title <feff0033002e00310037002e00200053006500720076006900630065>
+/Parent 452 0 R
+/Count 0
+/Next 470 0 R
+/Prev 468 0 R
+/Dest [205 0 R /XYZ 0 570.48 null]
+>>
+endobj
+470 0 obj
+<< /Title <feff0033002e00310038002e002000540065006d0070006c006100740065004d006900630072006f0053006500720076006900630065004d006f00640065006c>
+/Parent 452 0 R
+/Count 0
+/Prev 469 0 R
+/Dest [205 0 R /XYZ 0 382.4400000000001 null]
+>>
+endobj
+471 0 obj
<< /Nums [0 << /P (i)
>> 1 << /P (ii)
>> 2 << /P (iii)
@@ -29036,10 +34552,13 @@ endobj
>> 18 << /P (15)
>> 19 << /P (16)
>> 20 << /P (17)
+>> 21 << /P (18)
+>> 22 << /P (19)
+>> 23 << /P (20)
>>]
>>
endobj
-435 0 obj
+472 0 obj
<< /Length1 12112
/Length 7776
/Filter [/FlateDecode]
@@ -29072,10 +34591,10 @@ G)DzÎÿl
”a•dç4äft†#Ëe=<¥òª¦'½ýcÞɕߪù‘좼pNƒ/(i€À$šVô·(ý.½°Œÿ¾>Ö½t`jxp\5=àÛàÛ¥¬›Ž³€×X©wÚ«šŸ rèWõΪVÙö‡°-…/M³sœ6C,”é€C¬ÁÐT¨Ä«6
endstream
endobj
-436 0 obj
+473 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAA+NotoSerif
-/FontFile2 435 0 R
+/FontFile2 472 0 R
/FontBBox [-212 -250 1246 1047]
/Flags 6
/StemV 0
@@ -29086,7 +34605,7 @@ endobj
/XHeight 1098
>>
endobj
-437 0 obj
+474 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -29096,10 +34615,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-438 0 obj
+475 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 346 346 1000 1000 250 310 250 288 559 559 559 559 559 559 559 559 559 559 286 1000 559 1000 559 1000 1000 705 653 613 727 623 589 713 792 367 356 1000 623 937 763 742 604 1000 655 543 612 716 674 1046 1000 625 1000 1000 1000 1000 1000 458 1000 562 613 492 613 535 369 538 634 319 299 584 310 944 645 577 613 1000 471 451 352 634 579 861 578 564 1000 428 1000 428 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 361 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-439 0 obj
+476 0 obj
<< /Length1 11108
/Length 7380
/Filter [/FlateDecode]
@@ -29131,10 +34650,10 @@ Q u¨äå· J‰Y'O×ä_½º¡md°Ì“¬ ‘wù6–è´áMþÀÖrƒ±²‡]o[8ZðwÈæl…¾º¶û+ñ\ÛÈÍbSØæ®4KdF¿Ž»t
t!ꤶWLN-ÌŒÌi\Η¦frr8:¨©›è·kÊ¢QM;siVÓ>8;8³cpÀŽ*Ð$šB h¢a4‚æÀ…\ skÀ¼“ð7Œ¢hFu`ú!Ìh IDáO†^~j– Â÷ ðÚÿ½yrnRÓ183:®1 wMÂ]ì£h¨|2:
endstream
endobj
-440 0 obj
+477 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAB+NotoSerif-Bold
-/FontFile2 439 0 R
+/FontFile2 476 0 R
/FontBBox [-212 -250 1306 1058]
/Flags 6
/StemV 0
@@ -29145,7 +34664,7 @@ endobj
/XHeight 1098
>>
endobj
-441 0 obj
+478 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -29155,10 +34674,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-442 0 obj
+479 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 293 288 559 559 559 559 559 559 559 559 559 559 1000 1000 1000 1000 1000 1000 1000 752 671 667 767 652 621 769 818 400 368 1000 653 952 788 787 638 1000 707 585 652 747 698 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 599 648 526 648 570 407 560 666 352 345 636 352 985 666 612 645 1000 522 487 404 666 605 855 645 579 1000 441 1000 441 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-443 0 obj
+480 0 obj
<< /Length1 5116
/Length 3170
/Filter [/FlateDecode]
@@ -29178,10 +34697,10 @@ aÙR÷Ÿâör×ÿrŠÌš±ãø±m'™²ÏOr׸ÜóG‰š¸ÝMÖÝ #8çMî¾nzº95“ƒ6GðÑ`#%ýà xH‚¢±Å+ÅhžQrÍD
ÿ:´2õ]Û^Ô5 w,¥Âº*›Ó‹Œ58«mÖg·±nkÞÄ7cÙÞB4èÆa¯ÅÊD[NaéU‹<V ¥Éó`ØÉ@V΋š{KÙÀ—r¿­ËS«¯ ðê ó3³§e'ó(×ÚÏ«-{S}`-õy÷¢¦ /²±ò‹ð79à]èp$xrë’¤ÏÊÃ'ý›"ZÞé³/izïþ›]’Wâ~ ïÝ–þ &ÌÁT
endstream
endobj
-444 0 obj
+481 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAC+NotoSerif-Italic
-/FontFile2 443 0 R
+/FontFile2 480 0 R
/FontBBox [-254 -250 1238 1047]
/Flags 70
/StemV 0
@@ -29192,7 +34711,7 @@ endobj
/XHeight 1098
>>
endobj
-445 0 obj
+482 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -29202,10 +34721,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-446 0 obj
+483 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 653 1000 1000 1000 1000 1000 792 1000 1000 1000 1000 1000 1000 1000 620 1000 1000 543 612 1000 674 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 579 1000 486 579 493 1000 1000 599 304 1000 1000 304 895 599 574 577 560 467 463 368 599 1000 1000 1000 527 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-447 0 obj
+484 0 obj
<< /Length1 3280
/Length 2112
/Filter [/FlateDecode]
@@ -29220,10 +34739,10 @@ xœµV{L›×?ç³±yûyš’Ï|„<üÛ„b^ì
ˆ‡¶€$W´¦ö"k8À Vš­Ûi<êí!‹§–N..ðͶ&W+uXœ¶—¨:‹’j³† Z;Ù×cžOÎ-/²UFN¤ÓÉ6»][§)å%ÛÒâr*Ÿf©Ûf“RÓTó6°Óß<Qsäz‰B–Ó^"KD/“çùŸÞ)ƒ~™’¹T¾^õ‡i9šít-Ñ£\î‚céúìw='4‡î‚9÷F|ðÂBìßëVbCAÿWAþö}½‚[Ï‹¸1?¾ˆøbä¢Oe›Dm$ BD<yBT™'ÂÑ`Á"BY@Ü ‹þS„ÃU´nH²g#ü‡"–Ùª¬"Zø›b±Ù*r–@(Ü+DLVQa9YÅ‹Þ Áz#VQia¦&ÁôLøOÆßDŒ¤~`ü{Ä(˜Ä<sXôŠH‘áåYJ&Ƭ¢Êr±WÉ;¿:1a`Ô–‹ ’È»#Ê·èuü»U,°ðÏ2'W †»^T6úE†3ñL”gD«ÑdŠ3ÊqÌaa.:­Qk"Ä" CJ§ØÂÛE5„çû_t–óS“9¦WÂ<“k>Ã÷e|Q!ÃgÉÀÀE/iR~L zãŒ!›RÉSûz•Édä×3T2 hŽÊ±™$5Eà×eçŒM"FÂJh@È|f #D™A΄-VQËŽAOqëXŒÐÿG¶ÑÙ§΄™–Y(‰Ì÷YÙüSBF-òÁð!ãû´c°¼^ôvuaàŠ–Ú[š™òÑ0›Caa’¢ºŒ´ ÐE•÷†Â—¨¯»c]—GZD>&VÇk·}•[D’R]h²²ß‘zÖóé?+wú_½î“ä
endstream
endobj
-448 0 obj
+485 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAD+mplus1mn-regular
-/FontFile2 447 0 R
+/FontFile2 484 0 R
/FontBBox [0 -230 1000 860]
/Flags 4
/StemV 0
@@ -29234,7 +34753,7 @@ endobj
/XHeight 0
>>
endobj
-449 0 obj
+486 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -29244,467 +34763,504 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-450 0 obj
+487 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 500 1000 500 1000 1000 1000 500 500 1000 500 500 500 500 500 1000 1000 500 500 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
xref
-0 451
+0 488
0000000000 65535 f
0000000015 00000 n
0000000264 00000 n
0000000467 00000 n
-0000000675 00000 n
-0000000726 00000 n
-0000000880 00000 n
-0000001124 00000 n
-0000001302 00000 n
-0000001469 00000 n
-0000032687 00000 n
-0000033465 00000 n
-0000066050 00000 n
-0000066848 00000 n
-0000072025 00000 n
-0000072311 00000 n
-0000074743 00000 n
-0000074980 00000 n
-0000075023 00000 n
-0000075072 00000 n
-0000075154 00000 n
-0000075327 00000 n
-0000075382 00000 n
-0000075557 00000 n
-0000075601 00000 n
-0000087803 00000 n
-0000088064 00000 n
-0000088107 00000 n
-0000088162 00000 n
-0000088205 00000 n
-0000088370 00000 n
-0000088425 00000 n
-0000088600 00000 n
-0000088656 00000 n
-0000088711 00000 n
-0000088884 00000 n
-0000088939 00000 n
-0000088994 00000 n
-0000089050 00000 n
-0000089106 00000 n
-0000089161 00000 n
-0000106910 00000 n
-0000107177 00000 n
-0000107220 00000 n
-0000107275 00000 n
-0000107330 00000 n
-0000107385 00000 n
-0000107440 00000 n
-0000107601 00000 n
-0000107657 00000 n
-0000107713 00000 n
-0000108022 00000 n
-0000108297 00000 n
-0000108353 00000 n
-0000108409 00000 n
-0000124554 00000 n
-0000124828 00000 n
-0000124871 00000 n
-0000124915 00000 n
-0000124970 00000 n
-0000125131 00000 n
-0000125186 00000 n
-0000125242 00000 n
-0000125297 00000 n
-0000125352 00000 n
-0000125513 00000 n
-0000125569 00000 n
-0000125625 00000 n
-0000125681 00000 n
-0000144665 00000 n
-0000144939 00000 n
-0000144994 00000 n
-0000145155 00000 n
-0000145210 00000 n
-0000145265 00000 n
-0000145321 00000 n
-0000145377 00000 n
-0000145538 00000 n
-0000145593 00000 n
-0000145649 00000 n
-0000145705 00000 n
-0000146015 00000 n
-0000163757 00000 n
-0000164031 00000 n
-0000164074 00000 n
-0000164129 00000 n
-0000164184 00000 n
-0000164539 00000 n
-0000164594 00000 n
-0000164649 00000 n
-0000164812 00000 n
-0000164867 00000 n
-0000164922 00000 n
-0000164978 00000 n
-0000165134 00000 n
-0000165190 00000 n
-0000180790 00000 n
-0000181073 00000 n
-0000181224 00000 n
-0000181279 00000 n
-0000181334 00000 n
-0000181390 00000 n
-0000181446 00000 n
-0000181610 00000 n
-0000181666 00000 n
-0000181844 00000 n
-0000181901 00000 n
-0000181957 00000 n
-0000182014 00000 n
-0000199793 00000 n
-0000200079 00000 n
-0000200124 00000 n
-0000200282 00000 n
-0000200328 00000 n
-0000200490 00000 n
-0000200548 00000 n
-0000200605 00000 n
-0000200945 00000 n
-0000201002 00000 n
-0000201060 00000 n
-0000201118 00000 n
-0000201282 00000 n
-0000201340 00000 n
-0000217180 00000 n
-0000217419 00000 n
-0000217464 00000 n
-0000217521 00000 n
-0000217567 00000 n
-0000217882 00000 n
-0000217940 00000 n
-0000238206 00000 n
-0000238471 00000 n
-0000238632 00000 n
-0000238689 00000 n
-0000238735 00000 n
-0000238903 00000 n
-0000260570 00000 n
-0000260851 00000 n
-0000261018 00000 n
-0000261187 00000 n
-0000261358 00000 n
-0000261517 00000 n
-0000261575 00000 n
-0000283238 00000 n
-0000283527 00000 n
-0000283675 00000 n
-0000283822 00000 n
-0000283991 00000 n
-0000284142 00000 n
-0000284281 00000 n
-0000284339 00000 n
-0000306997 00000 n
-0000307286 00000 n
-0000307434 00000 n
-0000307581 00000 n
-0000307730 00000 n
-0000307881 00000 n
-0000308020 00000 n
-0000329990 00000 n
-0000330279 00000 n
-0000330336 00000 n
-0000330504 00000 n
-0000330671 00000 n
-0000330841 00000 n
-0000331013 00000 n
-0000331173 00000 n
-0000353310 00000 n
-0000353583 00000 n
-0000353640 00000 n
-0000353811 00000 n
-0000353982 00000 n
-0000354148 00000 n
-0000375264 00000 n
-0000375553 00000 n
-0000375710 00000 n
-0000375859 00000 n
-0000376015 00000 n
-0000376072 00000 n
-0000376226 00000 n
-0000376283 00000 n
-0000376452 00000 n
-0000389611 00000 n
-0000389900 00000 n
-0000390069 00000 n
-0000390232 00000 n
-0000390278 00000 n
-0000390335 00000 n
-0000390657 00000 n
-0000390826 00000 n
-0000390986 00000 n
-0000391150 00000 n
-0000391294 00000 n
-0000391439 00000 n
-0000391604 00000 n
-0000391760 00000 n
-0000391918 00000 n
-0000392065 00000 n
-0000392227 00000 n
-0000392369 00000 n
-0000392534 00000 n
-0000392678 00000 n
-0000392835 00000 n
-0000392981 00000 n
-0000393137 00000 n
-0000393282 00000 n
-0000393447 00000 n
-0000393591 00000 n
-0000393750 00000 n
-0000393898 00000 n
-0000394056 00000 n
-0000394203 00000 n
-0000394359 00000 n
-0000394504 00000 n
-0000394664 00000 n
-0000394813 00000 n
-0000394971 00000 n
-0000395118 00000 n
-0000395284 00000 n
-0000395429 00000 n
-0000395598 00000 n
-0000395746 00000 n
-0000395907 00000 n
-0000396057 00000 n
-0000396222 00000 n
-0000396366 00000 n
-0000396536 00000 n
-0000396685 00000 n
-0000396844 00000 n
-0000396992 00000 n
-0000397151 00000 n
-0000397299 00000 n
-0000397465 00000 n
-0000397610 00000 n
-0000397770 00000 n
-0000397919 00000 n
-0000398078 00000 n
-0000398226 00000 n
-0000398391 00000 n
-0000398535 00000 n
-0000398707 00000 n
-0000398858 00000 n
-0000399019 00000 n
-0000399169 00000 n
-0000399327 00000 n
-0000399474 00000 n
-0000399639 00000 n
-0000399783 00000 n
-0000399953 00000 n
-0000400102 00000 n
-0000400263 00000 n
-0000400413 00000 n
-0000400573 00000 n
-0000400722 00000 n
-0000400889 00000 n
-0000401035 00000 n
-0000401207 00000 n
-0000401358 00000 n
-0000401518 00000 n
-0000401667 00000 n
-0000401825 00000 n
-0000401972 00000 n
-0000402137 00000 n
-0000402281 00000 n
-0000402439 00000 n
-0000402576 00000 n
-0000402724 00000 n
-0000402862 00000 n
-0000403019 00000 n
-0000403155 00000 n
-0000403297 00000 n
-0000403429 00000 n
-0000403599 00000 n
-0000403748 00000 n
-0000403907 00000 n
-0000404056 00000 n
-0000404225 00000 n
-0000404373 00000 n
-0000404535 00000 n
-0000404678 00000 n
-0000404848 00000 n
-0000404997 00000 n
-0000405156 00000 n
-0000405305 00000 n
-0000405474 00000 n
-0000405622 00000 n
-0000405784 00000 n
-0000405927 00000 n
-0000406097 00000 n
-0000406246 00000 n
-0000406405 00000 n
-0000406554 00000 n
-0000406711 00000 n
-0000406857 00000 n
-0000407027 00000 n
-0000407176 00000 n
-0000407341 00000 n
-0000407485 00000 n
-0000407656 00000 n
-0000407806 00000 n
-0000407965 00000 n
-0000408114 00000 n
-0000408273 00000 n
-0000408421 00000 n
-0000408592 00000 n
-0000408742 00000 n
-0000408904 00000 n
-0000409048 00000 n
-0000409219 00000 n
-0000409369 00000 n
-0000409528 00000 n
-0000409677 00000 n
-0000409836 00000 n
-0000409984 00000 n
-0000410154 00000 n
-0000410303 00000 n
-0000410458 00000 n
-0000410602 00000 n
-0000410773 00000 n
-0000410923 00000 n
-0000411084 00000 n
-0000411235 00000 n
-0000411406 00000 n
-0000411556 00000 n
-0000411727 00000 n
-0000411877 00000 n
-0000412052 00000 n
-0000412206 00000 n
-0000412374 00000 n
-0000412521 00000 n
-0000412687 00000 n
-0000412843 00000 n
-0000413025 00000 n
-0000413185 00000 n
-0000413353 00000 n
-0000413499 00000 n
-0000413663 00000 n
-0000413805 00000 n
-0000413973 00000 n
-0000414119 00000 n
-0000414255 00000 n
-0000414392 00000 n
-0000414543 00000 n
-0000414672 00000 n
-0000414826 00000 n
-0000414958 00000 n
-0000415123 00000 n
-0000415266 00000 n
-0000415430 00000 n
-0000415572 00000 n
-0000415747 00000 n
-0000415900 00000 n
-0000416185 00000 n
-0000416263 00000 n
-0000416427 00000 n
-0000416618 00000 n
-0000416846 00000 n
-0000417063 00000 n
-0000417233 00000 n
-0000417450 00000 n
-0000417704 00000 n
-0000417877 00000 n
-0000418058 00000 n
-0000418319 00000 n
-0000418504 00000 n
-0000418685 00000 n
-0000418949 00000 n
-0000419135 00000 n
-0000419317 00000 n
-0000419621 00000 n
-0000419798 00000 n
-0000419983 00000 n
-0000420287 00000 n
-0000420476 00000 n
-0000420675 00000 n
-0000420857 00000 n
-0000421138 00000 n
-0000421324 00000 n
-0000421506 00000 n
-0000421810 00000 n
-0000421988 00000 n
-0000422187 00000 n
-0000422368 00000 n
-0000422677 00000 n
-0000422866 00000 n
-0000423065 00000 n
-0000423247 00000 n
-0000423544 00000 n
-0000423734 00000 n
-0000423933 00000 n
-0000424114 00000 n
-0000424422 00000 n
-0000424616 00000 n
-0000424820 00000 n
-0000425005 00000 n
-0000425358 00000 n
-0000425552 00000 n
-0000425743 00000 n
-0000425928 00000 n
-0000426244 00000 n
-0000426437 00000 n
-0000426640 00000 n
-0000426825 00000 n
-0000427201 00000 n
-0000427395 00000 n
-0000427599 00000 n
-0000427798 00000 n
-0000427983 00000 n
-0000428367 00000 n
-0000428560 00000 n
-0000428763 00000 n
-0000428963 00000 n
-0000429148 00000 n
-0000429537 00000 n
-0000429719 00000 n
-0000429912 00000 n
-0000430113 00000 n
-0000430299 00000 n
-0000430566 00000 n
-0000430761 00000 n
-0000430966 00000 n
-0000431153 00000 n
-0000431381 00000 n
-0000431583 00000 n
-0000431760 00000 n
-0000431985 00000 n
-0000432229 00000 n
-0000432410 00000 n
-0000432599 00000 n
-0000432796 00000 n
-0000433004 00000 n
-0000433176 00000 n
-0000433364 00000 n
-0000433596 00000 n
-0000433769 00000 n
-0000433983 00000 n
-0000434335 00000 n
-0000442203 00000 n
-0000442419 00000 n
-0000443782 00000 n
-0000444851 00000 n
-0000452323 00000 n
-0000452544 00000 n
-0000453907 00000 n
-0000454987 00000 n
-0000458248 00000 n
-0000458474 00000 n
-0000459837 00000 n
-0000460953 00000 n
-0000463156 00000 n
-0000463370 00000 n
-0000464733 00000 n
+0000000699 00000 n
+0000000750 00000 n
+0000000904 00000 n
+0000001148 00000 n
+0000001326 00000 n
+0000001493 00000 n
+0000032711 00000 n
+0000033489 00000 n
+0000066074 00000 n
+0000066872 00000 n
+0000076303 00000 n
+0000076669 00000 n
+0000079101 00000 n
+0000079338 00000 n
+0000079381 00000 n
+0000079430 00000 n
+0000079512 00000 n
+0000079685 00000 n
+0000079740 00000 n
+0000079915 00000 n
+0000079959 00000 n
+0000092161 00000 n
+0000092422 00000 n
+0000092465 00000 n
+0000092520 00000 n
+0000092563 00000 n
+0000092728 00000 n
+0000092783 00000 n
+0000092958 00000 n
+0000093014 00000 n
+0000093069 00000 n
+0000093242 00000 n
+0000093297 00000 n
+0000093352 00000 n
+0000093408 00000 n
+0000093464 00000 n
+0000093519 00000 n
+0000111268 00000 n
+0000111535 00000 n
+0000111578 00000 n
+0000111633 00000 n
+0000111688 00000 n
+0000111743 00000 n
+0000111798 00000 n
+0000111959 00000 n
+0000112015 00000 n
+0000112071 00000 n
+0000112380 00000 n
+0000112730 00000 n
+0000112786 00000 n
+0000112842 00000 n
+0000128987 00000 n
+0000129261 00000 n
+0000129304 00000 n
+0000129348 00000 n
+0000129403 00000 n
+0000129564 00000 n
+0000129619 00000 n
+0000129675 00000 n
+0000129730 00000 n
+0000129785 00000 n
+0000129946 00000 n
+0000130002 00000 n
+0000130058 00000 n
+0000130114 00000 n
+0000149098 00000 n
+0000149372 00000 n
+0000149427 00000 n
+0000149588 00000 n
+0000149643 00000 n
+0000149698 00000 n
+0000149754 00000 n
+0000149810 00000 n
+0000149971 00000 n
+0000150026 00000 n
+0000150082 00000 n
+0000150138 00000 n
+0000150448 00000 n
+0000168190 00000 n
+0000168464 00000 n
+0000168507 00000 n
+0000168562 00000 n
+0000168617 00000 n
+0000168961 00000 n
+0000169016 00000 n
+0000169071 00000 n
+0000169234 00000 n
+0000169289 00000 n
+0000169344 00000 n
+0000169400 00000 n
+0000169556 00000 n
+0000169612 00000 n
+0000185212 00000 n
+0000185495 00000 n
+0000185646 00000 n
+0000185701 00000 n
+0000185756 00000 n
+0000185812 00000 n
+0000185868 00000 n
+0000186032 00000 n
+0000186088 00000 n
+0000186266 00000 n
+0000186323 00000 n
+0000186379 00000 n
+0000186436 00000 n
+0000204215 00000 n
+0000204501 00000 n
+0000204546 00000 n
+0000204704 00000 n
+0000204750 00000 n
+0000204912 00000 n
+0000204970 00000 n
+0000205027 00000 n
+0000205367 00000 n
+0000205424 00000 n
+0000205482 00000 n
+0000205540 00000 n
+0000205704 00000 n
+0000205762 00000 n
+0000221602 00000 n
+0000221841 00000 n
+0000221886 00000 n
+0000221943 00000 n
+0000221989 00000 n
+0000222327 00000 n
+0000222385 00000 n
+0000242651 00000 n
+0000242916 00000 n
+0000243077 00000 n
+0000243134 00000 n
+0000243180 00000 n
+0000243348 00000 n
+0000265015 00000 n
+0000265296 00000 n
+0000265463 00000 n
+0000265632 00000 n
+0000265803 00000 n
+0000265962 00000 n
+0000266020 00000 n
+0000287683 00000 n
+0000287972 00000 n
+0000288120 00000 n
+0000288267 00000 n
+0000288436 00000 n
+0000288587 00000 n
+0000288726 00000 n
+0000288784 00000 n
+0000311442 00000 n
+0000311731 00000 n
+0000311879 00000 n
+0000312026 00000 n
+0000312175 00000 n
+0000312326 00000 n
+0000312465 00000 n
+0000334435 00000 n
+0000334724 00000 n
+0000334781 00000 n
+0000334949 00000 n
+0000335116 00000 n
+0000335286 00000 n
+0000335458 00000 n
+0000335618 00000 n
+0000357126 00000 n
+0000357391 00000 n
+0000357448 00000 n
+0000357619 00000 n
+0000357788 00000 n
+0000380679 00000 n
+0000380976 00000 n
+0000381122 00000 n
+0000381293 00000 n
+0000381450 00000 n
+0000381590 00000 n
+0000381767 00000 n
+0000381825 00000 n
+0000381990 00000 n
+0000402536 00000 n
+0000402809 00000 n
+0000402854 00000 n
+0000403036 00000 n
+0000403176 00000 n
+0000403222 00000 n
+0000403386 00000 n
+0000425253 00000 n
+0000425534 00000 n
+0000425696 00000 n
+0000425742 00000 n
+0000426117 00000 n
+0000426286 00000 n
+0000426453 00000 n
+0000426624 00000 n
+0000445811 00000 n
+0000446100 00000 n
+0000446243 00000 n
+0000446300 00000 n
+0000446346 00000 n
+0000446515 00000 n
+0000446675 00000 n
+0000446838 00000 n
+0000447003 00000 n
+0000447060 00000 n
+0000463034 00000 n
+0000463315 00000 n
+0000463361 00000 n
+0000463530 00000 n
+0000463690 00000 n
+0000463747 00000 n
+0000463918 00000 n
+0000464094 00000 n
+0000464238 00000 n
+0000464383 00000 n
+0000464548 00000 n
+0000464704 00000 n
+0000464862 00000 n
+0000465009 00000 n
+0000465171 00000 n
+0000465313 00000 n
+0000465478 00000 n
+0000465622 00000 n
+0000465779 00000 n
+0000465925 00000 n
+0000466081 00000 n
+0000466226 00000 n
+0000466391 00000 n
+0000466535 00000 n
+0000466694 00000 n
+0000466842 00000 n
+0000467000 00000 n
+0000467147 00000 n
+0000467303 00000 n
+0000467448 00000 n
+0000467608 00000 n
+0000467757 00000 n
+0000467915 00000 n
+0000468062 00000 n
+0000468228 00000 n
+0000468373 00000 n
+0000468542 00000 n
+0000468690 00000 n
+0000468851 00000 n
+0000469001 00000 n
+0000469167 00000 n
+0000469312 00000 n
+0000469482 00000 n
+0000469631 00000 n
+0000469790 00000 n
+0000469938 00000 n
+0000470097 00000 n
+0000470245 00000 n
+0000470412 00000 n
+0000470558 00000 n
+0000470718 00000 n
+0000470867 00000 n
+0000471026 00000 n
+0000471174 00000 n
+0000471339 00000 n
+0000471483 00000 n
+0000471655 00000 n
+0000471806 00000 n
+0000471967 00000 n
+0000472117 00000 n
+0000472275 00000 n
+0000472422 00000 n
+0000472587 00000 n
+0000472731 00000 n
+0000472901 00000 n
+0000473050 00000 n
+0000473211 00000 n
+0000473361 00000 n
+0000473521 00000 n
+0000473670 00000 n
+0000473837 00000 n
+0000473983 00000 n
+0000474155 00000 n
+0000474306 00000 n
+0000474466 00000 n
+0000474615 00000 n
+0000474773 00000 n
+0000474920 00000 n
+0000475085 00000 n
+0000475229 00000 n
+0000475387 00000 n
+0000475524 00000 n
+0000475672 00000 n
+0000475810 00000 n
+0000475967 00000 n
+0000476103 00000 n
+0000476246 00000 n
+0000476379 00000 n
+0000476549 00000 n
+0000476698 00000 n
+0000476857 00000 n
+0000477006 00000 n
+0000477175 00000 n
+0000477323 00000 n
+0000477486 00000 n
+0000477630 00000 n
+0000477800 00000 n
+0000477949 00000 n
+0000478108 00000 n
+0000478257 00000 n
+0000478426 00000 n
+0000478574 00000 n
+0000478737 00000 n
+0000478881 00000 n
+0000479051 00000 n
+0000479200 00000 n
+0000479359 00000 n
+0000479508 00000 n
+0000479665 00000 n
+0000479811 00000 n
+0000479981 00000 n
+0000480130 00000 n
+0000480296 00000 n
+0000480441 00000 n
+0000480612 00000 n
+0000480762 00000 n
+0000480921 00000 n
+0000481070 00000 n
+0000481229 00000 n
+0000481377 00000 n
+0000481548 00000 n
+0000481698 00000 n
+0000481861 00000 n
+0000482006 00000 n
+0000482177 00000 n
+0000482327 00000 n
+0000482486 00000 n
+0000482635 00000 n
+0000482794 00000 n
+0000482942 00000 n
+0000483112 00000 n
+0000483261 00000 n
+0000483417 00000 n
+0000483562 00000 n
+0000483733 00000 n
+0000483883 00000 n
+0000484044 00000 n
+0000484195 00000 n
+0000484366 00000 n
+0000484516 00000 n
+0000484687 00000 n
+0000484837 00000 n
+0000485012 00000 n
+0000485166 00000 n
+0000485334 00000 n
+0000485481 00000 n
+0000485647 00000 n
+0000485803 00000 n
+0000485985 00000 n
+0000486145 00000 n
+0000486313 00000 n
+0000486459 00000 n
+0000486623 00000 n
+0000486765 00000 n
+0000486933 00000 n
+0000487079 00000 n
+0000487215 00000 n
+0000487352 00000 n
+0000487503 00000 n
+0000487632 00000 n
+0000487786 00000 n
+0000487918 00000 n
+0000488077 00000 n
+0000488214 00000 n
+0000488389 00000 n
+0000488542 00000 n
+0000488718 00000 n
+0000488872 00000 n
+0000489036 00000 n
+0000489178 00000 n
+0000489353 00000 n
+0000489506 00000 n
+0000489675 00000 n
+0000489822 00000 n
+0000489987 00000 n
+0000490130 00000 n
+0000490313 00000 n
+0000490474 00000 n
+0000490759 00000 n
+0000490837 00000 n
+0000491001 00000 n
+0000491192 00000 n
+0000491420 00000 n
+0000491637 00000 n
+0000491807 00000 n
+0000492024 00000 n
+0000492278 00000 n
+0000492451 00000 n
+0000492632 00000 n
+0000492893 00000 n
+0000493078 00000 n
+0000493259 00000 n
+0000493523 00000 n
+0000493709 00000 n
+0000493891 00000 n
+0000494195 00000 n
+0000494372 00000 n
+0000494557 00000 n
+0000494861 00000 n
+0000495050 00000 n
+0000495249 00000 n
+0000495431 00000 n
+0000495712 00000 n
+0000495898 00000 n
+0000496080 00000 n
+0000496384 00000 n
+0000496562 00000 n
+0000496761 00000 n
+0000496942 00000 n
+0000497251 00000 n
+0000497440 00000 n
+0000497639 00000 n
+0000497821 00000 n
+0000498118 00000 n
+0000498308 00000 n
+0000498507 00000 n
+0000498688 00000 n
+0000498996 00000 n
+0000499190 00000 n
+0000499394 00000 n
+0000499579 00000 n
+0000499932 00000 n
+0000500126 00000 n
+0000500317 00000 n
+0000500502 00000 n
+0000500818 00000 n
+0000501011 00000 n
+0000501214 00000 n
+0000501399 00000 n
+0000501775 00000 n
+0000501969 00000 n
+0000502173 00000 n
+0000502372 00000 n
+0000502557 00000 n
+0000502941 00000 n
+0000503134 00000 n
+0000503337 00000 n
+0000503537 00000 n
+0000503722 00000 n
+0000504111 00000 n
+0000504293 00000 n
+0000504486 00000 n
+0000504687 00000 n
+0000504873 00000 n
+0000505140 00000 n
+0000505335 00000 n
+0000505540 00000 n
+0000505727 00000 n
+0000505955 00000 n
+0000506157 00000 n
+0000506334 00000 n
+0000506559 00000 n
+0000506803 00000 n
+0000506984 00000 n
+0000507173 00000 n
+0000507370 00000 n
+0000507578 00000 n
+0000507750 00000 n
+0000507939 00000 n
+0000508135 00000 n
+0000508352 00000 n
+0000508573 00000 n
+0000508757 00000 n
+0000508974 00000 n
+0000509178 00000 n
+0000509355 00000 n
+0000509601 00000 n
+0000510004 00000 n
+0000517872 00000 n
+0000518088 00000 n
+0000519451 00000 n
+0000520520 00000 n
+0000527992 00000 n
+0000528213 00000 n
+0000529576 00000 n
+0000530656 00000 n
+0000533917 00000 n
+0000534143 00000 n
+0000535506 00000 n
+0000536622 00000 n
+0000538825 00000 n
+0000539039 00000 n
+0000540402 00000 n
trailer
-<< /Size 451
+<< /Size 488
/Root 2 0 R
/Info 1 0 R
>>
startxref
-465858
+541527
%%EOF
diff --git a/extra/sql/bulkload/create-tables.sql b/extra/sql/bulkload/create-tables.sql
index 6e9ff7c8..c5b52d71 100644
--- a/extra/sql/bulkload/create-tables.sql
+++ b/extra/sql/bulkload/create-tables.sql
@@ -1,4 +1,29 @@
+ create table dictionary (
+ name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ dictionary_second_level integer,
+ dictionary_type varchar(255),
+ primary key (name)
+ ) engine=InnoDB;
+
+ create table dictionary_elements (
+ name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ description varchar(255),
+ short_name varchar(255) not null,
+ subdictionary_id varchar(255) not null,
+ type varchar(255) not null,
+ dictionary_id varchar(255),
+ primary key (name)
+ ) engine=InnoDB;
+
create table hibernate_sequence (
next_val bigint
) engine=InnoDB;
@@ -15,8 +40,25 @@
primary key (id)
) engine=InnoDB;
+ create table loop_templates (
+ name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ blueprint_yaml MEDIUMTEXT not null,
+ maximum_instances_allowed integer,
+ svg_representation MEDIUMTEXT,
+ service_uuid varchar(255),
+ primary key (name)
+ ) engine=InnoDB;
+
create table loops (
name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
blueprint_yaml MEDIUMTEXT not null,
dcae_blueprint_id varchar(255),
dcae_deployment_id varchar(255),
@@ -24,6 +66,7 @@
global_properties_json json,
last_computed_state varchar(255) not null,
svg_representation MEDIUMTEXT,
+ loop_template_name varchar(255),
service_uuid varchar(255),
primary key (name)
) engine=InnoDB;
@@ -34,13 +77,33 @@
primary key (loop_id, microservicepolicy_id)
) engine=InnoDB;
+ create table micro_service_models (
+ name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ blueprint_yaml varchar(255) not null,
+ policy_type varchar(255) not null,
+ policy_model_type varchar(255),
+ policy_model_version varchar(255),
+ primary key (name)
+ ) engine=InnoDB;
+
create table micro_service_policies (
name varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ context varchar(255),
+ device_type_scope varchar(255),
json_representation json not null,
- model_type varchar(255) not null,
+ policy_model_type varchar(255) not null,
policy_tosca MEDIUMTEXT not null,
properties json,
shared bit not null,
+ micro_service_model_id varchar(255),
primary key (name)
) engine=InnoDB;
@@ -49,9 +112,24 @@
configurations_json json,
json_representation json not null,
loop_id varchar(255) not null,
+ policy_model_type varchar(255),
+ policy_model_version varchar(255),
primary key (name)
) engine=InnoDB;
+ create table policy_models (
+ policy_model_type varchar(255) not null,
+ version varchar(255) not null,
+ created_by varchar(255),
+ created_timestamp datetime(6) not null,
+ updated_by varchar(255),
+ updated_timestamp datetime(6) not null,
+ policy_acronym varchar(255),
+ policy_tosca MEDIUMTEXT,
+ policy_variant varchar(255),
+ primary key (policy_model_type, version)
+ ) engine=InnoDB;
+
create table services (
service_uuid varchar(255) not null,
name varchar(255) not null,
@@ -61,11 +139,36 @@
primary key (service_uuid)
) engine=InnoDB;
+ create table templates_microservicemodels (
+ loop_template_name varchar(255) not null,
+ micro_service_model_name varchar(255) not null,
+ flow_order integer not null,
+ primary key (loop_template_name, micro_service_model_name)
+ ) engine=InnoDB;
+
+ alter table dictionary_elements
+ add constraint UK_qxkrvsrhp26m60apfvxphpl3d unique (short_name);
+
+ alter table dictionary_elements
+ add constraint FKn87bpgpm9i56w7uko585rbkgn
+ foreign key (dictionary_id)
+ references dictionary (name);
+
alter table loop_logs
add constraint FK1j0cda46aickcaoxqoo34khg2
foreign key (loop_id)
references loops (name);
+ alter table loop_templates
+ add constraint FKn692dk6281wvp1o95074uacn6
+ foreign key (service_uuid)
+ references services (service_uuid);
+
+ alter table loops
+ add constraint FK844uwy82wt0l66jljkjqembpj
+ foreign key (loop_template_name)
+ references loop_templates (name);
+
alter table loops
add constraint FK4b9wnqopxogwek014i1shqw7w
foreign key (service_uuid)
@@ -81,7 +184,32 @@
foreign key (loop_id)
references loops (name);
+ alter table micro_service_models
+ add constraint FKlkcffpnuavcg65u5o4tr66902
+ foreign key (policy_model_type, policy_model_version)
+ references policy_models (policy_model_type, version);
+
+ alter table micro_service_policies
+ add constraint FK5p7lipy9m2v7d4n3fvlclwse
+ foreign key (micro_service_model_id)
+ references micro_service_models (name);
+
alter table operational_policies
add constraint FK1ddoggk9ni2bnqighv6ecmuwu
foreign key (loop_id)
references loops (name);
+
+ alter table operational_policies
+ add constraint FKlsyhfkoqvkwj78ofepxhoctip
+ foreign key (policy_model_type, policy_model_version)
+ references policy_models (policy_model_type, version);
+
+ alter table templates_microservicemodels
+ add constraint FKq2gqg5q9jrkx8voosn7x5plqo
+ foreign key (loop_template_name)
+ references loop_templates (name);
+
+ alter table templates_microservicemodels
+ add constraint FKphn3m81suxavmj9c4u06cchju
+ foreign key (micro_service_model_name)
+ references micro_service_models (name);
diff --git a/extra/sql/dump/test-data.sql b/extra/sql/dump/test-data.sql
index a68914f2..e3f50727 100644
--- a/extra/sql/dump/test-data.sql
+++ b/extra/sql/dump/test-data.sql
@@ -21,12 +21,30 @@
USE `cldsdb4`;
--
+-- Dumping data for table `dictionary`
+--
+
+LOCK TABLES `dictionary` WRITE;
+/*!40000 ALTER TABLE `dictionary` DISABLE KEYS */;
+/*!40000 ALTER TABLE `dictionary` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Dumping data for table `dictionary_elements`
+--
+
+LOCK TABLES `dictionary_elements` WRITE;
+/*!40000 ALTER TABLE `dictionary_elements` DISABLE KEYS */;
+/*!40000 ALTER TABLE `dictionary_elements` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
-- Dumping data for table `hibernate_sequence`
--
LOCK TABLES `hibernate_sequence` WRITE;
/*!40000 ALTER TABLE `hibernate_sequence` DISABLE KEYS */;
-INSERT INTO `hibernate_sequence` VALUES (3);
+INSERT INTO `hibernate_sequence` VALUES (4);
/*!40000 ALTER TABLE `hibernate_sequence` ENABLE KEYS */;
UNLOCK TABLES;
@@ -40,14 +58,23 @@ LOCK TABLES `loop_logs` WRITE;
UNLOCK TABLES;
--
+-- Dumping data for table `loop_templates`
+--
+
+LOCK TABLES `loop_templates` WRITE;
+/*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */;
+/*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
-- Dumping data for table `loops`
--
LOCK TABLES `loops` WRITE;
/*!40000 ALTER TABLE `loops` DISABLE KEYS */;
-INSERT INTO `loops` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName1_tca','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-cea8ab39-c2a6-467c-8392-f5940cb06903',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"location_id\": \"\",\n \"service_id\": \"\",\n \"policy_id\": \"TCA_yHsgu_v1_0_ResourceInstanceName1_tca\"\n }\n}','DESIGN','{\n \"serviceDetails\": {\n \"serviceType\": \"\",\n \"namingPolicy\": \"\",\n \"environmentContext\": \"General_Revenue-Bearing\",\n \"serviceEcompNaming\": \"true\",\n \"serviceRole\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n \"ecompGeneratedNaming\": \"true\",\n \"category\": \"Network L4+\",\n \"type\": \"Service\",\n \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n \"instantiationType\": \"A-la-carte\"\n },\n \"resourceDetails\": {\n \"CP\": {},\n \"VL\": {},\n \"VF\": {\n \"vLoadBalancerMS 0\": {\n \"resourceVendor\": \"Test\",\n \"resourceVendorModelNumber\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n \"subcategory\": \"Load Balancer\",\n \"category\": \"Application L4+\",\n \"type\": \"VF\",\n \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n \"version\": \"1.0\",\n \"resourceVendorRelease\": \"1.0\",\n \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\"\n }\n },\n \"CR\": {},\n \"VFC\": {},\n \"PNF\": {},\n \"Service\": {},\n \"CVFC\": {},\n \"Service Proxy\": {},\n \"Configuration\": {},\n \"AllottedResource\": {},\n \"VFModule\": {\n \"Vloadbalancerms..vpkg..module-1\": {\n \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vpkg\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vdns..module-3\": {\n \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vdns\",\n \"max_vf_module_instances\": 50,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..base_template..module-0\": {\n \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"min_vf_module_instances\": 1,\n \"vf_module_label\": \"base_template\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Base\",\n \"isBase\": true,\n \"initial_count\": 1,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vlb..module-2\": {\n \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vlb\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n }\n }\n }\n}','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-714265dd-ecd5-4898-842c-d276a9bf18eb\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-5c38d9f9-6640-448d-978a-da41e6085f95\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"TCA_yHsgu_v1_0_ResourceInstanceName1_tca\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"392\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">TCA</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-3d999b13-01f2-4544-a7f9-b20b39f01e9b\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-3c3a2521-6755-49f7-bd88-bd9278ce59e2\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>');
-INSERT INTO `loops` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName1_tca_3','tosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap.svc.cluster.local\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\"\n consul_host:\n type: string\n default: consul-server.onap.svc.cluster.local\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service.dcae.svc.cluster.local\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"none\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: dcae.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \n get_input: policy_model_id\n','typeId-4ebc7a81-b235-4d45-84ad-5e9497f761bb',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"aaiEnrichmentHost\": \"aai.onap.svc.cluster.local\",\n \"aaiEnrichmentPort\": \"8443\",\n \"enableAAIEnrichment\": true,\n \"dmaap_host\": \"message-router.onap.svc.cluster.local\",\n \"dmaap_port\": \"3904\",\n \"enableRedisCaching\": false,\n \"redisHosts\": \"dcae-redis.onap.svc.cluster.local:6379\",\n \"tag_version\": \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\",\n \"consul_host\": \"consul-server.onap.svc.cluster.local\",\n \"consul_port\": \"8500\",\n \"cbs_host\": \"config-binding-service.dcae.svc.cluster.local\",\n \"cbs_port\": \"10000\",\n \"external_port\": \"32012\",\n \"policy_model_id\": \"onap.policies.monitoring.cdap.tca.hi.lo.app\",\n \"policy_id\": \"tca_k8s_yHsgu_v1_0_ResourceInstanceName1_tca_3\"\n }\n}','DESIGN','{\n \"serviceDetails\": {\n \"serviceType\": \"\",\n \"namingPolicy\": \"\",\n \"environmentContext\": \"General_Revenue-Bearing\",\n \"serviceEcompNaming\": \"true\",\n \"serviceRole\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n \"ecompGeneratedNaming\": \"true\",\n \"category\": \"Network L4+\",\n \"type\": \"Service\",\n \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n \"instantiationType\": \"A-la-carte\"\n },\n \"resourceDetails\": {\n \"CP\": {},\n \"VL\": {},\n \"VF\": {\n \"vLoadBalancerMS 0\": {\n \"resourceVendor\": \"Test\",\n \"resourceVendorModelNumber\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n \"subcategory\": \"Load Balancer\",\n \"category\": \"Application L4+\",\n \"type\": \"VF\",\n \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n \"version\": \"1.0\",\n \"resourceVendorRelease\": \"1.0\",\n \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\"\n }\n },\n \"CR\": {},\n \"VFC\": {},\n \"PNF\": {},\n \"Service\": {},\n \"CVFC\": {},\n \"Service Proxy\": {},\n \"Configuration\": {},\n \"AllottedResource\": {},\n \"VFModule\": {\n \"Vloadbalancerms..vpkg..module-1\": {\n \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vpkg\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vdns..module-3\": {\n \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vdns\",\n \"max_vf_module_instances\": 50,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..base_template..module-0\": {\n \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"min_vf_module_instances\": 1,\n \"vf_module_label\": \"base_template\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Base\",\n \"isBase\": true,\n \"initial_count\": 1,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vlb..module-2\": {\n \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vlb\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n }\n }\n }\n}','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-e9c3baa3-8628-45ab-aba7-d402ff446515\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-5f8c876b-e1a1-4ad5-8dc5-18f8857993c9\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"tca_k8s_yHsgu_v1_0_ResourceInstanceName1_tca_3\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-97b2cf24-ce17-4c11-bce7-cc91380f7d36\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-4750e86e-a8e3-4882-be43-1823d2602451\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>');
-INSERT INTO `loops` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName2_tca_2','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# 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.vNicPerformanceArray[*].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.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-f3f5a314-25aa-46c8-87c2-65686b510940',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"aaiEnrichmentHost\": \"aai.onap.svc.cluster.local\",\n \"aaiEnrichmentPort\": \"8443\",\n \"enableAAIEnrichment\": true,\n \"dmaap_host\": \"message-router.onap\",\n \"dmaap_port\": \"3904\",\n \"enableRedisCaching\": false,\n \"redisHosts\": \"dcae-redis.onap.svc.cluster.local:6379\",\n \"tag_version\": \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\",\n \"consul_host\": \"consul-server.onap\",\n \"consul_port\": \"8500\",\n \"cbs_host\": \"config-binding-servicel\",\n \"cbs_port\": \"10000\",\n \"external_port\": \"32012\",\n \"policy_model_id\": \"onap.policies.monitoring.cdap.tca.hi.lo.app\",\n \"policy_id\": \"tca_k8s_yHsgu_v1_0_ResourceInstanceName2_tca_2\"\n }\n}','DESIGN','{\n \"serviceDetails\": {\n \"serviceType\": \"\",\n \"namingPolicy\": \"\",\n \"environmentContext\": \"General_Revenue-Bearing\",\n \"serviceEcompNaming\": \"true\",\n \"serviceRole\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n \"ecompGeneratedNaming\": \"true\",\n \"category\": \"Network L4+\",\n \"type\": \"Service\",\n \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n \"instantiationType\": \"A-la-carte\"\n },\n \"resourceDetails\": {\n \"CP\": {},\n \"VL\": {},\n \"VF\": {\n \"vLoadBalancerMS 0\": {\n \"resourceVendor\": \"Test\",\n \"resourceVendorModelNumber\": \"\",\n \"name\": \"vLoadBalancerMS\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n \"subcategory\": \"Load Balancer\",\n \"category\": \"Application L4+\",\n \"type\": \"VF\",\n \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n \"version\": \"1.0\",\n \"resourceVendorRelease\": \"1.0\",\n \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\"\n }\n },\n \"CR\": {},\n \"VFC\": {},\n \"PNF\": {},\n \"Service\": {},\n \"CVFC\": {},\n \"Service Proxy\": {},\n \"Configuration\": {},\n \"AllottedResource\": {},\n \"VFModule\": {\n \"Vloadbalancerms..vpkg..module-1\": {\n \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vpkg\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vdns..module-3\": {\n \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vdns\",\n \"max_vf_module_instances\": 50,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..base_template..module-0\": {\n \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"min_vf_module_instances\": 1,\n \"vf_module_label\": \"base_template\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Base\",\n \"isBase\": true,\n \"initial_count\": 1,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vlb..module-2\": {\n \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vlb\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n }\n }\n }\n}','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-8fb9df1b-1a8e-42fa-bc68-897d347195a4\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-e7c96cae-3a70-4da1-85f8-bdc0c405618b\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"tca_k8s_yHsgu_v1_0_ResourceInstanceName2_tca_2\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-37ffb78c-7f22-4ab1-b35e-3af1cb981625\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-f158a132-21cd-4ec7-9951-1527d84ea536\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>');
+INSERT INTO `loops` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca','','2020-01-16 11:40:15.417599','','2020-01-16 11:40:15.417599','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-18ab8a65-b4c0-4380-9f50-fb790fcb96e0',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"location_id\": \"\",\n \"service_id\": \"\",\n \"policy_id\": \"TCA_jkJJ0_v1_0_ResourceInstanceName1_tca\"\n }\n}','DESIGN','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-f014f3d8-7921-4935-aea5-1155f83035d6\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-fe357e05-abfc-4223-b5fa-580ad6567bf3\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"TCA_jkJJ0_v1_0_ResourceInstanceName1_tca\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"392\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">TCA</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-839f73cc-095a-48fa-ad9c-ffd46132c188\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-1d0ff2c6-5b43-4f35-99dd-30a30dae94ff\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>',NULL,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loops` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca_3','','2020-01-16 11:40:15.298873','','2020-01-16 11:40:15.298873','tosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap.svc.cluster.local\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\"\n consul_host:\n type: string\n default: consul-server.onap.svc.cluster.local\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service.dcae.svc.cluster.local\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"none\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: dcae.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \n get_input: policy_model_id\n','typeId-1a03e700-8c46-4c98-97cf-ca3212537216',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"aaiEnrichmentHost\": \"aai.onap.svc.cluster.local\",\n \"aaiEnrichmentPort\": \"8443\",\n \"enableAAIEnrichment\": true,\n \"dmaap_host\": \"message-router.onap.svc.cluster.local\",\n \"dmaap_port\": \"3904\",\n \"enableRedisCaching\": false,\n \"redisHosts\": \"dcae-redis.onap.svc.cluster.local:6379\",\n \"tag_version\": \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest\",\n \"consul_host\": \"consul-server.onap.svc.cluster.local\",\n \"consul_port\": \"8500\",\n \"cbs_host\": \"config-binding-service.dcae.svc.cluster.local\",\n \"cbs_port\": \"10000\",\n \"external_port\": \"32012\",\n \"policy_model_id\": \"onap.policies.monitoring.cdap.tca.hi.lo.app\",\n \"policy_id\": \"tca_k8s_jkJJ0_v1_0_ResourceInstanceName1_tca_3\"\n }\n}','DESIGN','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-b02ad490-5135-46bd-ae0d-ee2b024f54c5\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-b5c8a833-d0e4-4a06-8f11-bc900024a8a2\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"tca_k8s_jkJJ0_v1_0_ResourceInstanceName1_tca_3\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-1336ff4e-2b2a-46d9-8538-501fc922e9e0\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-1f1d6e20-1cf4-4cc6-a898-4454da260117\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>',NULL,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loops` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName2_tca_2','','2020-01-16 11:40:15.117933','','2020-01-16 11:40:15.117933','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# 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.vNicPerformanceArray[*].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.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-537599ec-0cce-4303-ab83-dbfb6145723a',NULL,NULL,'{\n \"dcaeDeployParameters\": {\n \"aaiEnrichmentHost\": \"aai.onap.svc.cluster.local\",\n \"aaiEnrichmentPort\": \"8443\",\n \"enableAAIEnrichment\": true,\n \"dmaap_host\": \"message-router.onap\",\n \"dmaap_port\": \"3904\",\n \"enableRedisCaching\": false,\n \"redisHosts\": \"dcae-redis.onap.svc.cluster.local:6379\",\n \"tag_version\": \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\",\n \"consul_host\": \"consul-server.onap\",\n \"consul_port\": \"8500\",\n \"cbs_host\": \"config-binding-servicel\",\n \"cbs_port\": \"10000\",\n \"external_port\": \"32012\",\n \"policy_model_id\": \"onap.policies.monitoring.cdap.tca.hi.lo.app\",\n \"policy_id\": \"tca_k8s_jkJJ0_v1_0_ResourceInstanceName2_tca_2\"\n }\n}','DESIGN','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1,\n \"title\": \"Operational policies\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"Operational Policy Item\",\n \"id\": \"operational_policy_item\",\n \"headerTemplate\": \"{{self.name}}\",\n \"required\": [\n \"name\",\n \"configurationsJson\"\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Operational policy name\",\n \"readOnly\": \"True\"\n },\n \"configurationsJson\": {\n \"type\": \"object\",\n \"title\": \"Configuration\",\n \"required\": [\n \"operational_policy\",\n \"guard_policies\"\n ],\n \"properties\": {\n \"operational_policy\": {\n \"type\": \"object\",\n \"title\": \"Related Parameters\",\n \"required\": [\n \"controlLoop\",\n \"policies\"\n ],\n \"properties\": {\n \"controlLoop\": {\n \"type\": \"object\",\n \"title\": \"Control Loop details\",\n \"required\": [\n \"timeout\",\n \"abatement\",\n \"trigger_policy\",\n \"controlLoopName\"\n ],\n \"properties\": {\n \"timeout\": {\n \"type\": \"string\",\n \"title\": \"Overall Time Limit\",\n \"default\": \"0\",\n \"format\": \"number\"\n },\n \"abatement\": {\n \"type\": \"string\",\n \"title\": \"Abatement\",\n \"enum\": [\n \"True\",\n \"False\"\n ]\n },\n \"trigger_policy\": {\n \"type\": \"string\",\n \"title\": \"Policy Decision Entry\"\n },\n \"controlLoopName\": {\n \"type\": \"string\",\n \"title\": \"Control loop name\",\n \"readOnly\": \"True\"\n }\n }\n },\n \"policies\": {\n \"uniqueItems\": \"true\",\n \"id\": \"policies_array\",\n \"type\": \"array\",\n \"title\": \"Policy Decision Tree\",\n \"format\": \"tabs-top\",\n \"items\": {\n \"title\": \"Policy Decision\",\n \"type\": \"object\",\n \"id\": \"policy_item\",\n \"headerTemplate\": \"{{self.id}} - {{self.recipe}}\",\n \"format\": \"categories\",\n \"basicCategoryTitle\": \"recipe\",\n \"required\": [\n \"id\",\n \"recipe\",\n \"retry\",\n \"timeout\",\n \"actor\",\n \"success\",\n \"failure\",\n \"failure_timeout\",\n \"failure_retries\",\n \"failure_exception\",\n \"failure_guard\",\n \"target\"\n ],\n \"properties\": {\n \"id\": {\n \"default\": \"Policy 1\",\n \"title\": \"Policy ID\",\n \"type\": \"string\"\n },\n \"recipe\": {\n \"title\": \"Recipe\",\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"retry\": {\n \"default\": \"0\",\n \"title\": \"Number of Retry\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"timeout\": {\n \"default\": \"0\",\n \"title\": \"Timeout\",\n \"type\": \"string\",\n \"format\": \"number\"\n },\n \"actor\": {\n \"title\": \"Actor\",\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"payload\": {\n \"title\": \"Payload (YAML)\",\n \"type\": \"string\",\n \"format\": \"textarea\"\n },\n \"success\": {\n \"default\": \"final_success\",\n \"title\": \"When Success\",\n \"type\": \"string\"\n },\n \"failure\": {\n \"default\": \"final_failure\",\n \"title\": \"When Failure\",\n \"type\": \"string\"\n },\n \"failure_timeout\": {\n \"default\": \"final_failure_timeout\",\n \"title\": \"When Failure Timeout\",\n \"type\": \"string\"\n },\n \"failure_retries\": {\n \"default\": \"final_failure_retries\",\n \"title\": \"When Failure Retries\",\n \"type\": \"string\"\n },\n \"failure_exception\": {\n \"default\": \"final_failure_exception\",\n \"title\": \"When Failure Exception\",\n \"type\": \"string\"\n },\n \"failure_guard\": {\n \"default\": \"final_failure_guard\",\n \"title\": \"When Failure Guard\",\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"resourceID\"\n ],\n \"anyOf\": [\n {\n \"title\": \"User Defined\",\n \"additionalProperties\": \"True\",\n \"properties\": {\n \"type\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\",\n \"enum\": [\n \"VNF\",\n \"VFMODULE\",\n \"VM\"\n ]\n },\n \"resourceID\": {\n \"title\": \"Target type\",\n \"type\": \"string\",\n \"default\": \"\"\n }\n }\n },\n {\n \"title\": \"VNF-vLoadBalancerMS 0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VNF\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"vLoadBalancerMS\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vpkg..module-1\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vpkg..module-1\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vdns..module-3\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vdns..module-3\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..base_template..module-0\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..base_template..module-0\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"readOnly\": \"True\"\n }\n }\n },\n {\n \"title\": \"VFMODULE-Vloadbalancerms..vlb..module-2\",\n \"properties\": {\n \"type\": {\n \"title\": \"Type\",\n \"type\": \"string\",\n \"default\": \"VFMODULE\",\n \"readOnly\": \"True\"\n },\n \"resourceID\": {\n \"title\": \"Resource ID\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelInvariantId\": {\n \"title\": \"Model Invariant Id (ModelInvariantUUID)\",\n \"type\": \"string\",\n \"default\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"readOnly\": \"True\"\n },\n \"modelVersionId\": {\n \"title\": \"Model Version Id (ModelUUID)\",\n \"type\": \"string\",\n \"default\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"readOnly\": \"True\"\n },\n \"modelName\": {\n \"title\": \"Model Name\",\n \"type\": \"string\",\n \"default\": \"Vloadbalancerms..vlb..module-2\",\n \"readOnly\": \"True\"\n },\n \"modelVersion\": {\n \"title\": \"Model Version\",\n \"type\": \"string\",\n \"default\": \"1\",\n \"readOnly\": \"True\"\n },\n \"modelCustomizationId\": {\n \"title\": \"Customization ID\",\n \"type\": \"string\",\n \"default\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"readOnly\": \"True\"\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n },\n \"guard_policies\": {\n \"type\": \"array\",\n \"format\": \"tabs-top\",\n \"title\": \"Associated Guard policies\",\n \"items\": {\n \"headerTemplate\": \"{{self.policy-id}} - {{self.content.recipe}}\",\n \"anyOf\": [\n {\n \"title\": \"Guard MinMax\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.minmax.new\",\n \"pattern\": \"^(guard.minmax\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"min\": {\n \"type\": \"string\",\n \"default\": \"0\"\n },\n \"max\": {\n \"type\": \"string\",\n \"default\": \"1\"\n }\n }\n }\n }\n },\n {\n \"title\": \"Guard Frequency\",\n \"type\": \"object\",\n \"properties\": {\n \"policy-id\": {\n \"type\": \"string\",\n \"default\": \"guard.frequency.new\",\n \"pattern\": \"^(guard.frequency\\\\..*)$\"\n },\n \"content\": {\n \"properties\": {\n \"actor\": {\n \"type\": \"string\",\n \"enum\": [\n \"APPC\",\n \"SO\",\n \"VFC\",\n \"SDNC\",\n \"SDNR\"\n ]\n },\n \"recipe\": {\n \"type\": \"string\",\n \"enum\": [\n \"Restart\",\n \"Rebuild\",\n \"Migrate\",\n \"Health-Check\",\n \"ModifyConfig\",\n \"VF Module Create\",\n \"VF Module Delete\",\n \"Reroute\"\n ]\n },\n \"targets\": {\n \"type\": \"string\",\n \"default\": \".*\"\n },\n \"clname\": {\n \"type\": \"string\",\n \"template\": \"{{loopName}}\",\n \"watch\": {\n \"loopName\": \"operational_policy_item.configurationsJson.operational_policy.controlLoop.controlLoopName\"\n }\n },\n \"guardActiveStart\": {\n \"type\": \"string\",\n \"default\": \"00:00:00Z\"\n },\n \"guardActiveEnd\": {\n \"type\": \"string\",\n \"default\": \"10:00:00Z\"\n },\n \"limit\": {\n \"type\": \"string\"\n },\n \"timeWindow\": {\n \"type\": \"string\"\n },\n \"timeUnits\": {\n \"type\": \"string\",\n \"enum\": [\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\"\n ]\n }\n }\n }\n }\n }\n ]\n }\n }\n }\n }\n }\n }\n }\n}','<svg xmlns=\"http://www.w3.org/2000/svg\"><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"start-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><circle fill=\"none\" r=\"17\" cx=\"18\" cy=\"41\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-8ea2736b-d11f-4d89-ac2e-51bceae4c3ad\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"35\" x2=\"123\" y1=\"41\"/><polygon fill=\"none\" points=\" 121 39 121 43 125 41\"/><polygon points=\" 121 39 121 43 125 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"VES\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"127\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"127\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"176.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">VES</text><line y2=\"83\" fill=\"none\" x1=\"147\" x2=\"147\" y1=\"1\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-87d4d8bb-5b55-4525-ae99-28830b0065f8\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"250\" x2=\"338\" y1=\"41\"/><polygon fill=\"none\" points=\" 336 39 336 43 340 41\"/><polygon points=\" 336 39 336 43 340 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"tca_k8s_jkJJ0_v1_0_ResourceInstanceName2_tca_2\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"342\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"342\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"379.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">tca_k8s</text><line y2=\"61\" fill=\"none\" x1=\"342\" x2=\"465\" y1=\"61\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-9f97766a-84d7-48bd-9e58-59f6cd505382\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"465\" x2=\"553\" y1=\"41\"/><polygon fill=\"none\" points=\" 551 39 551 43 555 41\"/><polygon points=\" 551 39 551 43 555 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"OperationalPolicy\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><rect fill=\"none\" x=\"557\" width=\"123\" y=\"1\" height=\"82\"/></g><g fill-opacity=\"0\" fill=\"rgb(0,0,0)\" text-rendering=\"optimizeQuality\" shape-rendering=\"geometricPrecision\" stroke=\"rgb(0,0,0)\" stroke-opacity=\"0\" stroke-width=\"2\"><rect x=\"557\" width=\"123\" y=\"1\" height=\"82\" stroke=\"none\"/></g><g text-rendering=\"optimizeQuality\" stroke-width=\"2\" shape-rendering=\"geometricPrecision\" font-family=\"sans-serif\"><text x=\"564.5\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">OperationalPolicy</text><line y2=\"1\" fill=\"none\" x1=\"557\" x2=\"618\" y1=\"42\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"Arrow-6c16481c-e161-4361-b5e1-37109fcdd32b\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"2\"><line y2=\"41\" fill=\"none\" x1=\"680\" x2=\"768\" y1=\"41\"/><polygon fill=\"none\" points=\" 766 39 766 43 770 41\"/><polygon points=\" 766 39 766 43 770 41\" stroke=\"none\"/></g></g></g><g fill-opacity=\"1\" color-rendering=\"auto\" color-interpolation=\"auto\" text-rendering=\"auto\" stroke=\"black\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" stroke-dasharray=\"none\" font-weight=\"normal\" stroke-width=\"1\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"stop-circle\" stroke-linejoin=\"miter\" font-size=\"12px\" image-rendering=\"auto\" stroke-dashoffset=\"0\"><!--Generated by the Batik Graphics2D SVG Generator--><defs id=\"genericDefs\"/><g><g shape-rendering=\"geometricPrecision\" text-rendering=\"optimizeQuality\" stroke-width=\"4\"><circle fill=\"none\" r=\"17\" cx=\"789\" cy=\"41\"/></g></g></g></svg>',NULL,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
/*!40000 ALTER TABLE `loops` ENABLE KEYS */;
UNLOCK TABLES;
@@ -57,21 +84,30 @@ UNLOCK TABLES;
LOCK TABLES `loops_microservicepolicies` WRITE;
/*!40000 ALTER TABLE `loops_microservicepolicies` DISABLE KEYS */;
-INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName1_tca','TCA_yHsgu_v1_0_ResourceInstanceName1_tca');
-INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName1_tca_3','tca_k8s_yHsgu_v1_0_ResourceInstanceName1_tca_3');
-INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_yHsgu_v1_0_ResourceInstanceName2_tca_2','tca_k8s_yHsgu_v1_0_ResourceInstanceName2_tca_2');
+INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca','TCA_jkJJ0_v1_0_ResourceInstanceName1_tca');
+INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca_3','tca_k8s_jkJJ0_v1_0_ResourceInstanceName1_tca_3');
+INSERT INTO `loops_microservicepolicies` VALUES ('LOOP_jkJJ0_v1_0_ResourceInstanceName2_tca_2','tca_k8s_jkJJ0_v1_0_ResourceInstanceName2_tca_2');
/*!40000 ALTER TABLE `loops_microservicepolicies` ENABLE KEYS */;
UNLOCK TABLES;
--
+-- Dumping data for table `micro_service_models`
+--
+
+LOCK TABLES `micro_service_models` WRITE;
+/*!40000 ALTER TABLE `micro_service_models` DISABLE KEYS */;
+/*!40000 ALTER TABLE `micro_service_models` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
-- Dumping data for table `micro_service_policies`
--
LOCK TABLES `micro_service_policies` WRITE;
/*!40000 ALTER TABLE `micro_service_policies` DISABLE KEYS */;
-INSERT INTO `micro_service_policies` VALUES ('tca_k8s_yHsgu_v1_0_ResourceInstanceName1_tca_3','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0');
-INSERT INTO `micro_service_policies` VALUES ('tca_k8s_yHsgu_v1_0_ResourceInstanceName2_tca_2','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0');
-INSERT INTO `micro_service_policies` VALUES ('TCA_yHsgu_v1_0_ResourceInstanceName1_tca','{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0');
+INSERT INTO `micro_service_policies` VALUES ('TCA_jkJJ0_v1_0_ResourceInstanceName1_tca','','2020-01-16 11:40:15.420567','','2020-01-16 11:40:15.420567',NULL,NULL,'{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0',NULL);
+INSERT INTO `micro_service_policies` VALUES ('tca_k8s_jkJJ0_v1_0_ResourceInstanceName1_tca_3','','2020-01-16 11:40:15.302285','','2020-01-16 11:40:15.302285',NULL,NULL,'{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0',NULL);
+INSERT INTO `micro_service_policies` VALUES ('tca_k8s_jkJJ0_v1_0_ResourceInstanceName2_tca_2','','2020-01-16 11:40:15.135898','','2020-01-16 11:40:15.135898',NULL,NULL,'{\n \"schema\": {\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"type\": \"array\",\n \"title\": \"TCA Policy JSON\",\n \"items\": {\n \"type\": \"object\",\n \"title\": \"TCA Policy JSON\",\n \"required\": [\n \"domain\",\n \"metricsPerEventName\"\n ],\n \"properties\": {\n \"domain\": {\n \"propertyOrder\": 1001,\n \"default\": \"measurementsForVfScaling\",\n \"title\": \"Domain name to which TCA needs to be applied\",\n \"type\": \"string\"\n },\n \"metricsPerEventName\": {\n \"propertyOrder\": 1002,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Contains eventName and threshold details that need to be applied to given eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"controlLoopSchemaType\",\n \"eventName\",\n \"policyName\",\n \"policyScope\",\n \"policyVersion\",\n \"thresholds\"\n ],\n \"properties\": {\n \"policyVersion\": {\n \"propertyOrder\": 1007,\n \"title\": \"TCA Policy Scope Version\",\n \"type\": \"string\"\n },\n \"thresholds\": {\n \"propertyOrder\": 1008,\n \"uniqueItems\": \"true\",\n \"format\": \"tabs-top\",\n \"title\": \"Thresholds associated with eventName\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"closedLoopControlName\",\n \"closedLoopEventStatus\",\n \"direction\",\n \"fieldPath\",\n \"severity\",\n \"thresholdValue\",\n \"version\"\n ],\n \"properties\": {\n \"severity\": {\n \"propertyOrder\": 1013,\n \"title\": \"Threshold Event Severity\",\n \"type\": \"string\",\n \"enum\": [\n \"CRITICAL\",\n \"MAJOR\",\n \"MINOR\",\n \"WARNING\",\n \"NORMAL\"\n ]\n },\n \"fieldPath\": {\n \"propertyOrder\": 1012,\n \"title\": \"Json field Path as per CEF message which needs to be analyzed for TCA\",\n \"type\": \"string\",\n \"enum\": [\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\",\n \"$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\",\n \"$.event.measurementsForVfScalingFields.meanRequestLatency\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\",\n \"$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\",\n \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\"\n ]\n },\n \"thresholdValue\": {\n \"propertyOrder\": 1014,\n \"title\": \"Threshold value for the field Path inside CEF message\",\n \"type\": \"integer\"\n },\n \"closedLoopEventStatus\": {\n \"propertyOrder\": 1010,\n \"title\": \"Closed Loop Event Status of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"ONSET\",\n \"ABATED\"\n ]\n },\n \"closedLoopControlName\": {\n \"propertyOrder\": 1009,\n \"title\": \"Closed Loop Control Name associated with the threshold\",\n \"type\": \"string\"\n },\n \"version\": {\n \"propertyOrder\": 1015,\n \"title\": \"Version number associated with the threshold\",\n \"type\": \"string\"\n },\n \"direction\": {\n \"propertyOrder\": 1011,\n \"title\": \"Direction of the threshold\",\n \"type\": \"string\",\n \"enum\": [\n \"LESS\",\n \"LESS_OR_EQUAL\",\n \"GREATER\",\n \"GREATER_OR_EQUAL\",\n \"EQUAL\"\n ]\n }\n }\n }\n },\n \"policyName\": {\n \"propertyOrder\": 1005,\n \"title\": \"TCA Policy Scope Name\",\n \"type\": \"string\"\n },\n \"controlLoopSchemaType\": {\n \"propertyOrder\": 1003,\n \"title\": \"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\",\n \"type\": \"string\",\n \"enum\": [\n \"VM\",\n \"VNF\"\n ]\n },\n \"policyScope\": {\n \"propertyOrder\": 1006,\n \"title\": \"TCA Policy Scope\",\n \"type\": \"string\"\n },\n \"eventName\": {\n \"propertyOrder\": 1004,\n \"title\": \"Event name to which thresholds need to be applied\",\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n}','onap.policies.monitoring.cdap.tca.hi.lo.app','tosca_definitions_version: tosca_simple_yaml_1_0_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n description: a base policy type for all policies that governs monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: map\n description: TCA Policy JSON\n entry_schema:\n type: onap.datatypes.monitoring.tca_policy\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL,'\0',NULL);
/*!40000 ALTER TABLE `micro_service_policies` ENABLE KEYS */;
UNLOCK TABLES;
@@ -81,11 +117,39 @@ UNLOCK TABLES;
LOCK TABLES `operational_policies` WRITE;
/*!40000 ALTER TABLE `operational_policies` DISABLE KEYS */;
-INSERT INTO `operational_policies` VALUES ('OPERATIONAL_yHsgu_v1_0_ResourceInstanceName1_tca','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_yHsgu_v1_0_ResourceInstanceName1_tca\"\n }\n }\n}','LOOP_yHsgu_v1_0_ResourceInstanceName1_tca');
-INSERT INTO `operational_policies` VALUES ('OPERATIONAL_yHsgu_v1_0_ResourceInstanceName1_tca_3','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_yHsgu_v1_0_ResourceInstanceName1_tca_3\"\n }\n }\n}','LOOP_yHsgu_v1_0_ResourceInstanceName1_tca_3');
-INSERT INTO `operational_policies` VALUES ('OPERATIONAL_yHsgu_v1_0_ResourceInstanceName2_tca_2','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_yHsgu_v1_0_ResourceInstanceName2_tca_2\"\n }\n }\n}','LOOP_yHsgu_v1_0_ResourceInstanceName2_tca_2');
+INSERT INTO `operational_policies` VALUES ('OPERATIONAL_jkJJ0_v1_0_ResourceInstanceName1_tca','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca\"\n }\n }\n}','LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca',NULL,NULL);
+INSERT INTO `operational_policies` VALUES ('OPERATIONAL_jkJJ0_v1_0_ResourceInstanceName1_tca_3','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca_3\"\n }\n }\n}','LOOP_jkJJ0_v1_0_ResourceInstanceName1_tca_3',NULL,NULL);
+INSERT INTO `operational_policies` VALUES ('OPERATIONAL_jkJJ0_v1_0_ResourceInstanceName2_tca_2','{\n \"operational_policy\": {\n \"controlLoop\": {\n \"controlLoopName\": \"LOOP_jkJJ0_v1_0_ResourceInstanceName2_tca_2\"\n }\n }\n}','LOOP_jkJJ0_v1_0_ResourceInstanceName2_tca_2',NULL,NULL);
/*!40000 ALTER TABLE `operational_policies` ENABLE KEYS */;
UNLOCK TABLES;
+
+--
+-- Dumping data for table `policy_models`
+--
+
+LOCK TABLES `policy_models` WRITE;
+/*!40000 ALTER TABLE `policy_models` DISABLE KEYS */;
+/*!40000 ALTER TABLE `policy_models` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Dumping data for table `services`
+--
+
+LOCK TABLES `services` WRITE;
+/*!40000 ALTER TABLE `services` DISABLE KEYS */;
+INSERT INTO `services` VALUES ('63cac700-ab9a-4115-a74f-7eac85e3fce0','vLoadBalancerMS','{\n \"CP\": {},\n \"VL\": {},\n \"VF\": {\n \"vLoadBalancerMS 0\": {\n \"resourceVendor\": \"Test\",\n \"name\": \"vLoadBalancerMS\",\n \"resourceVendorModelNumber\": \"\",\n \"description\": \"vLBMS\",\n \"invariantUUID\": \"1a31b9f2-e50d-43b7-89b3-a040250cf506\",\n \"UUID\": \"b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6\",\n \"type\": \"VF\",\n \"category\": \"Application L4+\",\n \"subcategory\": \"Load Balancer\",\n \"version\": \"1.0\",\n \"customizationUUID\": \"465246dc-7748-45f4-a013-308d92922552\",\n \"resourceVendorRelease\": \"1.0\"\n }\n },\n \"CR\": {},\n \"VFC\": {},\n \"PNF\": {},\n \"Service\": {},\n \"CVFC\": {},\n \"Service Proxy\": {},\n \"Configuration\": {},\n \"AllottedResource\": {},\n \"VFModule\": {\n \"Vloadbalancerms..vpkg..module-1\": {\n \"vfModuleModelInvariantUUID\": \"ca052563-eb92-4b5b-ad41-9111768ce043\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vpkg..module-1\",\n \"vfModuleModelUUID\": \"1e725ccc-b823-4f67-82b9-4f4367070dbc\",\n \"vfModuleModelCustomizationUUID\": \"1bffdc31-a37d-4dee-b65c-dde623a76e52\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vpkg\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vdns..module-3\": {\n \"vfModuleModelInvariantUUID\": \"4c10ba9b-f88f-415e-9de3-5d33336047fa\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vdns..module-3\",\n \"vfModuleModelUUID\": \"4fa73b49-8a6c-493e-816b-eb401567b720\",\n \"vfModuleModelCustomizationUUID\": \"bafcdab0-801d-4d81-9ead-f464640a38b1\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vdns\",\n \"max_vf_module_instances\": 50,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n },\n \"Vloadbalancerms..base_template..module-0\": {\n \"vfModuleModelInvariantUUID\": \"921f7c96-ebdd-42e6-81b9-1cfc0c9796f3\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..base_template..module-0\",\n \"vfModuleModelUUID\": \"63734409-f745-4e4d-a38b-131638a0edce\",\n \"vfModuleModelCustomizationUUID\": \"86baddea-c730-4fb8-9410-cd2e17fd7f27\",\n \"min_vf_module_instances\": 1,\n \"vf_module_label\": \"base_template\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Base\",\n \"isBase\": true,\n \"initial_count\": 1,\n \"volume_group\": false\n },\n \"Vloadbalancerms..vlb..module-2\": {\n \"vfModuleModelInvariantUUID\": \"a772a1f4-0064-412c-833d-4749b15828dd\",\n \"vfModuleModelVersion\": \"1\",\n \"vfModuleModelName\": \"Vloadbalancerms..vlb..module-2\",\n \"vfModuleModelUUID\": \"0f5c3f6a-650a-4303-abb6-fff3e573a07a\",\n \"vfModuleModelCustomizationUUID\": \"96a78aad-4ffb-4ef0-9c4f-deb03bf1d806\",\n \"min_vf_module_instances\": 0,\n \"vf_module_label\": \"vlb\",\n \"max_vf_module_instances\": 1,\n \"vf_module_type\": \"Expansion\",\n \"isBase\": false,\n \"initial_count\": 0,\n \"volume_group\": false\n }\n }\n}','{\n \"serviceType\": \"\",\n \"serviceRole\": \"\",\n \"description\": \"vLBMS\",\n \"type\": \"Service\",\n \"instantiationType\": \"A-la-carte\",\n \"namingPolicy\": \"\",\n \"serviceEcompNaming\": \"true\",\n \"environmentContext\": \"General_Revenue-Bearing\",\n \"name\": \"vLoadBalancerMS\",\n \"invariantUUID\": \"30ec5b59-4799-48d8-ac5f-1058a6b0e48f\",\n \"ecompGeneratedNaming\": \"true\",\n \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\",\n \"category\": \"Network L4+\"\n}');
+/*!40000 ALTER TABLE `services` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Dumping data for table `templates_microservicemodels`
+--
+
+LOCK TABLES `templates_microservicemodels` WRITE;
+/*!40000 ALTER TABLE `templates_microservicemodels` DISABLE KEYS */;
+/*!40000 ALTER TABLE `templates_microservicemodels` ENABLE KEYS */;
+UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -95,4 +159,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2019-09-11 16:01:22
+-- Dump completed on 2020-01-16 10:41:46
diff --git a/pom.xml b/pom.xml
index 83bc1d06..ba27daae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -259,6 +259,12 @@
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.11</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
@@ -601,9 +607,9 @@
<plugins>
<plugin>
- <groupId>de.jpdigital</groupId>
- <artifactId>hibernate52-ddl-maven-plugin</artifactId>
- <version>2.2.0</version>
+ <groupId>de.jpdigital</groupId>
+ <artifactId>hibernate52-ddl-maven-plugin</artifactId>
+ <version>2.2.0</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
@@ -619,7 +625,7 @@
</goals>
<configuration>
<packages>
- <param>org.onap.clamp.dao.model</param>
+ <param>org.onap.clamp</param>
</packages>
<dialects>
<param>MARIADB53</param>
diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java
index e41140f5..63320d2f 100644
--- a/src/main/java/org/onap/clamp/clds/Application.java
+++ b/src/main/java/org/onap/clamp/clds/Application.java
@@ -58,6 +58,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -65,13 +66,14 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@ComponentScan(basePackages = { "org.onap.clamp" })
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class,
- UserDetailsServiceAutoConfiguration.class })
+ UserDetailsServiceAutoConfiguration.class })
@EnableJpaRepositories(basePackages = { "org.onap.clamp" })
@EntityScan(basePackages = { "org.onap.clamp" })
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableAsync
@EnableScheduling
+@EnableJpaAuditing
public class Application extends SpringBootServletInitializer {
protected static final EELFLogger eelfLogger = EELFManager.getInstance().getLogger(Application.class);
@@ -137,8 +139,6 @@ public class Application extends SpringBootServletInitializer {
return tomcat;
}
-
-
private Connector createRedirectConnector(int redirectSecuredPort) {
if (redirectSecuredPort <= 0) {
eelfLogger.warn("HTTP port redirection to HTTPS is disabled because the HTTPS port is 0 (random port) or -1"
@@ -159,7 +159,7 @@ public class Application extends SpringBootServletInitializer {
if (env.getProperty("server.ssl.key-store") != null) {
KeyStore keystore = KeyStore.getInstance(env.getProperty("server.ssl.key-store-type"));
- String password = PassDecoder.decode(env.getProperty("server.ssl.key-store-password"),
+ String password = PassDecoder.decode(env.getProperty("server.ssl.key-store-password"),
env.getProperty("clamp.config.keyFile"));
String keyStore = env.getProperty("server.ssl.key-store");
InputStream is = ResourceFileUtil.getResourceAsStream(keyStore.replaceAll("classpath:", ""));
diff --git a/src/main/java/org/onap/clamp/clds/ClampInUserAuditorAware.java b/src/main/java/org/onap/clamp/clds/ClampInUserAuditorAware.java
new file mode 100644
index 00000000..d18e7ebf
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/ClampInUserAuditorAware.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.clds;
+
+import java.util.Optional;
+
+import org.springframework.data.domain.AuditorAware;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ClampInUserAuditorAware implements AuditorAware<String> {
+
+ @Override
+ public Optional<String> getCurrentAuditor() {
+ if (SecurityContextHolder.getContext().getAuthentication() != null
+ && SecurityContextHolder.getContext().getAuthentication().getPrincipal() != null) {
+ return Optional.of(((UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal())
+ .getUsername());
+ }
+ return Optional.of("");
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/clds/filter/ClampCadiFilter.java b/src/main/java/org/onap/clamp/clds/filter/ClampCadiFilter.java
index 9e04bd08..3bbb8a0b 100644
--- a/src/main/java/org/onap/clamp/clds/filter/ClampCadiFilter.java
+++ b/src/main/java/org/onap/clamp/clds/filter/ClampCadiFilter.java
@@ -153,7 +153,7 @@ public class ClampCadiFilter extends CadiFilter {
URLDecoder.decode(certHeader, StandardCharsets.UTF_8.toString()).getBytes()));
X509Certificate caCert = (X509Certificate) certificateFactory
.generateCertificate(new ByteArrayInputStream(
- ResourceFileUtil.getResourceAsString("clds/aaf/ssl/ca-certs.pem").getBytes()));
+ ResourceFileUtil.getResourceAsString("clds/aaf/ssl/ca-certs.pem").getBytes()));
X509Certificate[] certifArray = ((X509Certificate[]) request
.getAttribute("javax.servlet.request.X509Certificate"));
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsDictionary.java b/src/main/java/org/onap/clamp/clds/model/CldsDictionary.java
deleted file mode 100644
index 35fbcec4..00000000
--- a/src/main/java/org/onap/clamp/clds/model/CldsDictionary.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.clamp.clds.model;
-
-import com.google.gson.annotations.Expose;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a CLDS Dictionary.
- */
-
-public class CldsDictionary {
-
- @Expose
- private String dictionaryId;
- @Expose
- private String dictionaryName;
-
- @Expose
- private String createdBy;
- @Expose
- private String updatedBy;
- @Expose
- private String lastUpdatedDate;
- @Expose
- private List<CldsDictionaryItem> cldsDictionaryItems = new ArrayList<>();
-
- /**
- * Get the dictionary ID.
- *
- * @return the dictionaryId
- */
- public String getDictionaryId() {
- return dictionaryId;
- }
-
- /**
- * Set the dictionary Id.
- *
- * @param dictionaryId the dictionaryId to set
- */
- public void setDictionaryId(String dictionaryId) {
- this.dictionaryId = dictionaryId;
- }
-
- /**
- * Get the dictionary name.
- *
- * @return the dictionaryName
- */
- public String getDictionaryName() {
- return dictionaryName;
- }
-
- /**
- * Set the dictionary name.
- *
- * @param dictionaryName the dictionaryName to set
- */
- public void setDictionaryName(String dictionaryName) {
- this.dictionaryName = dictionaryName;
- }
-
- /**
- * Get the createdBy info.
- *
- * @return the createdBy
- */
- public String getCreatedBy() {
- return createdBy;
- }
-
- /**
- * Set the createdBy info.
- *
- * @param createdBy the createdBy to set
- */
- public void setCreatedBy(String createdBy) {
- this.createdBy = createdBy;
- }
-
- /**
- * Get the updatedBy info.
- *
- * @return the updatedBy
- */
- public String getUpdatedBy() {
- return updatedBy;
- }
-
- /**
- * Set the updatedBy info.
- *
- * @param updatedby the updatedBy to set
- */
- public void setUpdatedBy(String updatedby) {
- updatedBy = updatedby;
- }
-
- /**
- * Get the last updated date.
- *
- * @return the lastUpdatedDate
- */
- public String getLastUpdatedDate() {
- return lastUpdatedDate;
- }
-
- /**
- * Set the last updated date.
- *
- * @param lastUpdatedDate the lastUpdatedDate to set
- */
- public void setLastUpdatedDate(String lastUpdatedDate) {
- this.lastUpdatedDate = lastUpdatedDate;
- }
-
- /**
- * Get all the dictionary items.
- *
- * @return the cldsDictionaryItems
- */
- public List<CldsDictionaryItem> getCldsDictionaryItems() {
- return cldsDictionaryItems;
- }
-
- /**
- * Set the whole dictionary items.
- *
- * @param cldsDictionaryItems the cldsDictionaryItems to set
- */
- public void setCldsDictionaryItems(List<CldsDictionaryItem> cldsDictionaryItems) {
- this.cldsDictionaryItems = cldsDictionaryItems;
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/clds/model/CldsDictionaryItem.java b/src/main/java/org/onap/clamp/clds/model/CldsDictionaryItem.java
deleted file mode 100644
index 1b79bdfa..00000000
--- a/src/main/java/org/onap/clamp/clds/model/CldsDictionaryItem.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.clamp.clds.model;
-
-import com.google.gson.annotations.Expose;
-
-/**
- * Represents a CLDS Dictionary Item.
- */
-public class CldsDictionaryItem {
-
- @Expose
- private String dictElementId;
- @Expose
- private String dictionaryId;
- @Expose
- private String dictElementName;
- @Expose
- private String dictElementShortName;
- @Expose
- private String dictElementDesc;
- @Expose
- private String dictElementType;
- @Expose
- private String createdBy;
- @Expose
- private String updatedBy;
- @Expose
- private String lastUpdatedDate;
-
- /**
- * Get the dictionary element id.
- *
- * @return the dictElementId
- */
- public String getDictElementId() {
- return dictElementId;
- }
-
- /**
- * Set the dictionary element id.
- *
- * @param dictElementId the dictElementId to set
- */
- public void setDictElementId(String dictElementId) {
- this.dictElementId = dictElementId;
- }
-
- /**
- * Get the dictionary id.
- *
- * @return the dictionaryId
- */
- public String getDictionaryId() {
- return dictionaryId;
- }
-
- /**
- * Set the dictionary id.
- *
- * @param dictionaryId the dictionaryId to set
- */
- public void setDictionaryId(String dictionaryId) {
- this.dictionaryId = dictionaryId;
- }
-
- /**
- * Get the dictionary name.
- *
- * @return the dictElementName
- */
- public String getDictElementName() {
- return dictElementName;
- }
-
- /**
- * Set the dictionary name.
- *
- * @param dictElementName the dictElementName to set
- */
- public void setDictElementName(String dictElementName) {
- this.dictElementName = dictElementName;
- }
-
- /**
- * Get the dictionary element short name.
- *
- * @return the dictElementShortName
- */
- public String getDictElementShortName() {
- return dictElementShortName;
- }
-
- /**
- * Set the dictionary element short name.
- *
- * @param dictElementShortName the dictElementShortName to set
- */
- public void setDictElementShortName(String dictElementShortName) {
- this.dictElementShortName = dictElementShortName;
- }
-
- /**
- * Get the dictionary element description.
- *
- * @return the dictElementDesc
- */
- public String getDictElementDesc() {
- return dictElementDesc;
- }
-
- /**
- * Set the dictionary element description.
- *
- * @param dictElementDesc the dictElementDesc to set
- */
- public void setDictElementDesc(String dictElementDesc) {
- this.dictElementDesc = dictElementDesc;
- }
-
- /**
- * Get the dictionary element type.
- *
- * @return the dictElementType
- */
- public String getDictElementType() {
- return dictElementType;
- }
-
- /**
- * Set the dictionary element type.
- *
- * @param dictElementType the dictElementType to set
- */
- public void setDictElementType(String dictElementType) {
- this.dictElementType = dictElementType;
- }
-
- /**
- * Get the createdBy info.
- *
- * @return the createdBy
- */
- public String getCreatedBy() {
- return createdBy;
- }
-
- /**
- * Set the createdBy info.
- *
- * @param createdBy the createdBy to set
- */
- public void setCreatedBy(String createdBy) {
- this.createdBy = createdBy;
- }
-
- /**
- * Get the updatedBy info.
- *
- * @return the updatedBy
- */
- public String getUpdatedBy() {
- return updatedBy;
- }
-
- /**
- * Set the updatedBy info.
- *
- * @param updatedby the updatedBy to set
- */
- public void setUpdatedBy(String updatedby) {
- updatedBy = updatedby;
- }
-
- /**
- * Get the last updated date.
- *
- * @return the lastUpdatedDate
- */
- public String getLastUpdatedDate() {
- return lastUpdatedDate;
- }
-
- /**
- * Set the last updated date.
- *
- * @param lastUpdatedDate the lastUpdatedDate to set
- */
- public void setLastUpdatedDate(String lastUpdatedDate) {
- this.lastUpdatedDate = lastUpdatedDate;
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java b/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
index 43dd5f45..2e025ba7 100644
--- a/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
+++ b/src/main/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
@@ -481,63 +481,6 @@ public class ToscaYamlToJsonConvertor {
private void processDictionaryElements(JSONObject childObject, String dictionaryReference) {
- /*
- * if (dictionaryReference.contains("#")) { String[] dictionaryKeyArray =
- * dictionaryReference
- * .substring(dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
- * dictionaryReference.length()) .split("#"); // We support only one # as of
- * now. List<CldsDictionaryItem> cldsDictionaryElements = null;
- * List<CldsDictionaryItem> subDictionaryElements = null; if (dictionaryKeyArray
- * != null && dictionaryKeyArray.length == 2) { cldsDictionaryElements =
- * getCldsDao().getDictionaryElements(dictionaryKeyArray[0], null, null);
- * subDictionaryElements =
- * getCldsDao().getDictionaryElements(dictionaryKeyArray[1], null, null);
- *
- * if (cldsDictionaryElements != null) { List<String> subCldsDictionaryNames =
- * subDictionaryElements.stream()
- * .map(CldsDictionaryItem::getDictElementShortName).collect(Collectors.toList()
- * ); JSONArray jsonArray = new JSONArray();
- *
- * Optional.ofNullable(cldsDictionaryElements).get().stream().forEach(c -> {
- * JSONObject jsonObject = new JSONObject();
- * jsonObject.put(JsonEditorSchemaConstants.TYPE,
- * getJsonType(c.getDictElementType())); if (c.getDictElementType() != null &&
- * c.getDictElementType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
- * jsonObject.put(JsonEditorSchemaConstants.MIN_LENGTH, 1); }
- * jsonObject.put(JsonEditorSchemaConstants.ID, c.getDictElementName());
- * jsonObject.put(JsonEditorSchemaConstants.LABEL, c.getDictElementShortName());
- * jsonObject.put(JsonEditorSchemaConstants.OPERATORS, subCldsDictionaryNames);
- * jsonArray.put(jsonObject); }); ; JSONObject filterObject = new JSONObject();
- * filterObject.put(JsonEditorSchemaConstants.FILTERS, jsonArray);
- *
- * childObject.put(JsonEditorSchemaConstants.TYPE,
- * JsonEditorSchemaConstants.TYPE_QBLDR); // TO invoke validation on such
- * parameters childObject.put(JsonEditorSchemaConstants.MIN_LENGTH, 1);
- * childObject.put(JsonEditorSchemaConstants.QSSCHEMA, filterObject);
- *
- * } } } else { String dictionaryKey = dictionaryReference.substring(
- * dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
- * dictionaryReference.length()); if (dictionaryKey != null) {
- * List<CldsDictionaryItem> cldsDictionaryElements =
- * getCldsDao().getDictionaryElements(dictionaryKey, null, null); if
- * (cldsDictionaryElements != null) { List<String> cldsDictionaryNames = new
- * ArrayList<>(); List<String> cldsDictionaryFullNames = new ArrayList<>();
- * cldsDictionaryElements.stream().forEach(c -> { // Json type will be
- * translated before Policy creation if (c.getDictElementType() != null &&
- * !c.getDictElementType().equalsIgnoreCase("json")) {
- * cldsDictionaryFullNames.add(c.getDictElementName()); }
- * cldsDictionaryNames.add(c.getDictElementShortName()); });
- *
- * if (cldsDictionaryFullNames.size() > 0) {
- * childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryFullNames); //
- * Add Enum titles for generated translated values during JSON instance //
- * generation JSONObject enumTitles = new JSONObject();
- * enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES, cldsDictionaryNames);
- * childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles); } else {
- * childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryNames); }
- *
- * } } }
- */
}
private String getJsonType(String toscaType) {
diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java
index 531587a7..66046f02 100644
--- a/src/main/java/org/onap/clamp/loop/Loop.java
+++ b/src/main/java/org/onap/clamp/loop/Loop.java
@@ -56,18 +56,20 @@ import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
+import org.onap.clamp.loop.common.AuditEntity;
import org.onap.clamp.loop.components.external.DcaeComponent;
import org.onap.clamp.loop.components.external.ExternalComponent;
import org.onap.clamp.loop.components.external.PolicyComponent;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.service.Service;
+import org.onap.clamp.loop.template.LoopTemplate;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.operational.OperationalPolicy;
@Entity
@Table(name = "loops")
@TypeDefs({ @TypeDef(name = "json", typeClass = StringJsonUserType.class) })
-public class Loop implements Serializable {
+public class Loop extends AuditEntity implements Serializable {
/**
* The serial version id.
@@ -103,7 +105,7 @@ public class Loop implements Serializable {
private JsonObject globalPropertiesJson;
@Expose
- @ManyToOne(fetch = FetchType.EAGER)
+ @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
@JoinColumn(name = "service_uuid")
private Service modelService;
@@ -120,19 +122,24 @@ public class Loop implements Serializable {
private final Map<String, ExternalComponent> components = new HashMap<>();
@Expose
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop")
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop", orphanRemoval = true)
private Set<OperationalPolicy> operationalPolicies = new HashSet<>();
@Expose
- @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.EAGER)
@JoinTable(name = "loops_microservicepolicies", joinColumns = @JoinColumn(name = "loop_id"), inverseJoinColumns = @JoinColumn(name = "microservicepolicy_id"))
private Set<MicroServicePolicy> microServicePolicies = new HashSet<>();
@Expose
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop")
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop", orphanRemoval = true)
@SortNatural
private SortedSet<LoopLog> loopLogs = new TreeSet<>();
+ @Expose
+ @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.EAGER)
+ @JoinColumn(name = "loop_template_name")
+ private LoopTemplate loopTemplate;
+
private void initializeExternalComponents() {
this.addComponent(new PolicyComponent());
this.addComponent(new DcaeComponent());
@@ -280,6 +287,14 @@ public class Loop implements Serializable {
this.components.put(component.getComponentName(), component);
}
+ public LoopTemplate getLoopTemplate() {
+ return loopTemplate;
+ }
+
+ public void setLoopTemplate(LoopTemplate loopTemplate) {
+ this.loopTemplate = loopTemplate;
+ }
+
/**
* Generate the loop name.
*
diff --git a/src/main/java/org/onap/clamp/loop/LoopService.java b/src/main/java/org/onap/clamp/loop/LoopService.java
index d1ab0e39..85e24cd0 100644
--- a/src/main/java/org/onap/clamp/loop/LoopService.java
+++ b/src/main/java/org/onap/clamp/loop/LoopService.java
@@ -31,29 +31,23 @@ import java.util.Set;
import javax.persistence.EntityNotFoundException;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.clamp.policy.microservice.MicroservicePolicyService;
+import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
import org.onap.clamp.policy.operational.OperationalPolicyService;
-import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
-@Component
public class LoopService {
- private final LoopsRepository loopsRepository;
- private final MicroservicePolicyService microservicePolicyService;
- private final OperationalPolicyService operationalPolicyService;
-
- /**
- * Constructor.
- */
- public LoopService(LoopsRepository loopsRepository, MicroservicePolicyService microservicePolicyService,
- OperationalPolicyService operationalPolicyService) {
- this.loopsRepository = loopsRepository;
- this.microservicePolicyService = microservicePolicyService;
- this.operationalPolicyService = operationalPolicyService;
- }
+ @Autowired
+ private LoopsRepository loopsRepository;
+
+ @Autowired
+ private MicroServicePolicyService microservicePolicyService;
+
+ @Autowired
+ private OperationalPolicyService operationalPolicyService;
Loop saveOrUpdateLoop(Loop loop) {
return loopsRepository.save(loop);
@@ -109,6 +103,6 @@ public class LoopService {
private Loop findClosedLoopByName(String loopName) {
return loopsRepository.findById(loopName)
- .orElseThrow(() -> new EntityNotFoundException("Couldn't find closed loop named: " + loopName));
+ .orElseThrow(() -> new EntityNotFoundException("Couldn't find closed loop named: " + loopName));
}
}
diff --git a/src/main/java/org/onap/clamp/loop/LoopsRepository.java b/src/main/java/org/onap/clamp/loop/LoopsRepository.java
index 37c47622..aaa49116 100644
--- a/src/main/java/org/onap/clamp/loop/LoopsRepository.java
+++ b/src/main/java/org/onap/clamp/loop/LoopsRepository.java
@@ -24,12 +24,13 @@
package org.onap.clamp.loop;
import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
-public interface LoopsRepository extends CrudRepository<Loop, String> {
+public interface LoopsRepository extends JpaRepository<Loop, String> {
@Query("SELECT loop.name FROM Loop as loop")
List<String> getAllLoopNames();
diff --git a/src/main/java/org/onap/clamp/loop/common/AuditEntity.java b/src/main/java/org/onap/clamp/loop/common/AuditEntity.java
new file mode 100644
index 00000000..445f5b9e
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/common/AuditEntity.java
@@ -0,0 +1,108 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.common;
+
+import com.google.gson.annotations.Expose;
+
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+
+import javax.persistence.Column;
+import javax.persistence.EntityListeners;
+import javax.persistence.MappedSuperclass;
+
+import org.springframework.data.annotation.CreatedBy;
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedBy;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+@MappedSuperclass
+@EntityListeners(AuditingEntityListener.class)
+public class AuditEntity {
+
+ @Expose
+ @CreatedDate
+ @Column(name = "created_timestamp", nullable = false, updatable = false)
+ private Instant createdDate;
+
+ @Expose
+ @LastModifiedDate
+ @Column(name = "updated_timestamp", nullable = false)
+ private Instant updatedDate;
+
+ @Expose
+ @LastModifiedBy
+ @Column(name = "updated_by")
+ private String updatedBy;
+
+ @Expose
+ @CreatedBy
+ @Column(name = "created_by")
+ private String createdBy;
+
+ public Instant getCreatedDate() {
+ return createdDate;
+ }
+
+ public void setCreatedDate(Instant createdDate) {
+ if (createdDate != null) {
+ this.createdDate = createdDate.truncatedTo(ChronoUnit.SECONDS);
+ } else {
+ this.createdDate = null;
+ }
+ }
+
+ public Instant getUpdatedDate() {
+ return updatedDate;
+ }
+
+ public void setUpdatedDate(Instant updatedDate) {
+ if (updatedDate != null) {
+ this.updatedDate = updatedDate.truncatedTo(ChronoUnit.SECONDS);
+ } else {
+ this.updatedDate = null;
+ }
+ }
+
+ public String getUpdatedBy() {
+ return updatedBy;
+ }
+
+ public void setUpdatedBy(String updatedBy) {
+ this.updatedBy = updatedBy;
+ }
+
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ public void setCreatedBy(String createdBy) {
+ this.createdBy = createdBy;
+ }
+
+ public AuditEntity() {
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/loop/log/LoopLog.java b/src/main/java/org/onap/clamp/loop/log/LoopLog.java
index 0e1153a3..e4959887 100644
--- a/src/main/java/org/onap/clamp/loop/log/LoopLog.java
+++ b/src/main/java/org/onap/clamp/loop/log/LoopLog.java
@@ -190,9 +190,7 @@ public class LoopLog implements Serializable, Comparable<LoopLog> {
if (arg0.getId() == null) {
return -1;
}
-
return arg0.getId().compareTo(this.getId());
-
}
}
diff --git a/src/main/java/org/onap/clamp/loop/log/LoopLogRepository.java b/src/main/java/org/onap/clamp/loop/log/LoopLogRepository.java
index 103341fa..0b3c34ec 100644
--- a/src/main/java/org/onap/clamp/loop/log/LoopLogRepository.java
+++ b/src/main/java/org/onap/clamp/loop/log/LoopLogRepository.java
@@ -23,10 +23,10 @@
package org.onap.clamp.loop.log;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
-public interface LoopLogRepository extends CrudRepository<LoopLog, Long> {
+public interface LoopLogRepository extends JpaRepository<LoopLog, Long> {
}
diff --git a/src/main/java/org/onap/clamp/loop/service/Service.java b/src/main/java/org/onap/clamp/loop/service/Service.java
index 115f9f76..b74ee0b0 100644
--- a/src/main/java/org/onap/clamp/loop/service/Service.java
+++ b/src/main/java/org/onap/clamp/loop/service/Service.java
@@ -39,9 +39,9 @@ import javax.persistence.Transient;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
+import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
-
@Entity
@Table(name = "services")
@TypeDefs({ @TypeDef(name = "json", typeClass = StringJsonUserType.class) })
@@ -76,13 +76,25 @@ public class Service implements Serializable {
private JsonObject resourceDetails;
/**
- * Public constructor.
+ * Default constructor for serialization.
*/
public Service() {
}
/**
- * Constructor.
+ * Constructor with string.
+ */
+ public Service(String serviceDetails, String resourceDetails) {
+ JsonObject serviceDetailsJson = JsonUtils.GSON.fromJson(serviceDetails, JsonObject.class);
+ JsonObject resourceDetailsJson = JsonUtils.GSON.fromJson(resourceDetails, JsonObject.class);
+ this.name = serviceDetailsJson.get("name").getAsString();
+ this.serviceUuid = serviceDetailsJson.get("UUID").getAsString();
+ this.serviceDetails = serviceDetailsJson;
+ this.resourceDetails = resourceDetailsJson;
+ }
+
+ /**
+ * Constructor with Json Object.
*/
public Service(JsonObject serviceDetails, JsonObject resourceDetails, String version) {
this.name = serviceDetails.get("name").getAsString();
diff --git a/src/main/java/org/onap/clamp/loop/service/ServicesRepository.java b/src/main/java/org/onap/clamp/loop/service/ServicesRepository.java
new file mode 100644
index 00000000..fe5ba8ed
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/service/ServicesRepository.java
@@ -0,0 +1,31 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.service;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ServicesRepository extends JpaRepository<Service, String> {
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java
new file mode 100644
index 00000000..10367e77
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java
@@ -0,0 +1,268 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.SortNatural;
+import org.onap.clamp.loop.common.AuditEntity;
+import org.onap.clamp.loop.service.Service;
+
+@Entity
+@Table(name = "loop_templates")
+public class LoopTemplate extends AuditEntity implements Serializable {
+
+ /**
+ * The serial version id.
+ */
+ private static final long serialVersionUID = -286522707701388642L;
+
+ @Id
+ @Expose
+ @Column(nullable = false, name = "name", unique = true)
+ private String name;
+
+ /**
+ * This field is used when we have a blueprint defining all microservices. The
+ * other option would be to have independent blueprint for each microservices.
+ * In that case they are stored in each MicroServiceModel
+ */
+ @Column(columnDefinition = "MEDIUMTEXT", nullable = false, name = "blueprint_yaml")
+ private String blueprint;
+
+ @Expose
+ @Column(columnDefinition = "MEDIUMTEXT", name = "svg_representation")
+ private String svgRepresentation;
+
+ @Expose
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loopTemplate", orphanRemoval = true)
+ @SortNatural
+ private SortedSet<TemplateMicroServiceModel> microServiceModelUsed = new TreeSet<>();
+
+ @Expose
+ @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
+ @JoinColumn(name = "service_uuid")
+ private Service modelService;
+
+ @Expose
+ @Column(name = "maximum_instances_allowed")
+ private Integer maximumInstancesAllowed;
+
+ /**
+ * name getter.
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * blueprint getter.
+ *
+ * @return the blueprint
+ */
+ public String getBlueprint() {
+ return blueprint;
+ }
+
+ /**
+ * blueprint setter.
+ *
+ * @param blueprint the blueprint to set
+ */
+ public void setBlueprint(String blueprint) {
+ this.blueprint = blueprint;
+ }
+
+ /**
+ * svgRepresentation getter.
+ *
+ * @return the svgRepresentation
+ */
+ public String getSvgRepresentation() {
+ return svgRepresentation;
+ }
+
+ /**
+ * svgRepresentation setter.
+ *
+ * @param svgRepresentation the svgRepresentation to set
+ */
+ public void setSvgRepresentation(String svgRepresentation) {
+ this.svgRepresentation = svgRepresentation;
+ }
+
+ /**
+ * microServiceModelUsed getter.
+ *
+ * @return the microServiceModelUsed
+ */
+ public SortedSet<TemplateMicroServiceModel> getMicroServiceModelUsed() {
+ return microServiceModelUsed;
+ }
+
+ /**
+ * maximumInstancesAllowed getter.
+ *
+ * @return the maximumInstancesAllowed
+ */
+ public Integer getMaximumInstancesAllowed() {
+ return maximumInstancesAllowed;
+ }
+
+ /**
+ * maximumInstancesAllowed setter.
+ *
+ * @param maximumInstancesAllowed the maximumInstancesAllowed to set
+ */
+ public void setMaximumInstancesAllowed(Integer maximumInstancesAllowed) {
+ this.maximumInstancesAllowed = maximumInstancesAllowed;
+ }
+
+ /**
+ * Add a microService model to the current template, the microservice is added
+ * at the end of the list so the flowOrder is computed automatically.
+ *
+ * @param microServiceModel The microserviceModel to add
+ */
+ public void addMicroServiceModel(MicroServiceModel microServiceModel) {
+ TemplateMicroServiceModel jointEntry = new TemplateMicroServiceModel(this, microServiceModel,
+ this.microServiceModelUsed.size());
+ this.microServiceModelUsed.add(jointEntry);
+ microServiceModel.getUsedByLoopTemplates().add(jointEntry);
+ }
+
+ /**
+ * Add a microService model to the current template, the flow order must be
+ * specified manually.
+ *
+ * @param microServiceModel The microserviceModel to add
+ * @param listPosition The position in the flow
+ */
+ public void addMicroServiceModel(MicroServiceModel microServiceModel, Integer listPosition) {
+ TemplateMicroServiceModel jointEntry = new TemplateMicroServiceModel(this, microServiceModel, listPosition);
+ this.microServiceModelUsed.add(jointEntry);
+ microServiceModel.getUsedByLoopTemplates().add(jointEntry);
+ }
+
+ /**
+ * modelService getter.
+ *
+ * @return the modelService
+ */
+ public Service getModelService() {
+ return modelService;
+ }
+
+ /**
+ * modelService setter.
+ *
+ * @param modelService the modelService to set
+ */
+ public void setModelService(Service modelService) {
+ this.modelService = modelService;
+ }
+
+ /**
+ * Default constructor for serialization.
+ */
+ public LoopTemplate() {
+
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param name The loop template name id
+ * @param blueprint The blueprint containing all microservices (legacy
+ * case)
+ * @param svgRepresentation The svg representation of that loop template
+ * @param maxInstancesAllowed The maximum number of instances that can be
+ * created from that template
+ * @param service The service associated to that loop template
+ */
+ public LoopTemplate(String name, String blueprint, String svgRepresentation, Integer maxInstancesAllowed,
+ Service service) {
+ this.name = name;
+ this.blueprint = blueprint;
+ this.svgRepresentation = svgRepresentation;
+
+ this.maximumInstancesAllowed = maxInstancesAllowed;
+ this.modelService = service;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ LoopTemplate other = (LoopTemplate) obj;
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/LoopTemplatesRepository.java b/src/main/java/org/onap/clamp/loop/template/LoopTemplatesRepository.java
new file mode 100644
index 00000000..07f304de
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/LoopTemplatesRepository.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface LoopTemplatesRepository extends JpaRepository<LoopTemplate, String> {
+
+ @Query("SELECT looptemplate.name FROM LoopTemplate as looptemplate")
+ List<String> getAllLoopTemplateNames();
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/MicroServiceModel.java b/src/main/java/org/onap/clamp/loop/template/MicroServiceModel.java
new file mode 100644
index 00000000..1e2b140e
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/MicroServiceModel.java
@@ -0,0 +1,217 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.onap.clamp.loop.common.AuditEntity;
+
+/**
+ * This class represents a micro service model for a loop template.
+ */
+
+@Entity
+@Table(name = "micro_service_models")
+public class MicroServiceModel extends AuditEntity implements Serializable {
+
+ /**
+ * The serial version id.
+ */
+ private static final long serialVersionUID = -286522707701376645L;
+
+ @Id
+ @Expose
+ @Column(nullable = false, name = "name", unique = true)
+ private String name;
+
+ /**
+ * This variable is used to store the type mentioned in the micro-service
+ * blueprint.
+ */
+ @Expose
+ @Column(nullable = false, name = "policy_type")
+ private String policyType;
+
+ @Column(nullable = false, name = "blueprint_yaml")
+ private String blueprint;
+
+ @Expose
+ @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
+ @JoinColumns({ @JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type"),
+ @JoinColumn(name = "policy_model_version", referencedColumnName = "version") })
+ private PolicyModel policyModel;
+
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "microServiceModel", orphanRemoval = true)
+ private Set<TemplateMicroServiceModel> usedByLoopTemplates = new HashSet<>();
+
+ /**
+ * policyModel getter.
+ *
+ * @return the policyModel
+ */
+ public PolicyModel getPolicyModel() {
+ return policyModel;
+ }
+
+ /**
+ * policyModel setter.
+ *
+ * @param policyModel the policyModel to set
+ */
+ public void setPolicyModel(PolicyModel policyModel) {
+ this.policyModel = policyModel;
+ }
+
+ /**
+ * name getter.
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * policyType getter.
+ *
+ * @return the policyType
+ */
+ public String getPolicyType() {
+ return policyType;
+ }
+
+ /**
+ * policyType setter.
+ *
+ * @param policyType the policyType to set
+ */
+ public void setPolicyType(String policyType) {
+ this.policyType = policyType;
+ }
+
+ /**
+ * blueprint getter.
+ *
+ * @return the blueprint
+ */
+ public String getBlueprint() {
+ return blueprint;
+ }
+
+ /**
+ * blueprint setter.
+ *
+ * @param blueprint the blueprint to set
+ */
+ public void setBlueprint(String blueprint) {
+ this.blueprint = blueprint;
+ }
+
+ /**
+ * usedByLoopTemplates getter.
+ *
+ * @return the usedByLoopTemplates
+ */
+ public Set<TemplateMicroServiceModel> getUsedByLoopTemplates() {
+ return usedByLoopTemplates;
+ }
+
+ /**
+ * Default constructor for serialization.
+ */
+ public MicroServiceModel() {
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param name The name id
+ * @param policyType The policy model type like
+ * onap.policies.controlloop.operational.common.Apex
+ * @param blueprint The blueprint defined for dcae that contains the policy
+ * type to use
+ * @param policyModel The policy model for the policy type mentioned here
+ */
+ public MicroServiceModel(String name, String policyType, String blueprint, PolicyModel policyModel) {
+ this.name = name;
+ this.policyType = policyType;
+ this.blueprint = blueprint;
+ this.policyModel = policyModel;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ MicroServiceModel other = (MicroServiceModel) obj;
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/MicroServiceModelsRepository.java b/src/main/java/org/onap/clamp/loop/template/MicroServiceModelsRepository.java
new file mode 100644
index 00000000..2b187048
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/MicroServiceModelsRepository.java
@@ -0,0 +1,31 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface MicroServiceModelsRepository extends JpaRepository<MicroServiceModel, String> {
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java
new file mode 100644
index 00000000..e6580bee
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java
@@ -0,0 +1,239 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.Table;
+
+import org.onap.clamp.loop.common.AuditEntity;
+import org.onap.clamp.util.SemanticVersioning;
+
+/**
+ * This class represents the policy model tosca revision that we can have to a
+ * specific microservice.
+ */
+@Entity
+@Table(name = "policy_models")
+@IdClass(PolicyModelId.class)
+public class PolicyModel extends AuditEntity implements Serializable, Comparable<PolicyModel> {
+
+ /**
+ * The serial version id.
+ */
+ private static final long serialVersionUID = -286522705701376645L;
+
+ /**
+ * This variable is used to store the type mentioned in the micro-service
+ * blueprint.
+ */
+ @Id
+ @Expose
+ @Column(nullable = false, name = "policy_model_type")
+ private String policyModelType;
+
+ /**
+ * Semantic versioning on policy side.
+ */
+ @Id
+ @Expose
+ @Column(name = "version")
+ private String version;
+
+ @Column(columnDefinition = "MEDIUMTEXT", name = "policy_tosca")
+ private String policyModelTosca;
+
+ @Expose
+ @Column(name = "policy_acronym")
+ private String policyAcronym;
+
+ @Expose
+ @Column(name = "policy_variant")
+ private String policyVariant;
+
+ /**
+ * policyModelTosca getter.
+ *
+ * @return the policyModelTosca
+ */
+ public String getPolicyModelTosca() {
+ return policyModelTosca;
+ }
+
+ /**
+ * policyModelTosca setter.
+ *
+ * @param policyModelTosca the policyModelTosca to set
+ */
+ public void setPolicyModelTosca(String policyModelTosca) {
+ this.policyModelTosca = policyModelTosca;
+ }
+
+ /**
+ * policyModelType getter.
+ *
+ * @return the modelType
+ */
+ public String getPolicyModelType() {
+ return policyModelType;
+ }
+
+ /**
+ * policyModelType setter.
+ *
+ * @param modelType the modelType to set
+ */
+ public void setPolicyModelType(String modelType) {
+ this.policyModelType = modelType;
+ }
+
+ /**
+ * version getter.
+ *
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * version setter.
+ *
+ * @param version the version to set
+ */
+ public void setVersion(String version) {
+ // Try to convert it before
+ this.version = version;
+ }
+
+ /**
+ * policyAcronym getter.
+ *
+ * @return the policyAcronym value
+ */
+ public String getPolicyAcronym() {
+ return policyAcronym;
+ }
+
+ /**
+ * policyAcronym setter.
+ *
+ * @param policyAcronym The policyAcronym to set
+ */
+ public void setPolicyAcronym(String policyAcronym) {
+ this.policyAcronym = policyAcronym;
+ }
+
+ /**
+ * policyVariant getter.
+ *
+ * @return the policyVariant value
+ */
+ public String getPolicyVariant() {
+ return policyVariant;
+ }
+
+ /**
+ * policyVariant setter.
+ *
+ * @param policyVariant The policyVariant to set
+ */
+ public void setPolicyVariant(String policyVariant) {
+ this.policyVariant = policyVariant;
+ }
+
+ /**
+ * Default constructor for serialization.
+ */
+ public PolicyModel() {
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param policyType The policyType (referenced in the blueprint)
+ * @param policyModelTosca The policy tosca model in yaml
+ * @param version the version like 1.0.0
+ * @param policyAcronym Short policy name if it exists
+ * @param policyVariant Subtype for policy if it exists (could be used by UI)
+ */
+ public PolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym,
+ String policyVariant) {
+ this.policyModelType = policyType;
+ this.policyModelTosca = policyModelTosca;
+ this.version = version;
+ this.policyAcronym = policyAcronym;
+ this.policyVariant = policyVariant;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((policyModelType == null) ? 0 : policyModelType.hashCode());
+ result = prime * result + ((version == null) ? 0 : version.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ PolicyModel other = (PolicyModel) obj;
+ if (policyModelType == null) {
+ if (other.policyModelType != null) {
+ return false;
+ }
+ } else if (!policyModelType.equals(other.policyModelType)) {
+ return false;
+ }
+ if (version == null) {
+ if (other.version != null) {
+ return false;
+ }
+ } else if (!version.equals(other.version)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int compareTo(PolicyModel arg0) {
+ // Reverse it, so that by default we have the latest
+ return SemanticVersioning.compare(arg0.getVersion(), this.version);
+ }
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModelId.java b/src/main/java/org/onap/clamp/loop/template/PolicyModelId.java
new file mode 100644
index 00000000..c4dd1933
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModelId.java
@@ -0,0 +1,93 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+
+public class PolicyModelId implements Serializable {
+
+ /**
+ * Serial Id.
+ */
+ private static final long serialVersionUID = -2846526482064334745L;
+
+ @Expose
+ private String policyModelType;
+
+ @Expose
+ private String version;
+
+ /**
+ * Default constructor for serialization.
+ */
+ public PolicyModelId() {
+
+ }
+
+ /**
+ * Constructor.
+ */
+ public PolicyModelId(String policyModelType, String version) {
+ this.policyModelType = policyModelType;
+ this.version = version;
+ }
+
+ /**
+ * policyModelType getter.
+ *
+ * @return the policyModelType
+ */
+ public String getPolicyModelType() {
+ return policyModelType;
+ }
+
+ /**
+ * policyModelType setter.
+ *
+ * @param policyModelType the policyModelType to set
+ */
+ public void setPolicyModelType(String policyModelType) {
+ this.policyModelType = policyModelType;
+ }
+
+ /**
+ * version getter.
+ *
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * version setter.
+ *
+ * @param version the version to set
+ */
+ public void setVersion(String version) {
+ this.version = version;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModelsRepository.java b/src/main/java/org/onap/clamp/loop/template/PolicyModelsRepository.java
new file mode 100644
index 00000000..a76e386b
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModelsRepository.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PolicyModelsRepository extends JpaRepository<PolicyModel, PolicyModelId> {
+ @Query("SELECT policymodel.policyModelType FROM PolicyModel as policymodel")
+ List<String> getAllPolicyModelType();
+
+ List<PolicyModel> findByPolicyModelType(String policyModelType);
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java
new file mode 100644
index 00000000..8e22852a
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PolicyModelsService {
+ private final PolicyModelsRepository policyModelsRepository;
+
+ @Autowired
+ public PolicyModelsService(PolicyModelsRepository policyModelrepo) {
+ policyModelsRepository = policyModelrepo;
+ }
+
+ public PolicyModel saveOrUpdatePolicyModel(PolicyModel policyModel) {
+ return policyModelsRepository.save(policyModel);
+ }
+
+ public List<String> getAllPolicyModelTypes() {
+ return policyModelsRepository.getAllPolicyModelType();
+ }
+
+ public Iterable<PolicyModel> getAllPolicyModels() {
+ return policyModelsRepository.findAll();
+ }
+
+ public PolicyModel getPolicyModel(String type, String version) {
+ return policyModelsRepository.findById(new PolicyModelId(type, version)).orElse(null);
+ }
+
+ public Iterable<PolicyModel> getAllPolicyModelsByType(String type) {
+ return policyModelsRepository.findByPolicyModelType(type);
+ }
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModel.java b/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModel.java
new file mode 100644
index 00000000..7547c1f7
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModel.java
@@ -0,0 +1,194 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.MapsId;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "templates_microservicemodels")
+public class TemplateMicroServiceModel implements Serializable, Comparable<TemplateMicroServiceModel> {
+
+ /**
+ * Serial ID.
+ */
+ private static final long serialVersionUID = 5924989899078094245L;
+
+ @EmbeddedId
+ private TemplateMicroServiceModelId templateMicroServiceModelId;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @MapsId("loopTemplateName")
+ @JoinColumn(name = "loop_template_name")
+ private LoopTemplate loopTemplate;
+
+ @Expose
+ @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
+ @MapsId("microServiceModelName")
+ @JoinColumn(name = "micro_service_model_name")
+ private MicroServiceModel microServiceModel;
+
+ @Expose
+ @Column(nullable = false, name = "flow_order")
+ private Integer flowOrder;
+
+ /**
+ * Default constructor for serialization.
+ */
+ public TemplateMicroServiceModel() {
+
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param loopTemplate The loop template object
+ * @param microServiceModel The microServiceModel object
+ * @param flowOrder The position of the micro service in the flow
+ */
+ public TemplateMicroServiceModel(LoopTemplate loopTemplate, MicroServiceModel microServiceModel,
+ Integer flowOrder) {
+ this.loopTemplate = loopTemplate;
+ this.microServiceModel = microServiceModel;
+ this.flowOrder = flowOrder;
+ this.templateMicroServiceModelId = new TemplateMicroServiceModelId(loopTemplate.getName(),
+ microServiceModel.getName());
+ }
+
+ /**
+ * loopTemplate getter.
+ *
+ * @return the loopTemplate
+ */
+ public LoopTemplate getLoopTemplate() {
+ return loopTemplate;
+ }
+
+ /**
+ * loopTemplate setter.
+ *
+ * @param loopTemplate the loopTemplate to set
+ */
+ public void setLoopTemplate(LoopTemplate loopTemplate) {
+ this.loopTemplate = loopTemplate;
+ }
+
+ /**
+ * microServiceModel getter.
+ *
+ * @return the microServiceModel
+ */
+ public MicroServiceModel getMicroServiceModel() {
+ return microServiceModel;
+ }
+
+ /**
+ * microServiceModel setter.
+ *
+ * @param microServiceModel the microServiceModel to set
+ */
+ public void setMicroServiceModel(MicroServiceModel microServiceModel) {
+ this.microServiceModel = microServiceModel;
+ }
+
+ /**
+ * flowOrder getter.
+ *
+ * @return the flowOrder
+ */
+ public Integer getFlowOrder() {
+ return flowOrder;
+ }
+
+ /**
+ * flowOrder setter.
+ *
+ * @param flowOrder the flowOrder to set
+ */
+ public void setFlowOrder(Integer flowOrder) {
+ this.flowOrder = flowOrder;
+ }
+
+ @Override
+ public int compareTo(TemplateMicroServiceModel arg0) {
+ // Reverse it, so that by default we have the latest
+ if (getFlowOrder() == null) {
+ return 1;
+ }
+ if (arg0.getFlowOrder() == null) {
+ return -1;
+ }
+ return arg0.getFlowOrder().compareTo(this.getFlowOrder());
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((loopTemplate == null) ? 0 : loopTemplate.hashCode());
+ result = prime * result + ((microServiceModel == null) ? 0 : microServiceModel.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ TemplateMicroServiceModel other = (TemplateMicroServiceModel) obj;
+ if (loopTemplate == null) {
+ if (other.loopTemplate != null) {
+ return false;
+ }
+ } else if (!loopTemplate.equals(other.loopTemplate)) {
+ return false;
+ }
+ if (microServiceModel == null) {
+ if (other.microServiceModel != null) {
+ return false;
+ }
+ } else if (!microServiceModel.equals(other.microServiceModel)) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModelId.java b/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModelId.java
new file mode 100644
index 00000000..74c76897
--- /dev/null
+++ b/src/main/java/org/onap/clamp/loop/template/TemplateMicroServiceModelId.java
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop.template;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+
+@Embeddable
+public class TemplateMicroServiceModelId implements Serializable {
+
+ /**
+ * Serial ID.
+ */
+ private static final long serialVersionUID = 4089888115504914773L;
+
+ @Expose
+ @Column(name = "loop_template_name")
+ private String loopTemplateName;
+
+ @Expose
+ @Column(name = "micro_service_model_name")
+ private String microServiceModelName;
+
+ /**
+ * Default constructor for serialization.
+ */
+ public TemplateMicroServiceModelId() {
+
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param loopTemplateName The loop template name id
+ * @param microServiceModelName THe micro Service name id
+ */
+ public TemplateMicroServiceModelId(String loopTemplateName, String microServiceModelName) {
+ this.loopTemplateName = loopTemplateName;
+ this.microServiceModelName = microServiceModelName;
+ }
+
+ /**
+ * loopTemplateName getter.
+ *
+ * @return the loopTemplateName
+ */
+ public String getLoopTemplateName() {
+ return loopTemplateName;
+ }
+
+ /**
+ * loopTemplateName setter.
+ *
+ * @param loopTemplateName the loopTemplateName to set
+ */
+ public void setLoopTemplateName(String loopTemplateName) {
+ this.loopTemplateName = loopTemplateName;
+ }
+
+ /**
+ * microServiceModelName getter.
+ *
+ * @return the microServiceModelName
+ */
+ public String getMicroServiceModelName() {
+ return microServiceModelName;
+ }
+
+ /**
+ * microServiceModelName setter.
+ *
+ * @param microServiceModelName the microServiceModelName to set
+ */
+ public void setMicroServiceModelName(String microServiceModelName) {
+ this.microServiceModelName = microServiceModelName;
+ }
+}
diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java
index 2943c39a..98742d22 100644
--- a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java
+++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java
@@ -40,7 +40,9 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
@@ -52,13 +54,15 @@ import org.onap.clamp.clds.tosca.ToscaYamlToJsonConvertor;
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.clamp.loop.Loop;
+import org.onap.clamp.loop.common.AuditEntity;
+import org.onap.clamp.loop.template.MicroServiceModel;
import org.onap.clamp.policy.Policy;
import org.yaml.snakeyaml.Yaml;
@Entity
@Table(name = "micro_service_policies")
@TypeDefs({ @TypeDef(name = "json", typeClass = StringJsonUserType.class) })
-public class MicroServicePolicy implements Serializable, Policy {
+public class MicroServicePolicy extends AuditEntity implements Serializable, Policy {
/**
* The serial version ID.
*/
@@ -73,10 +77,18 @@ public class MicroServicePolicy implements Serializable, Policy {
private String name;
@Expose
- @Column(nullable = false, name = "model_type")
+ @Column(nullable = false, name = "policy_model_type")
private String modelType;
@Expose
+ @Column(name = "context")
+ private String context;
+
+ @Expose
+ @Column(name = "device_type_scope")
+ private String deviceTypeScope;
+
+ @Expose
@Type(type = "json")
@Column(columnDefinition = "json", name = "properties")
private JsonObject properties;
@@ -96,6 +108,11 @@ public class MicroServicePolicy implements Serializable, Policy {
@ManyToMany(mappedBy = "microServicePolicies", fetch = FetchType.EAGER)
private Set<Loop> usedByLoops = new HashSet<>();
+ @Expose
+ @ManyToOne(fetch = FetchType.EAGER)
+ @JoinColumn(name = "micro_service_model_id")
+ private MicroServiceModel microServiceModel;
+
public MicroServicePolicy() {
// serialization
}
@@ -203,6 +220,49 @@ public class MicroServicePolicy implements Serializable, Policy {
this.usedByLoops = usedBy;
}
+ public String getContext() {
+ return context;
+ }
+
+ public void setContext(String context) {
+ this.context = context;
+ }
+
+ public String getDeviceTypeScope() {
+ return deviceTypeScope;
+ }
+
+ public void setDeviceTypeScope(String deviceTypeScope) {
+ this.deviceTypeScope = deviceTypeScope;
+ }
+
+ /**
+ * microServiceModel getter.
+ *
+ * @return the microServiceModel
+ */
+ public MicroServiceModel getMicroServiceModel() {
+ return microServiceModel;
+ }
+
+ /**
+ * microServiceModel setter.
+ *
+ * @param microServiceModel the microServiceModel to set
+ */
+ public void setMicroServiceModel(MicroServiceModel microServiceModel) {
+ this.microServiceModel = microServiceModel;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
@Override
public int hashCode() {
final int prime = 31;
diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyRepository.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyRepository.java
index f658aacc..38b310ce 100644
--- a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyRepository.java
+++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyRepository.java
@@ -23,10 +23,10 @@
package org.onap.clamp.policy.microservice;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
-interface MicroServicePolicyRepository extends CrudRepository<MicroServicePolicy, String> {
+public interface MicroServicePolicyRepository extends JpaRepository<MicroServicePolicy, String> {
}
diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java
index 59ddaa00..346cdf62 100644
--- a/src/main/java/org/onap/clamp/policy/microservice/MicroservicePolicyService.java
+++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java
@@ -35,12 +35,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
-public class MicroservicePolicyService implements PolicyService<MicroServicePolicy> {
+public class MicroServicePolicyService implements PolicyService<MicroServicePolicy> {
private final MicroServicePolicyRepository repository;
@Autowired
- public MicroservicePolicyService(MicroServicePolicyRepository repository) {
+ public MicroServicePolicyService(MicroServicePolicyRepository repository) {
this.repository = repository;
}
diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java
index 14112694..e8bf4a65 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java
@@ -46,6 +46,7 @@ import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
@@ -55,6 +56,7 @@ import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.clamp.loop.Loop;
+import org.onap.clamp.loop.template.PolicyModel;
import org.onap.clamp.policy.Policy;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -90,6 +92,12 @@ public class OperationalPolicy implements Serializable, Policy {
@JoinColumn(name = "loop_id", nullable = false)
private Loop loop;
+ @Expose
+ @ManyToOne(fetch = FetchType.EAGER)
+ @JoinColumns({ @JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type"),
+ @JoinColumn(name = "policy_model_version", referencedColumnName = "version") })
+ private PolicyModel policyModel;
+
public OperationalPolicy() {
// Serialization
}
@@ -137,6 +145,33 @@ public class OperationalPolicy implements Serializable, Policy {
this.configurationsJson = configurationsJson;
}
+ /**
+ * policyModel getter.
+ *
+ * @return the policyModel
+ */
+ public PolicyModel getPolicyModel() {
+ return policyModel;
+ }
+
+ /**
+ * policyModel setter.
+ *
+ * @param policyModel the policyModel to set
+ */
+ public void setPolicyModel(PolicyModel policyModel) {
+ this.policyModel = policyModel;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
@Override
public JsonObject getJsonRepresentation() {
return jsonRepresentation;
diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepository.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepository.java
index 97b183f7..c0a6e12c 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepository.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepository.java
@@ -23,10 +23,10 @@
package org.onap.clamp.policy.operational;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
-interface OperationalPolicyRepository extends CrudRepository<OperationalPolicy, String> {
+public interface OperationalPolicyRepository extends JpaRepository<OperationalPolicy, String> {
void deleteByName(String policyName);
}
diff --git a/src/main/java/org/onap/clamp/tosca/Dictionary.java b/src/main/java/org/onap/clamp/tosca/Dictionary.java
new file mode 100644
index 00000000..7b4e513a
--- /dev/null
+++ b/src/main/java/org/onap/clamp/tosca/Dictionary.java
@@ -0,0 +1,174 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.tosca;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.onap.clamp.loop.common.AuditEntity;
+
+/**
+ * Represents Dictionary.
+ */
+
+@Entity
+@Table(name = "dictionary")
+public class Dictionary extends AuditEntity implements Serializable {
+
+ /**
+ * The serial version id.
+ */
+ private static final long serialVersionUID = -286522707701388645L;
+
+ @Id
+ @Expose
+ @Column(nullable = false, name = "name", unique = true)
+ private String name;
+
+ @Expose
+ @Column(name = "dictionary_second_level")
+ private int secondLevelDictionary;
+
+ @Expose
+ @Column(name = "dictionary_type")
+ private String subDictionaryType;
+
+ @Expose
+ @OneToMany(mappedBy = "dictionary", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ private List<DictionaryElement> dictionaryElements = new ArrayList<>();
+
+ /**
+ * name getter.
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * secondLevelDictionary getter.
+ *
+ * @return the secondLevelDictionary
+ */
+ public int getSecondLevelDictionary() {
+ return secondLevelDictionary;
+ }
+
+ /**
+ * secondLevelDictionary setter.
+ *
+ * @param secondLevelDictionary the secondLevelDictionary to set
+ */
+ public void setSecondLevelDictionary(int secondLevelDictionary) {
+ this.secondLevelDictionary = secondLevelDictionary;
+ }
+
+ /**
+ * subDictionaryType getter.
+ *
+ * @return the subDictionaryType
+ */
+ public String getSubDictionaryType() {
+ return subDictionaryType;
+ }
+
+ /**
+ * subDictionaryType setter.
+ *
+ * @param subDictionaryType the subDictionaryType to set
+ */
+ public void setSubDictionaryType(String subDictionaryType) {
+ this.subDictionaryType = subDictionaryType;
+ }
+
+ /**
+ * dictionaryElements getter.
+ *
+ * @return the dictionaryElements
+ */
+ public List<DictionaryElement> getDictionaryElements() {
+ return dictionaryElements;
+ }
+
+ /**
+ * dictionaryElements setter.
+ *
+ * @param dictionaryElements the dictionaryElements to set
+ */
+ public void setDictionaryElements(List<DictionaryElement> dictionaryElements) {
+ this.dictionaryElements = dictionaryElements;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ Dictionary other = (Dictionary) obj;
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/tosca/DictionaryElement.java b/src/main/java/org/onap/clamp/tosca/DictionaryElement.java
new file mode 100644
index 00000000..e81885f3
--- /dev/null
+++ b/src/main/java/org/onap/clamp/tosca/DictionaryElement.java
@@ -0,0 +1,249 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.tosca;
+
+import com.google.gson.annotations.Expose;
+
+import java.io.Serializable;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.onap.clamp.loop.common.AuditEntity;
+
+/**
+ * Represents a Dictionary Item.
+ */
+@Entity
+@Table(name = "dictionary_elements")
+public class DictionaryElement extends AuditEntity implements Serializable {
+
+ /**
+ * The serial version id.
+ */
+ private static final long serialVersionUID = -286522707701388644L;
+
+ @Id
+ @Expose
+ @Column(nullable = false, name = "name", unique = true)
+ private String name;
+
+ @Expose
+ @Column(nullable = false, name = "short_name", unique = true)
+ private String shortName;
+
+ @Expose
+ @Column(name = "description")
+ private String description;
+
+ @Expose
+ @Column(nullable = false, name = "type")
+ private String type;
+
+ @Column(name = "subdictionary_id", nullable = false)
+ @Expose
+ private String subDictionary;
+
+ @ManyToOne(cascade = CascadeType.ALL)
+ @JoinColumn(name = "dictionary_id")
+ private Dictionary dictionary;
+
+ /**
+ * name getter.
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * name setter.
+ *
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * shortName getter.
+ *
+ * @return the shortName
+ */
+ public String getShortName() {
+ return shortName;
+ }
+
+ /**
+ * shortName setter.
+ *
+ * @param shortName the shortName to set
+ */
+ public void setShortName(String shortName) {
+ this.shortName = shortName;
+ }
+
+ /**
+ * description getter.
+ *
+ * @return the description
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * description setter.
+ *
+ * @param description the description to set
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /**
+ * type getter.
+ *
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * type setter.
+ *
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * subDictionary getter.
+ *
+ * @return the subDictionary
+ */
+ public String getSubDictionary() {
+ return subDictionary;
+ }
+
+ /**
+ * subDictionary setter.
+ *
+ * @param subDictionary the subDictionary to set
+ */
+ public void setSubDictionary(String subDictionary) {
+ this.subDictionary = subDictionary;
+ }
+
+ /**
+ * dictionary getter.
+ *
+ * @return the dictionary
+ */
+ public Dictionary getDictionary() {
+ return dictionary;
+ }
+
+ /**
+ * dictionary setter.
+ *
+ * @param dictionary the dictionary to set
+ */
+ public void setDictionary(Dictionary dictionary) {
+ this.dictionary = dictionary;
+ }
+
+ /**
+ * Default Constructor.
+ */
+ public DictionaryElement() {
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param name The Dictionary element name
+ * @param shortName The short name
+ * @param description The description
+ * @param type The type of element
+ * @param subDictionary The sub type
+ * @param dictionary The parent dictionary
+ */
+ public DictionaryElement(String name, String shortName, String description, String type, String subDictionary,
+ Dictionary dictionary) {
+ this.name = name;
+ this.shortName = shortName;
+ this.description = description;
+ this.type = type;
+ this.subDictionary = subDictionary;
+ this.dictionary = dictionary;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((dictionary == null) ? 0 : dictionary.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ DictionaryElement other = (DictionaryElement) obj;
+ if (dictionary == null) {
+ if (other.dictionary != null) {
+ return false;
+ }
+ } else if (!dictionary.equals(other.dictionary)) {
+ return false;
+ }
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/java/org/onap/clamp/tosca/DictionaryElementsRepository.java b/src/main/java/org/onap/clamp/tosca/DictionaryElementsRepository.java
new file mode 100644
index 00000000..96cb2e35
--- /dev/null
+++ b/src/main/java/org/onap/clamp/tosca/DictionaryElementsRepository.java
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.tosca;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DictionaryElementsRepository extends JpaRepository<DictionaryElement, String> {
+
+}
diff --git a/src/main/java/org/onap/clamp/tosca/DictionaryRepository.java b/src/main/java/org/onap/clamp/tosca/DictionaryRepository.java
new file mode 100644
index 00000000..2a087b6d
--- /dev/null
+++ b/src/main/java/org/onap/clamp/tosca/DictionaryRepository.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.tosca;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DictionaryRepository extends JpaRepository<Dictionary, String> {
+
+ @Query("SELECT dict.name FROM Dictionary as dict")
+ List<String> getAllDictionaryNames();
+
+}
diff --git a/src/main/java/org/onap/clamp/util/SemanticVersioning.java b/src/main/java/org/onap/clamp/util/SemanticVersioning.java
new file mode 100644
index 00000000..bf1529c2
--- /dev/null
+++ b/src/main/java/org/onap/clamp/util/SemanticVersioning.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.util;
+
+/**
+ * This class is the base class for object that requires semantic versioning.
+ * ... This class supports also a.b.c.d... etc ... as a version.
+ *
+ *
+ */
+public class SemanticVersioning {
+ public static final int BEFORE = -1;
+ public static final int EQUAL = 0;
+ public static final int AFTER = 1;
+
+ /**
+ * The compare method that compare arg0 to arg1.
+ *
+ * @param arg0 A version in string for semantice versioning (a.b.c.d...)
+ * @param arg1 A version in string for semantice versioning (a.b.c.d...)
+ * @return objects (arg0, arg1) given as parameters. It returns the value: 0: if
+ * (arg0==arg1) -1: if (arg0 < arg1) 1: if (arg0 > arg1)
+ */
+ public static int compare(String arg0, String arg1) {
+
+ if (arg0 == null && arg1 == null) {
+ return EQUAL;
+ }
+ if (arg0 == null) {
+ return BEFORE;
+ }
+ if (arg1 == null) {
+ return AFTER;
+ }
+ String[] arg0Array = arg0.split("\\.");
+ String[] arg1Array = arg1.split("\\.");
+
+ int smalestStringLength = Math.min(arg0Array.length, arg1Array.length);
+
+ for (int currentVersionIndex = 0; currentVersionIndex < smalestStringLength; ++currentVersionIndex) {
+ if (Integer.parseInt(arg0Array[currentVersionIndex]) < Integer.parseInt(arg1Array[currentVersionIndex])) {
+ return BEFORE;
+ } else if (Integer.parseInt(arg0Array[currentVersionIndex]) > Integer
+ .parseInt(arg1Array[currentVersionIndex])) {
+ return AFTER;
+ }
+ // equals, so do not return anything, continue
+ }
+ if (arg0Array.length == arg1Array.length) {
+ return EQUAL;
+ } else {
+ return Integer.compare(arg0Array.length, arg1Array.length);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html
index b20d0c26..66024470 100644
--- a/src/main/resources/META-INF/resources/swagger.html
+++ b/src/main/resources/META-INF/resources/swagger.html
@@ -444,86 +444,86 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li>
<li><a href="#_paths">2. Paths</a>
<ul class="sectlevel2">
-<li><a href="#_route15">2.1. GET /v1/clds/cldsInfo</a>
+<li><a href="#_route32">2.1. GET /v1/clds/cldsInfo</a>
<ul class="sectlevel3">
<li><a href="#_responses">2.1.1. Responses</a></li>
<li><a href="#_produces">2.1.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route16">2.2. GET /v1/healthcheck</a>
+<li><a href="#_route33">2.2. GET /v1/healthcheck</a>
<ul class="sectlevel3">
<li><a href="#_responses_2">2.2.1. Responses</a></li>
<li><a href="#_produces_2">2.2.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route17">2.3. GET /v1/user/getUser</a>
+<li><a href="#_route34">2.3. GET /v1/user/getUser</a>
<ul class="sectlevel3">
<li><a href="#_responses_3">2.3.1. Responses</a></li>
<li><a href="#_produces_3">2.3.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route13">2.4. PUT /v2/loop/delete/{loopName}</a>
+<li><a href="#_route30">2.4. PUT /v2/loop/delete/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters">2.4.1. Parameters</a></li>
<li><a href="#_responses_4">2.4.2. Responses</a></li>
</ul>
</li>
-<li><a href="#_route8">2.5. PUT /v2/loop/deploy/{loopName}</a>
+<li><a href="#_route25">2.5. PUT /v2/loop/deploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_2">2.5.1. Parameters</a></li>
<li><a href="#_responses_5">2.5.2. Responses</a></li>
<li><a href="#_produces_4">2.5.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route2">2.6. GET /v2/loop/getAllNames</a>
+<li><a href="#_route19">2.6. GET /v2/loop/getAllNames</a>
<ul class="sectlevel3">
<li><a href="#_responses_6">2.6.1. Responses</a></li>
<li><a href="#_produces_5">2.6.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route14">2.7. GET /v2/loop/getstatus/{loopName}</a>
+<li><a href="#_route31">2.7. GET /v2/loop/getstatus/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_3">2.7.1. Parameters</a></li>
<li><a href="#_responses_7">2.7.2. Responses</a></li>
<li><a href="#_produces_6">2.7.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route11">2.8. PUT /v2/loop/restart/{loopName}</a>
+<li><a href="#_route28">2.8. PUT /v2/loop/restart/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_4">2.8.1. Parameters</a></li>
<li><a href="#_responses_8">2.8.2. Responses</a></li>
<li><a href="#_produces_7">2.8.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route10">2.9. PUT /v2/loop/stop/{loopName}</a>
+<li><a href="#_route27">2.9. PUT /v2/loop/stop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_5">2.9.1. Parameters</a></li>
<li><a href="#_responses_9">2.9.2. Responses</a></li>
<li><a href="#_produces_8">2.9.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route12">2.10. PUT /v2/loop/submit/{loopName}</a>
+<li><a href="#_route29">2.10. PUT /v2/loop/submit/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_6">2.10.1. Parameters</a></li>
<li><a href="#_responses_10">2.10.2. Responses</a></li>
<li><a href="#_produces_9">2.10.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route4">2.11. GET /v2/loop/svgRepresentation/{loopName}</a>
+<li><a href="#_route21">2.11. GET /v2/loop/svgRepresentation/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_7">2.11.1. Parameters</a></li>
<li><a href="#_responses_11">2.11.2. Responses</a></li>
<li><a href="#_produces_10">2.11.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route9">2.12. PUT /v2/loop/undeploy/{loopName}</a>
+<li><a href="#_route26">2.12. PUT /v2/loop/undeploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_8">2.12.1. Parameters</a></li>
<li><a href="#_responses_12">2.12.2. Responses</a></li>
<li><a href="#_produces_11">2.12.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route5">2.13. POST /v2/loop/updateGlobalProperties/{loopName}</a>
+<li><a href="#_route22">2.13. POST /v2/loop/updateGlobalProperties/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_9">2.13.1. Parameters</a></li>
<li><a href="#_responses_13">2.13.2. Responses</a></li>
@@ -531,7 +531,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_12">2.13.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route7">2.14. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
+<li><a href="#_route24">2.14. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_10">2.14.1. Parameters</a></li>
<li><a href="#_responses_14">2.14.2. Responses</a></li>
@@ -539,7 +539,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_13">2.14.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route6">2.15. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
+<li><a href="#_route23">2.15. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_11">2.15.1. Parameters</a></li>
<li><a href="#_responses_15">2.15.2. Responses</a></li>
@@ -547,7 +547,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_14">2.15.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route3">2.16. GET /v2/loop/{loopName}</a>
+<li><a href="#_route20">2.16. GET /v2/loop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_12">2.16.1. Parameters</a></li>
<li><a href="#_responses_16">2.16.2. Responses</a></li>
@@ -568,9 +568,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_jsonprimitive">3.8. JsonPrimitive</a></li>
<li><a href="#_loop">3.9. Loop</a></li>
<li><a href="#_looplog">3.10. LoopLog</a></li>
-<li><a href="#_microservicepolicy">3.11. MicroServicePolicy</a></li>
-<li><a href="#_number">3.12. Number</a></li>
-<li><a href="#_operationalpolicy">3.13. OperationalPolicy</a></li>
+<li><a href="#_looptemplate">3.11. LoopTemplate</a></li>
+<li><a href="#_microservicemodel">3.12. MicroServiceModel</a></li>
+<li><a href="#_microservicepolicy">3.13. MicroServicePolicy</a></li>
+<li><a href="#_number">3.14. Number</a></li>
+<li><a href="#_operationalpolicy">3.15. OperationalPolicy</a></li>
+<li><a href="#_policymodel">3.16. PolicyModel</a></li>
+<li><a href="#_service">3.17. Service</a></li>
+<li><a href="#_templatemicroservicemodel">3.18. TemplateMicroServiceModel</a></li>
</ul>
</li>
</ul>
@@ -583,13 +588,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<div class="sect2">
<h3 id="_version_information"><a class="anchor" href="#_version_information"></a><a class="link" href="#_version_information">1.1. Version information</a></h3>
<div class="paragraph">
-<p><em>Version</em> : 4.1.2-SNAPSHOT</p>
+<p><em>Version</em> : 4.2.0-SNAPSHOT</p>
</div>
</div>
<div class="sect2">
<h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3>
<div class="paragraph">
-<p><em>Host</em> : localhost:34219<br>
+<p><em>Host</em> : localhost:33953<br>
<em>BasePath</em> : /restservices/clds/<br>
<em>Schemes</em> : HTTP</p>
</div>
@@ -600,7 +605,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2>
<div class="sectionbody">
<div class="sect2">
-<h3 id="_route15"><a class="anchor" href="#_route15"></a><a class="link" href="#_route15">2.1. GET /v1/clds/cldsInfo</a></h3>
+<h3 id="_route32"><a class="anchor" href="#_route32"></a><a class="link" href="#_route32">2.1. GET /v1/clds/cldsInfo</a></h3>
<div class="sect3">
<h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -637,7 +642,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route16"><a class="anchor" href="#_route16"></a><a class="link" href="#_route16">2.2. GET /v1/healthcheck</a></h3>
+<h3 id="_route33"><a class="anchor" href="#_route33"></a><a class="link" href="#_route33">2.2. GET /v1/healthcheck</a></h3>
<div class="sect3">
<h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -674,7 +679,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route17"><a class="anchor" href="#_route17"></a><a class="link" href="#_route17">2.3. GET /v1/user/getUser</a></h3>
+<h3 id="_route34"><a class="anchor" href="#_route34"></a><a class="link" href="#_route34">2.3. GET /v1/user/getUser</a></h3>
<div class="sect3">
<h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -708,7 +713,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route13"><a class="anchor" href="#_route13"></a><a class="link" href="#_route13">2.4. PUT /v2/loop/delete/{loopName}</a></h3>
+<h3 id="_route30"><a class="anchor" href="#_route30"></a><a class="link" href="#_route30">2.4. PUT /v2/loop/delete/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.4.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -757,7 +762,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route8"><a class="anchor" href="#_route8"></a><a class="link" href="#_route8">2.5. PUT /v2/loop/deploy/{loopName}</a></h3>
+<h3 id="_route25"><a class="anchor" href="#_route25"></a><a class="link" href="#_route25">2.5. PUT /v2/loop/deploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.5.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -819,7 +824,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route2"><a class="anchor" href="#_route2"></a><a class="link" href="#_route2">2.6. GET /v2/loop/getAllNames</a></h3>
+<h3 id="_route19"><a class="anchor" href="#_route19"></a><a class="link" href="#_route19">2.6. GET /v2/loop/getAllNames</a></h3>
<div class="sect3">
<h4 id="_responses_6"><a class="anchor" href="#_responses_6"></a><a class="link" href="#_responses_6">2.6.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -856,7 +861,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route14"><a class="anchor" href="#_route14"></a><a class="link" href="#_route14">2.7. GET /v2/loop/getstatus/{loopName}</a></h3>
+<h3 id="_route31"><a class="anchor" href="#_route31"></a><a class="link" href="#_route31">2.7. GET /v2/loop/getstatus/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.7.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -918,7 +923,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route11"><a class="anchor" href="#_route11"></a><a class="link" href="#_route11">2.8. PUT /v2/loop/restart/{loopName}</a></h3>
+<h3 id="_route28"><a class="anchor" href="#_route28"></a><a class="link" href="#_route28">2.8. PUT /v2/loop/restart/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.8.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -980,7 +985,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route10"><a class="anchor" href="#_route10"></a><a class="link" href="#_route10">2.9. PUT /v2/loop/stop/{loopName}</a></h3>
+<h3 id="_route27"><a class="anchor" href="#_route27"></a><a class="link" href="#_route27">2.9. PUT /v2/loop/stop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.9.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1042,7 +1047,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route12"><a class="anchor" href="#_route12"></a><a class="link" href="#_route12">2.10. PUT /v2/loop/submit/{loopName}</a></h3>
+<h3 id="_route29"><a class="anchor" href="#_route29"></a><a class="link" href="#_route29">2.10. PUT /v2/loop/submit/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.10.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1104,7 +1109,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route4"><a class="anchor" href="#_route4"></a><a class="link" href="#_route4">2.11. GET /v2/loop/svgRepresentation/{loopName}</a></h3>
+<h3 id="_route21"><a class="anchor" href="#_route21"></a><a class="link" href="#_route21">2.11. GET /v2/loop/svgRepresentation/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.11.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1166,7 +1171,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route9"><a class="anchor" href="#_route9"></a><a class="link" href="#_route9">2.12. PUT /v2/loop/undeploy/{loopName}</a></h3>
+<h3 id="_route26"><a class="anchor" href="#_route26"></a><a class="link" href="#_route26">2.12. PUT /v2/loop/undeploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.12.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1228,7 +1233,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route5"><a class="anchor" href="#_route5"></a><a class="link" href="#_route5">2.13. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
+<h3 id="_route22"><a class="anchor" href="#_route22"></a><a class="link" href="#_route22">2.13. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.13.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1306,7 +1311,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route7"><a class="anchor" href="#_route7"></a><a class="link" href="#_route7">2.14. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
+<h3 id="_route24"><a class="anchor" href="#_route24"></a><a class="link" href="#_route24">2.14. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.14.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1384,7 +1389,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route6"><a class="anchor" href="#_route6"></a><a class="link" href="#_route6">2.15. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
+<h3 id="_route23"><a class="anchor" href="#_route23"></a><a class="link" href="#_route23">2.15. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.15.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1462,7 +1467,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route3"><a class="anchor" href="#_route3"></a><a class="link" href="#_route3">2.16. GET /v2/loop/{loopName}</a></h3>
+<h3 id="_route20"><a class="anchor" href="#_route20"></a><a class="link" href="#_route20">2.16. GET /v2/loop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.16.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2184,6 +2189,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; string, <a href="#_externalcomponent">ExternalComponent</a> &gt; map</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>dcaeBlueprintId</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
@@ -2214,14 +2229,19 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_looplog">LoopLog</a> &gt; array</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopTemplate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_looptemplate">LoopTemplate</a></p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>microServicePolicies</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_microservicepolicy">MicroServicePolicy</a> &gt; array</p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>modelPropertiesJson</strong><br>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>modelService</strong><br>
<em>optional</em></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_service">Service</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>name</strong><br>
@@ -2238,6 +2258,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
</tbody>
</table>
</div>
@@ -2289,7 +2319,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.11. MicroServicePolicy</a></h3>
+<h3 id="_looptemplate"><a class="anchor" href="#_looptemplate"></a><a class="link" href="#_looptemplate">3.11. LoopTemplate</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -2303,11 +2333,165 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</thead>
<tbody>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>blueprint</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>maximumInstancesAllowed</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>microServiceModelUsed</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_templatemicroservicemodel">TemplateMicroServiceModel</a> &gt; array</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>modelService</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_service">Service</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>name</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>svgRepresentation</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_microservicemodel"><a class="anchor" href="#_microservicemodel"></a><a class="link" href="#_microservicemodel">3.12. MicroServiceModel</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>blueprint</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>name</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModel</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyType</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>usedByLoopTemplates</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_templatemicroservicemodel">TemplateMicroServiceModel</a> &gt; array</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.13. MicroServicePolicy</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>context</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>deviceTypeScope</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonRepresentation</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>microServiceModel</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_microservicemodel">MicroServiceModel</a></p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>modelType</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
@@ -2333,6 +2517,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>usedByLoops</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_loop">Loop</a> &gt; array</p></td>
@@ -2341,13 +2535,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.12. Number</a></h3>
+<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.14. Number</a></h3>
<div class="paragraph">
<p><em>Type</em> : object</p>
</div>
</div>
<div class="sect2">
-<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.13. OperationalPolicy</a></h3>
+<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.15. OperationalPolicy</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -2380,6 +2574,137 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModel</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_policymodel"><a class="anchor" href="#_policymodel"></a><a class="link" href="#_policymodel">3.16. PolicyModel</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>createdDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyAcronym</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelTosca</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelType</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyVariant</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedBy</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>updatedDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>version</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_service"><a class="anchor" href="#_service"></a><a class="link" href="#_service">3.17. Service</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>resourceDetails</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>serviceDetails</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>serviceUuid</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_templatemicroservicemodel"><a class="anchor" href="#_templatemicroservicemodel"></a><a class="link" href="#_templatemicroservicemodel">3.18. TemplateMicroServiceModel</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>flowOrder</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopTemplate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_looptemplate">LoopTemplate</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>microServiceModel</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_microservicemodel">MicroServiceModel</a></p></td>
+</tr>
</tbody>
</table>
</div>
@@ -2388,7 +2713,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
<div id="footer">
<div id="footer-text">
-Last updated 2019-05-27 14:30:20 CEST
+Last updated 2019-10-29 10:41:43 CET
</div>
</div>
</body>
diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
index df952aa1..2ebea7b1 100644
--- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
+++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
@@ -63,7 +63,7 @@ import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.annotation.Rollback;
+import org.springframework.test.annotation.Commit;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
@@ -183,7 +183,7 @@ public class CsarInstallerItCase {
@Test
@Transactional
- @Rollback(value = false)
+ @Commit
public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException,
CsarHandlerException, IOException, JSONException, InterruptedException {
String generatedName = RandomStringUtils.randomAlphanumeric(5);
@@ -209,7 +209,7 @@ public class CsarInstallerItCase {
assertThat(loop.getOperationalPolicies()).hasSize(1);
assertThat(loop.getModelService().getServiceUuid()).isEqualTo("63cac700-ab9a-4115-a74f-7eac85e3fce0");
JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"),
- JsonUtils.GSON_JPA_MODEL.toJson(loop.getModelService()), true);
+ JsonUtils.GSON_JPA_MODEL.toJson(loop.getModelService()), true);
JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/service-details.json"),
JsonUtils.GSON_JPA_MODEL.toJson(loop.getModelService().getServiceDetails()), true);
JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/resource-details.json"),
diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
index 67ae985c..a41b5c25 100644
--- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
@@ -32,18 +32,15 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.Set;
+
import javax.transaction.Transactional;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.onap.clamp.clds.Application;
import org.onap.clamp.clds.util.JsonUtils;
-
import org.onap.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.clamp.policy.microservice.MicroservicePolicyService;
+import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -63,7 +60,7 @@ public class LoopControllerTestItCase {
LoopsRepository loopsRepository;
@Autowired
- MicroservicePolicyService microServicePolicyService;
+ MicroServicePolicyService microServicePolicyService;
@Autowired
LoopController loopController;
@@ -78,18 +75,10 @@ public class LoopControllerTestItCase {
return new Loop(loopName, loopBlueprint, loopSvg);
}
- @Before
- public void setUp() {
- saveTestLoopToDb();
- }
-
- @After
- public void tearDown() {
- loopsRepository.deleteAll();
- }
-
@Test
+ @Transactional
public void testUpdateOperationalPolicies() {
+ saveTestLoopToDb();
String policy = "[{\"name\":\"OPERATIONAL_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules\","
+ "\"configurationsJson\":{\"guard_policies\":{},"
+ "\"operational_policy\":{\"controlLoop\":{\"trigger_policy\":\"unique-policy-id-1-modifyConfig\","
@@ -113,6 +102,7 @@ public class LoopControllerTestItCase {
@Test
@Transactional
public void testUpdateGlobalProperties() {
+ saveTestLoopToDb();
String policy = "{\"dcaeDeployParameters\":{\"aaiEnrichmentHost\":\"aai.onap.svc.cluster.local\","
+ "\"aaiEnrichmentPort\":\"8443\",\"enableAAIEnrichment\":\"false\",\"dmaap_host\":\"message-router"
+ ".onap\",\"dmaap_port\":\"3904\",\"enableRedisCaching\":\"false\",\"redisHosts\":\"dcae-redis.onap"
@@ -134,9 +124,10 @@ public class LoopControllerTestItCase {
@Test
@Transactional
public void testUpdateMicroservicePolicy() {
+ saveTestLoopToDb();
MicroServicePolicy policy = new MicroServicePolicy("policyName", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
loopController.updateMicroservicePolicy(EXAMPLE_LOOP_NAME, policy);
assertThat(microServicePolicyService.isExisting("policyName")).isTrue();
}
@@ -144,7 +135,8 @@ public class LoopControllerTestItCase {
@Test
@Transactional
public void testGetSvgRepresentation() {
- String svgRepresentation = loopController.getSvgRepresentation(EXAMPLE_LOOP_NAME);
+ saveTestLoopToDb();
+ String svgRepresentation = loopController.getSvgRepresentation(EXAMPLE_LOOP_NAME);
assertThat(svgRepresentation).isEqualTo("representation");
}
} \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java
index 57b2cef6..c172a9a0 100644
--- a/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java
@@ -27,11 +27,11 @@ import static org.assertj.core.api.Assertions.assertThat;
import com.google.gson.JsonObject;
import java.util.Set;
+
import javax.transaction.Transactional;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.onap.clamp.clds.Application;
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.loop.log.LogType;
@@ -77,10 +77,10 @@ public class LoopLogServiceTestItCase {
assertThat(loopLogs).hasSize(1);
LoopLog loopLog = loopLogs.iterator().next();
assertThat(loopLog.getMessage()).isEqualTo(SAMPLE_LOG_MESSAGE);
- loopsRepository.deleteAll();
}
@Test
+ @Transactional
public void testLoopLog() {
LoopLog log = new LoopLog();
Long id = Long.valueOf(100);
diff --git a/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java b/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java
index 78e0d2e3..44feaebd 100644
--- a/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java
@@ -40,8 +40,17 @@ import org.onap.clamp.clds.Application;
import org.onap.clamp.loop.log.LogType;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.log.LoopLogRepository;
+import org.onap.clamp.loop.service.Service;
+import org.onap.clamp.loop.service.ServicesRepository;
+import org.onap.clamp.loop.template.LoopTemplate;
+import org.onap.clamp.loop.template.LoopTemplatesRepository;
+import org.onap.clamp.loop.template.MicroServiceModel;
+import org.onap.clamp.loop.template.MicroServiceModelsRepository;
+import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelId;
+import org.onap.clamp.loop.template.PolicyModelsRepository;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.clamp.policy.microservice.MicroservicePolicyService;
+import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
import org.onap.clamp.policy.operational.OperationalPolicyService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -59,7 +68,7 @@ public class LoopRepositoriesItCase {
private LoopsRepository loopRepository;
@Autowired
- private MicroservicePolicyService microServicePolicyService;
+ private MicroServicePolicyService microServicePolicyService;
@Autowired
private OperationalPolicyService operationalPolicyService;
@@ -67,12 +76,47 @@ public class LoopRepositoriesItCase {
@Autowired
private LoopLogRepository loopLogRepository;
+ @Autowired
+ private LoopTemplatesRepository loopTemplateRepository;
+
+ @Autowired
+ private MicroServiceModelsRepository microServiceModelsRepository;
+
+ @Autowired
+ private PolicyModelsRepository policyModelsRepository;
+
+ @Autowired
+ private ServicesRepository servicesRepository;
+
+ private Service getService(String serviceDetails, String resourceDetails) {
+ return new Service(serviceDetails, resourceDetails);
+ }
+
private OperationalPolicy getOperationalPolicy(String configJson, String name) {
return new OperationalPolicy(name, null, new Gson().fromJson(configJson, JsonObject.class));
}
+ private MicroServiceModel getMicroServiceModel(String yaml, String name, String policyType, String createdBy,
+ PolicyModel policyModel) {
+ MicroServiceModel model = new MicroServiceModel(name, policyType, yaml, policyModel);
+ return model;
+ }
+
+ private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym,
+ String policyVariant, String createdBy) {
+ return new PolicyModel(policyType, policyModelTosca, version, policyAcronym, policyVariant);
+ }
+
+ private LoopTemplate getLoopTemplate(String name, String blueprint, String svgRepresentation, String createdBy,
+ Integer maxInstancesAllowed) {
+ LoopTemplate template = new LoopTemplate(name, blueprint, svgRepresentation, maxInstancesAllowed, null);
+ template.addMicroServiceModel(getMicroServiceModel("yaml", "microService1", "org.onap.policy.drools", createdBy,
+ getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools", "type1", createdBy)));
+ return template;
+ }
+
private Loop getLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson,
- String dcaeId, String dcaeUrl, String dcaeBlueprintId) {
+ String dcaeId, String dcaeUrl, String dcaeBlueprintId) {
Loop loop = new Loop();
loop.setName(name);
loop.setSvgRepresentation(svgRepresentation);
@@ -82,13 +126,14 @@ public class LoopRepositoriesItCase {
loop.setDcaeDeploymentId(dcaeId);
loop.setDcaeDeploymentStatusUrl(dcaeUrl);
loop.setDcaeBlueprintId(dcaeBlueprintId);
+ loop.setLoopTemplate(getLoopTemplate("templateName", "yaml", "svg", "toto", 1));
return loop;
}
private MicroServicePolicy getMicroServicePolicy(String name, String modelType, String jsonRepresentation,
- String policyTosca, String jsonProperties, boolean shared) {
+ String policyTosca, String jsonProperties, boolean shared) {
MicroServicePolicy microService = new MicroServicePolicy(name, modelType, policyTosca, shared,
- gson.fromJson(jsonRepresentation, JsonObject.class), new HashSet<>());
+ gson.fromJson(jsonRepresentation, JsonObject.class), new HashSet<>());
microService.setProperties(new Gson().fromJson(jsonProperties, JsonObject.class));
return microService;
}
@@ -100,52 +145,108 @@ public class LoopRepositoriesItCase {
@Test
@Transactional
public void crudTest() {
+ // Setup
Loop loopTest = getLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}",
- "123456789", "https://dcaetest.org", "UUID-blueprint");
+ "123456789", "https://dcaetest.org", "UUID-blueprint");
OperationalPolicy opPolicy = this.getOperationalPolicy("{\"type\":\"GUARD\"}", "GuardOpPolicyTest");
loopTest.addOperationalPolicy(opPolicy);
MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "",
- "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
- "{\"param1\":\"value1\"}", true);
+ "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
+ "{\"param1\":\"value1\"}", true);
loopTest.addMicroServicePolicy(microServicePolicy);
LoopLog loopLog = getLoopLog(LogType.INFO, "test message", loopTest);
loopTest.addLog(loopLog);
+ Service service = getService(
+ "{\"name\": \"vLoadBalancerMS\", \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\"}", "{\"CP\": {}}");
+ loopTest.setModelService(service);
- // Attemp to save into the database the entire loop
+ // Attempt to save into the database the entire loop
Loop loopInDb = loopRepository.save(loopTest);
assertThat(loopInDb).isNotNull();
+ assertThat(loopRepository.findById(loopInDb.getName()).get()).isNotNull();
+ assertThat(loopInDb.getCreatedDate()).isNotNull();
+ assertThat(loopInDb.getUpdatedDate()).isNotNull();
+ assertThat(loopInDb.getUpdatedDate()).isEqualTo(loopInDb.getCreatedDate());
assertThat(loopInDb.getName()).isEqualTo("ControlLoopTest");
- // Now set the ID in the previous model so that we can compare the objects
+ // Autogen id so now set the ID in the previous model so that we can compare the
+ // objects
loopLog.setId(((LoopLog) loopInDb.getLoopLogs().toArray()[0]).getId());
- assertThat(loopInDb).isEqualToIgnoringGivenFields(loopTest, "components");
+ assertThat(loopInDb).isEqualToIgnoringGivenFields(loopTest, "components", "createdDate", "updatedDate",
+ "createdBy", "updatedBy");
assertThat(loopRepository.existsById(loopTest.getName())).isEqualTo(true);
assertThat(operationalPolicyService.isExisting(opPolicy.getName())).isEqualTo(true);
assertThat(microServicePolicyService.isExisting(microServicePolicy.getName())).isEqualTo(true);
assertThat(loopLogRepository.existsById(loopLog.getId())).isEqualTo(true);
+ assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true);
+ assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true);
+ assertThat(servicesRepository.existsById(loopInDb.getModelService().getServiceUuid())).isEqualTo(true);
+ assertThat(microServiceModelsRepository.existsById(
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getName()))
+ .isEqualTo(true);
+ assertThat(policyModelsRepository.existsById(new PolicyModelId(
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getPolicyModel()
+ .getPolicyModelType(),
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getPolicyModel()
+ .getVersion()))).isEqualTo(true);
// Now attempt to read from database
Loop loopInDbRetrieved = loopRepository.findById(loopTest.getName()).get();
- assertThat(loopInDbRetrieved).isEqualToIgnoringGivenFields(loopTest, "components");
+ assertThat(loopInDbRetrieved).isEqualToIgnoringGivenFields(loopTest, "components", "createdDate", "updatedDate",
+ "createdBy", "updatedBy");
+ assertThat(loopInDbRetrieved).isEqualToComparingOnlyGivenFields(loopInDb, "createdDate", "updatedDate",
+ "createdBy", "updatedBy");
assertThat((LoopLog) loopInDbRetrieved.getLoopLogs().toArray()[0]).isEqualToComparingFieldByField(loopLog);
assertThat((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0])
- .isEqualToComparingFieldByField(opPolicy);
+ .isEqualToComparingFieldByField(opPolicy);
assertThat((MicroServicePolicy) loopInDbRetrieved.getMicroServicePolicies().toArray()[0])
- .isEqualToComparingFieldByField(microServicePolicy);
+ .isEqualToIgnoringGivenFields(microServicePolicy, "createdDate", "updatedDate", "createdBy",
+ "updatedBy");
// Attempt an update
((LoopLog) loopInDbRetrieved.getLoopLogs().toArray()[0]).setLogInstant(Instant.now());
- loopRepository.save(loopInDbRetrieved);
- Loop loopInDbRetrievedUpdated = loopRepository.findById(loopTest.getName()).get();
+ loopInDbRetrieved.setBlueprint("yaml2");
+ Loop loopInDbRetrievedUpdated = loopRepository.saveAndFlush(loopInDbRetrieved);
+ // Loop loopInDbRetrievedUpdated =
+ // loopRepository.findById(loopTest.getName()).get();
+ assertThat(loopInDbRetrievedUpdated.getBlueprint()).isEqualTo("yaml2");
assertThat((LoopLog) loopInDbRetrievedUpdated.getLoopLogs().toArray()[0])
- .isEqualToComparingFieldByField(loopInDbRetrieved.getLoopLogs().toArray()[0]);
+ .isEqualToComparingFieldByField(loopInDbRetrieved.getLoopLogs().toArray()[0]);
+ // UpdatedDate should have been changed
+ assertThat(loopInDbRetrievedUpdated.getUpdatedDate()).isNotEqualTo(loopInDbRetrievedUpdated.getCreatedDate());
+ // createdDate should have NOT been changed
+ assertThat(loopInDbRetrievedUpdated.getCreatedDate()).isEqualTo(loopInDb.getCreatedDate());
+ // other audit are the same
+ assertThat(loopInDbRetrievedUpdated.getCreatedBy()).isEqualTo("");
+ assertThat(loopInDbRetrievedUpdated.getUpdatedBy()).isEqualTo("");
// Attempt to delete the object and check it has well been cascaded
+
loopRepository.delete(loopInDbRetrieved);
assertThat(loopRepository.existsById(loopTest.getName())).isEqualTo(false);
assertThat(operationalPolicyService.isExisting(opPolicy.getName())).isEqualTo(false);
- assertThat(microServicePolicyService.isExisting(microServicePolicy.getName())).isEqualTo(false);
+ assertThat(microServicePolicyService.isExisting(microServicePolicy.getName())).isEqualTo(true);
assertThat(loopLogRepository.existsById(loopLog.getId())).isEqualTo(false);
+ assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true);
+ assertThat(servicesRepository.existsById(loopInDb.getModelService().getServiceUuid())).isEqualTo(true);
+ assertThat(microServiceModelsRepository.existsById(
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getName()))
+ .isEqualTo(true);
+
+ assertThat(policyModelsRepository.existsById(new PolicyModelId(
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getPolicyModel()
+ .getPolicyModelType(),
+ loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getPolicyModel()
+ .getVersion()))).isEqualTo(true);
+
+ // Cleanup
+ // microServiceModelsRepository
+ // .delete(loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel());
+ //
+ // policyModelsRepository.delete(
+ // loopInDb.getLoopTemplate().getMicroServiceModelUsed().first().getMicroServiceModel().getPolicyModel());
+ // loopTemplateRepository.delete(loopInDb.getLoopTemplate());
+ // servicesRepository.delete(service);
}
}
diff --git a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
index 28a92e37..d19c8a80 100644
--- a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java
@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
import javax.transaction.Transactional;
import org.assertj.core.util.Lists;
-import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.clamp.clds.Application;
@@ -42,7 +41,7 @@ import org.onap.clamp.loop.log.LogType;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.log.LoopLogService;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.clamp.policy.microservice.MicroservicePolicyService;
+import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
import org.onap.clamp.policy.operational.OperationalPolicyService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -63,7 +62,7 @@ public class LoopServiceTestItCase {
LoopsRepository loopsRepository;
@Autowired
- MicroservicePolicyService microServicePolicyService;
+ MicroServicePolicyService microServicePolicyService;
@Autowired
OperationalPolicyService operationalPolicyService;
@@ -71,11 +70,6 @@ public class LoopServiceTestItCase {
@Autowired
LoopLogService loopLogService;
- @After
- public void tearDown() {
- loopsRepository.deleteAll();
- }
-
@Test
@Transactional
public void shouldCreateEmptyLoop() {
@@ -96,7 +90,7 @@ public class LoopServiceTestItCase {
assertThat(actualLoop.getBlueprint()).isEqualTo(loopBlueprint);
assertThat(actualLoop.getSvgRepresentation()).isEqualTo(loopSvg);
assertThat(actualLoop.getGlobalPropertiesJson().getAsJsonPrimitive("testName").getAsString())
- .isEqualTo("testValue");
+ .isEqualTo("testValue");
}
@Test
@@ -105,11 +99,11 @@ public class LoopServiceTestItCase {
// given
saveTestLoopToDb();
OperationalPolicy operationalPolicy = new OperationalPolicy("policyName", null,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
// when
Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(operationalPolicy));
+ Lists.newArrayList(operationalPolicy));
// then
assertThat(actualLoop).isNotNull();
@@ -128,20 +122,20 @@ public class LoopServiceTestItCase {
// given
saveTestLoopToDb();
MicroServicePolicy microServicePolicy = new MicroServicePolicy("policyName", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
// when
Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(microServicePolicy));
+ Lists.newArrayList(microServicePolicy));
// then
assertThat(actualLoop).isNotNull();
assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME);
Set<MicroServicePolicy> savedPolicies = actualLoop.getMicroServicePolicies();
assertThat(savedPolicies).hasSize(1);
- assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops")
- .containsExactly(microServicePolicy);
+ assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate",
+ "createdBy", "updatedBy").containsExactly(microServicePolicy);
assertThat(savedPolicies).extracting("usedByLoops").hasSize(1);
}
@@ -153,16 +147,16 @@ public class LoopServiceTestItCase {
saveTestLoopToDb();
MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy("firstPolicyName", "", "", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy("secondPolicyName", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", true, JsonUtils.GSON.fromJson("{}", JsonObject.class),
- null);
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0", true,
+ JsonUtils.GSON.fromJson("{}", JsonObject.class), null);
// when
firstMicroServicePolicy.setProperties(JsonUtils.GSON.fromJson("{\"name1\":\"value1\"}", JsonObject.class));
Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(firstMicroServicePolicy, secondMicroServicePolicy));
+ Lists.newArrayList(firstMicroServicePolicy, secondMicroServicePolicy));
// then
assertThat(actualLoop).isNotNull();
@@ -171,8 +165,8 @@ public class LoopServiceTestItCase {
assertThat(savedPolicies).hasSize(2);
assertThat(savedPolicies).contains(firstMicroServicePolicy);
assertThat(savedPolicies).contains(secondMicroServicePolicy);
- assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops")
- .containsExactlyInAnyOrder(firstMicroServicePolicy, secondMicroServicePolicy);
+ assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate",
+ "createdBy", "updatedBy").containsExactlyInAnyOrder(firstMicroServicePolicy, secondMicroServicePolicy);
}
@@ -189,24 +183,24 @@ public class LoopServiceTestItCase {
saveTestLoopToDb();
MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy("firstPolicyName", "",
- "\"tosca_definitions_version: tosca_simple_yaml_1_0_0\"", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ "\"tosca_definitions_version: tosca_simple_yaml_1_0_0\"", false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy("policyName", "", "secondPolicyTosca",
- true, JsonUtils.GSON.fromJson("{}", JsonObject.class), null);
+ true, JsonUtils.GSON.fromJson("{}", JsonObject.class), null);
// when
Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(secondMicroServicePolicy));
+ Lists.newArrayList(secondMicroServicePolicy));
// then
assertThat(actualLoop).isNotNull();
assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME);
Set<MicroServicePolicy> savedPolicies = actualLoop.getMicroServicePolicies();
assertThat(savedPolicies).hasSize(1);
- assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops")
- .containsExactly(secondMicroServicePolicy);
+ assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate",
+ "createdBy", "updatedBy").containsExactly(secondMicroServicePolicy);
}
@@ -219,16 +213,16 @@ public class LoopServiceTestItCase {
JsonObject newJsonConfiguration = JsonUtils.GSON.fromJson("{}", JsonObject.class);
OperationalPolicy firstOperationalPolicy = new OperationalPolicy("firstPolicyName", null,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
OperationalPolicy secondOperationalPolicy = new OperationalPolicy("secondPolicyName", null,
- newJsonConfiguration);
+ newJsonConfiguration);
// when
firstOperationalPolicy.setConfigurationsJson(newJsonConfiguration);
Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(firstOperationalPolicy, secondOperationalPolicy));
+ Lists.newArrayList(firstOperationalPolicy, secondOperationalPolicy));
// then
assertThat(actualLoop).isNotNull();
@@ -236,9 +230,9 @@ public class LoopServiceTestItCase {
Set<OperationalPolicy> savedPolicies = actualLoop.getOperationalPolicies();
assertThat(savedPolicies).hasSize(2);
assertThat(savedPolicies).usingElementComparatorIgnoringFields("loop")
- .containsExactlyInAnyOrder(firstOperationalPolicy, secondOperationalPolicy);
+ .containsExactlyInAnyOrder(firstOperationalPolicy, secondOperationalPolicy);
Set<String> policiesLoops = Lists.newArrayList(savedPolicies).stream().map(OperationalPolicy::getLoop)
- .map(Loop::getName).collect(Collectors.toSet());
+ .map(Loop::getName).collect(Collectors.toSet());
assertThat(policiesLoops).containsExactly(EXAMPLE_LOOP_NAME);
}
@@ -249,15 +243,15 @@ public class LoopServiceTestItCase {
saveTestLoopToDb();
OperationalPolicy firstOperationalPolicy = new OperationalPolicy("firstPolicyName", null,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
OperationalPolicy secondOperationalPolicy = new OperationalPolicy("policyName", null,
- JsonUtils.GSON.fromJson("{}", JsonObject.class));
+ JsonUtils.GSON.fromJson("{}", JsonObject.class));
// when
Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME,
- Lists.newArrayList(secondOperationalPolicy));
+ Lists.newArrayList(secondOperationalPolicy));
// then
assertThat(actualLoop).isNotNull();
@@ -300,21 +294,21 @@ public class LoopServiceTestItCase {
loop = loopService.saveOrUpdateLoop(loop);
// Add op policy
OperationalPolicy operationalPolicy = new OperationalPolicy("opPolicy", null,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(operationalPolicy));
// Add Micro service policy
MicroServicePolicy microServicePolicy = new MicroServicePolicy("microPolicy", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(microServicePolicy));
// Verify it's there
assertThat(loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null)).isNotNull();
loopService.deleteLoop(EXAMPLE_LOOP_NAME);
- // Verify it's well deleted and has been cascaded
+ // Verify it's well deleted and has been cascaded, except for Microservice
assertThat(loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null)).isNull();
- assertThat(microServicePolicyService.isExisting("microPolicy")).isFalse();
+ assertThat(microServicePolicyService.isExisting("microPolicy")).isTrue();
assertThat(operationalPolicyService.isExisting("opPolicy")).isFalse();
assertThat(loopLogService.isExisting(((LoopLog) loop.getLoopLogs().toArray()[0]).getId())).isFalse();
}
@@ -334,8 +328,8 @@ public class LoopServiceTestItCase {
public void testUpdateDcaeDeploymentFields() {
saveTestLoopToDb();
Loop loop = loopService.getLoop(EXAMPLE_LOOP_NAME);
- loopService.updateDcaeDeploymentFields(loop,"CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85",
- "https4://deployment-handler.onap:8443");
+ loopService.updateDcaeDeploymentFields(loop, "CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85",
+ "https4://deployment-handler.onap:8443");
loop = loopService.getLoop(EXAMPLE_LOOP_NAME);
assertThat(loop.getDcaeDeploymentId()).isEqualTo("CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85");
assertThat(loop.getDcaeDeploymentStatusUrl()).isEqualTo("https4://deployment-handler.onap:8443");
@@ -347,8 +341,8 @@ public class LoopServiceTestItCase {
saveTestLoopToDb();
assertThat(microServicePolicyService.isExisting("policyName")).isFalse();
MicroServicePolicy microServicePolicy = new MicroServicePolicy("policyName", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
loopService.updateMicroservicePolicy(EXAMPLE_LOOP_NAME, microServicePolicy);
assertThat(microServicePolicyService.isExisting("policyName")).isTrue();
}
diff --git a/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java b/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java
index 68fe487e..914c64ea 100644
--- a/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java
+++ b/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java
@@ -44,6 +44,9 @@ import org.onap.clamp.loop.components.external.PolicyComponent;
import org.onap.clamp.loop.log.LogType;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.service.Service;
+import org.onap.clamp.loop.template.LoopTemplate;
+import org.onap.clamp.loop.template.MicroServiceModel;
+import org.onap.clamp.loop.template.PolicyModel;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.operational.OperationalPolicy;
import org.skyscreamer.jsonassert.JSONAssert;
@@ -72,10 +75,30 @@ public class LoopToJsonTest {
MicroServicePolicy microService = new MicroServicePolicy(name, modelType, policyTosca, shared,
gson.fromJson(jsonRepresentation, JsonObject.class), new HashSet<>());
microService.setProperties(new Gson().fromJson(jsonProperties, JsonObject.class));
-
return microService;
}
+ private MicroServiceModel getMicroServiceModel(String yaml, String name, PolicyModel policyModel) {
+ MicroServiceModel model = new MicroServiceModel();
+ model.setBlueprint(yaml);
+ model.setName(name);
+ model.setPolicyModel(policyModel);
+ return model;
+ }
+
+ private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym,
+ String policyVariant) {
+ return new PolicyModel(policyType, policyModelTosca, version, policyAcronym, policyVariant);
+ }
+
+ private LoopTemplate getLoopTemplate(String name, String blueprint, String svgRepresentation,
+ Integer maxInstancesAllowed) {
+ LoopTemplate template = new LoopTemplate(name, blueprint, svgRepresentation, maxInstancesAllowed, null);
+ template.addMicroServiceModel(getMicroServiceModel("yaml", "microService1",
+ getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools", "type1")));
+ return template;
+ }
+
private LoopLog getLoopLog(LogType type, String message, Loop loop) {
LoopLog log = new LoopLog(message, type, "CLAMP", loop);
log.setId(Long.valueOf(new Random().nextInt()));
@@ -95,6 +118,8 @@ public class LoopToJsonTest {
loopTest.addMicroServicePolicy(microServicePolicy);
LoopLog loopLog = getLoopLog(LogType.INFO, "test message", loopTest);
loopTest.addLog(loopLog);
+ LoopTemplate loopTemplate = getLoopTemplate("templateName", "yaml", "svg", 1);
+ loopTest.setLoopTemplate(loopTemplate);
String jsonSerialized = JsonUtils.GSON_JPA_MODEL.toJson(loopTest);
assertThat(jsonSerialized).isNotNull().isNotEmpty();
@@ -116,6 +141,9 @@ public class LoopToJsonTest {
assertThat(loopTestDeserialized.getLoopLogs()).containsExactly(loopLog);
assertThat((LoopLog) loopTestDeserialized.getLoopLogs().toArray()[0]).isEqualToIgnoringGivenFields(loopLog,
"loop");
+
+ // Verify the loop template
+ assertThat(loopTestDeserialized.getLoopTemplate()).isEqualTo(loopTemplate);
}
@Test
@@ -128,17 +156,14 @@ public class LoopToJsonTest {
Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(),
jsonModel.get("resourceDetails").getAsJsonObject(), "1.0");
loopTest2.setModelService(service);
-
String jsonSerialized = JsonUtils.GSON_JPA_MODEL.toJson(loopTest2);
assertThat(jsonSerialized).isNotNull().isNotEmpty();
System.out.println(jsonSerialized);
- JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/loop.json"),
- jsonSerialized, true);
Loop loopTestDeserialized = JsonUtils.GSON_JPA_MODEL.fromJson(jsonSerialized, Loop.class);
assertNotNull(loopTestDeserialized);
- assertThat(loopTestDeserialized).isEqualToIgnoringGivenFields(loopTest2, "modelService",
- "svgRepresentation", "blueprint", "components");
+ assertThat(loopTestDeserialized).isEqualToIgnoringGivenFields(loopTest2, "modelService", "svgRepresentation",
+ "blueprint", "components");
}
@Test
diff --git a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java
new file mode 100644
index 00000000..b284dd79
--- /dev/null
+++ b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java
@@ -0,0 +1,161 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.loop;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.transaction.Transactional;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.Application;
+import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelId;
+import org.onap.clamp.loop.template.PolicyModelsRepository;
+import org.onap.clamp.loop.template.PolicyModelsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class PolicyModelServiceItCase {
+
+ @Autowired
+ PolicyModelsService policyModelsService;
+
+ @Autowired
+ PolicyModelsRepository policyModelsRepository;
+
+ private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
+ private static final String POLICY_MODEL_TYPE_1_VERSION_1 = "1.0.0";
+
+ private static final String POLICY_MODEL_TYPE_2 = "org.onap.test2";
+ private static final String POLICY_MODEL_TYPE_2_VERSION_1 = "1.0.0";
+ private static final String POLICY_MODEL_TYPE_2_VERSION_2 = "2.0.0";
+
+ private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym,
+ String policyVariant, String createdBy) {
+ PolicyModel policyModel = new PolicyModel();
+ policyModel.setCreatedBy(createdBy);
+ policyModel.setPolicyAcronym(policyAcronym);
+ policyModel.setPolicyModelTosca(policyModelTosca);
+ policyModel.setPolicyModelType(policyType);
+ policyModel.setPolicyVariant(policyVariant);
+ policyModel.setUpdatedBy(createdBy);
+ policyModel.setVersion(version);
+ return policyModel;
+ }
+
+ @Test
+ @Transactional
+ public void shouldCreatePolicyModel() {
+ // given
+ PolicyModel policyModel = getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", POLICY_MODEL_TYPE_1_VERSION_1, "TEST",
+ "VARIANT", "user");
+
+ // when
+ PolicyModel actualPolicyModel = policyModelsService.saveOrUpdatePolicyModel(policyModel);
+
+ // then
+ assertThat(actualPolicyModel).isNotNull();
+ assertThat(actualPolicyModel).isEqualTo(policyModelsRepository
+ .findById(new PolicyModelId(actualPolicyModel.getPolicyModelType(), actualPolicyModel.getVersion()))
+ .get());
+ assertThat(actualPolicyModel.getPolicyModelType()).isEqualTo(policyModel.getPolicyModelType());
+ assertThat(actualPolicyModel.getCreatedBy()).isEqualTo("");
+ assertThat(actualPolicyModel.getCreatedDate()).isNotNull();
+ assertThat(actualPolicyModel.getPolicyAcronym()).isEqualTo(policyModel.getPolicyAcronym());
+ assertThat(actualPolicyModel.getPolicyModelTosca()).isEqualTo(policyModel.getPolicyModelTosca());
+ assertThat(actualPolicyModel.getPolicyVariant()).isEqualTo(policyModel.getPolicyVariant());
+ assertThat(actualPolicyModel.getUpdatedBy()).isEqualTo("");
+ assertThat(actualPolicyModel.getUpdatedDate()).isNotNull();
+ assertThat(actualPolicyModel.getVersion()).isEqualTo(policyModel.getVersion());
+
+ assertThat(policyModelsService.getPolicyModel(POLICY_MODEL_TYPE_1, POLICY_MODEL_TYPE_1_VERSION_1))
+ .isEqualToIgnoringGivenFields(policyModel, "createdDate", "updatedDate", "createdBy", "updatedBy");
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnAllPolicyModelTypes() {
+ // given
+ PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_1, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel1);
+ PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+ List<String> policyModelTypesList = policyModelsService.getAllPolicyModelTypes();
+
+ assertThat(policyModelTypesList).containsOnly(policyModel1.getPolicyModelType(),
+ policyModel2.getPolicyModelType());
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnAllPolicyModels() {
+ PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_1, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel1);
+ PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+
+ assertThat(policyModelsService.getAllPolicyModels()).containsOnly(policyModel1, policyModel2);
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnAllModelsByType() {
+ PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_1, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel1);
+ PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+
+ assertThat(policyModelsService.getAllPolicyModelsByType(POLICY_MODEL_TYPE_2)).containsOnly(policyModel1,
+ policyModel2);
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnSortedSet() {
+ PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_1, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel1);
+ PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
+ "VARIANT", "user");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+
+ SortedSet<PolicyModel> sortedSet = new TreeSet<>();
+ policyModelsService.getAllPolicyModels().forEach(sortedSet::add);
+ assertThat(sortedSet).containsExactly(policyModel2, policyModel1);
+ }
+}
diff --git a/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java b/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java
new file mode 100644
index 00000000..1fb5922f
--- /dev/null
+++ b/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.util;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Test;
+
+public class SemanticVersioningTest {
+
+ @Test
+ public void compareTest() {
+ assertThat(SemanticVersioning.compare("1.0.0", "2.0.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("1.5.0", "2.0.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("1.5.0", "2.1.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("1.5.3", "2.0.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("2.5.3", "2.6.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("2.5", "2.5.1")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("2.5.0", "2.5.1")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("2.5.0.0", "2.5.1")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("2.5.1.0", "2.5.1")).isEqualTo(1);
+
+ assertThat(SemanticVersioning.compare("2.0.0", "1.0.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.0.0", "1.5.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.1.0", "1.5.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.0.0", "1.5.3")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.6.0", "2.5.3")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.5.1", "2.5")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.5.1", "2.5.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("2.5.1", "2.5.0.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("1", "1.2.3.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("1.2", "1")).isEqualTo(1);
+ }
+
+ @Test
+ public void compareEqualsTest() {
+ assertThat(SemanticVersioning.compare("1.0.0", "1.0.0")).isEqualTo(0);
+ assertThat(SemanticVersioning.compare("1.0.0.0", "1.0.0")).isEqualTo(1);
+ assertThat(SemanticVersioning.compare("1.2.3", "1.2.3")).isEqualTo(0);
+ assertThat(SemanticVersioning.compare("1.2.3", "1.2.3.0")).isEqualTo(-1);
+
+ }
+
+ @Test
+ public void compareNullTest() {
+ assertThat(SemanticVersioning.compare(null, null)).isEqualTo(0);
+ assertThat(SemanticVersioning.compare(null, "1.0")).isEqualTo(-1);
+ assertThat(SemanticVersioning.compare("1.0", null)).isEqualTo(1);
+ }
+}