diff options
47 files changed, 3749 insertions, 3178 deletions
@@ -101,7 +101,7 @@ If the sdcAddress is not specified or not available (connection failure) the mes A [docker-compose example file](extra/docker/clamp/docker-compose.yml) can be found under the [extra/docker/clamp/ folder](extra/docker/). -Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a prepopullated database and a clamp instance available on [http://localhost:8080/designer/index.html](http://localhost:8080/designer/index.html). +Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a prepopullated database and a clamp instance available on [https://localhost:3000](https://localhost:3000). ### Logs diff --git a/docs/images/user-guide/clamp-cds-operation.png b/docs/images/user-guide/clamp-cds-operation.png Binary files differnew file mode 100755 index 000000000..edc4c63aa --- /dev/null +++ b/docs/images/user-guide/clamp-cds-operation.png diff --git a/docs/images/user-guide/create-loop.png b/docs/images/user-guide/create-loop.png Binary files differindex 20b9f05d0..40cdb4c39 100644 --- a/docs/images/user-guide/create-loop.png +++ b/docs/images/user-guide/create-loop.png diff --git a/docs/images/user-guide/loop-menu.png b/docs/images/user-guide/loop-menu.png Binary files differindex 658359e02..b6056349d 100644 --- a/docs/images/user-guide/loop-menu.png +++ b/docs/images/user-guide/loop-menu.png diff --git a/docs/images/user-guide/open-menu-prop.png b/docs/images/user-guide/open-menu-prop.png Binary files differindex c07b2256a..046e2a3d3 100755 --- a/docs/images/user-guide/open-menu-prop.png +++ b/docs/images/user-guide/open-menu-prop.png diff --git a/docs/index.rst b/docs/index.rst index f6dec277c..31da7f9c8 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -95,7 +95,7 @@ Installation ------------ A [docker-compose example file](extra/docker/clamp/docker-compose.yml) can be found under the [extra/docker/clamp/ folder](extra/docker/). -Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a pre-populated database and a CLAMP instance available on [http://localhost:8080/designer/index.html](http://localhost:8080/designer/index.html). +Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a pre-populated database and a CLAMP instance available on [https://localhost:3000](https://localhost:3000). Configuration ------------- @@ -178,7 +178,7 @@ If the sdcAddress is not specified or not available (connection failure) the mes Administration -------------- -A user can access CLAMP UI at the following URL : https://localhost:443/designer/index.html. +A user can access CLAMP UI at the following URL : https://localhost:3000. (in this URL 'localhost' must be replaced by the actual host where CLAMP has been installed if it is not your current localhost) For OOM, the URL is https://<host-ip>:30258 diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 15329f99d..25b09a700 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -1,16 +1,16 @@ { "swagger" : "2.0", "info" : { - "version" : "5.0.5-SNAPSHOT", + "version" : "5.1.0-SNAPSHOT", "title" : "Clamp Rest API" }, - "host" : "localhost:40065", + "host" : "localhost:37033", "basePath" : "/restservices/clds/", "schemes" : [ "http" ], "paths" : { "/v2/clampInformation" : { "get" : { - "operationId" : "route74", + "operationId" : "route112", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -20,13 +20,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route74" + "x-camelContextId" : "camel-3", + "x-routeId" : "route112" } }, "/v2/dictionary" : { "get" : { - "operationId" : "route58", + "operationId" : "route96", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -36,11 +36,11 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route58" + "x-camelContextId" : "camel-3", + "x-routeId" : "route96" }, "put" : { - "operationId" : "route61", + "operationId" : "route99", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -59,13 +59,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route61" + "x-camelContextId" : "camel-3", + "x-routeId" : "route99" } }, "/v2/dictionary/{dictionaryName}" : { "get" : { - "operationId" : "route60", + "operationId" : "route98", "produces" : [ "application/json" ], "parameters" : [ { "name" : "dictionaryName", @@ -81,13 +81,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route60" + "x-camelContextId" : "camel-3", + "x-routeId" : "route98" } }, "/v2/dictionary/{name}" : { "put" : { - "operationId" : "route62", + "operationId" : "route100", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -111,11 +111,11 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route62" + "x-camelContextId" : "camel-3", + "x-routeId" : "route100" }, "delete" : { - "operationId" : "route63", + "operationId" : "route101", "produces" : [ "application/json" ], "parameters" : [ { "name" : "name", @@ -126,13 +126,13 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route63" + "x-camelContextId" : "camel-3", + "x-routeId" : "route101" } }, "/v2/dictionary/{name}/elements/{shortName}" : { "delete" : { - "operationId" : "route64", + "operationId" : "route102", "produces" : [ "application/json" ], "parameters" : [ { "name" : "name", @@ -148,13 +148,13 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route64" + "x-camelContextId" : "camel-3", + "x-routeId" : "route102" } }, "/v2/dictionary/secondary/names" : { "get" : { - "operationId" : "route59", + "operationId" : "route97", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -167,13 +167,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route59" + "x-camelContextId" : "camel-3", + "x-routeId" : "route97" } }, "/v2/loop/{loopName}" : { "get" : { - "operationId" : "route41", + "operationId" : "route79", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -189,13 +189,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route41" + "x-camelContextId" : "camel-3", + "x-routeId" : "route79" } }, "/v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}" : { "put" : { - "operationId" : "route55", + "operationId" : "route93", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -221,13 +221,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route55" + "x-camelContextId" : "camel-3", + "x-routeId" : "route93" } }, "/v2/loop/create/{loopName}?templateName={templateName}" : { "post" : { - "operationId" : "route57", + "operationId" : "route95", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -244,13 +244,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route57" + "x-camelContextId" : "camel-3", + "x-routeId" : "route95" } }, "/v2/loop/delete/{loopName}" : { "put" : { - "operationId" : "route53", + "operationId" : "route91", "parameters" : [ { "name" : "loopName", "in" : "path", @@ -260,13 +260,13 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route53" + "x-camelContextId" : "camel-3", + "x-routeId" : "route91" } }, "/v2/loop/deploy/{loopName}" : { "put" : { - "operationId" : "route46", + "operationId" : "route84", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -282,13 +282,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route46" + "x-camelContextId" : "camel-3", + "x-routeId" : "route84" } }, "/v2/loop/getAllNames" : { "get" : { - "operationId" : "route40", + "operationId" : "route78", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -301,13 +301,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route40" + "x-camelContextId" : "camel-3", + "x-routeId" : "route78" } }, "/v2/loop/getstatus/{loopName}" : { "get" : { - "operationId" : "route54", + "operationId" : "route92", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -323,13 +323,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route54" + "x-camelContextId" : "camel-3", + "x-routeId" : "route92" } }, "/v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}" : { "put" : { - "operationId" : "route47", + "operationId" : "route85", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -350,13 +350,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route47" + "x-camelContextId" : "camel-3", + "x-routeId" : "route85" } }, "/v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}" : { "put" : { - "operationId" : "route48", + "operationId" : "route86", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -377,13 +377,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route48" + "x-camelContextId" : "camel-3", + "x-routeId" : "route86" } }, "/v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}" : { "put" : { - "operationId" : "route56", + "operationId" : "route94", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -414,13 +414,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route56" + "x-camelContextId" : "camel-3", + "x-routeId" : "route94" } }, "/v2/loop/restart/{loopName}" : { "put" : { - "operationId" : "route51", + "operationId" : "route89", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -436,13 +436,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route51" + "x-camelContextId" : "camel-3", + "x-routeId" : "route89" } }, "/v2/loop/stop/{loopName}" : { "put" : { - "operationId" : "route50", + "operationId" : "route88", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -458,13 +458,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route50" + "x-camelContextId" : "camel-3", + "x-routeId" : "route88" } }, "/v2/loop/submit/{loopName}" : { "put" : { - "operationId" : "route52", + "operationId" : "route90", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -480,13 +480,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route52" + "x-camelContextId" : "camel-3", + "x-routeId" : "route90" } }, "/v2/loop/svgRepresentation/{loopName}" : { "get" : { - "operationId" : "route42", + "operationId" : "route80", "produces" : [ "application/xml" ], "parameters" : [ { "name" : "loopName", @@ -502,13 +502,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route42" + "x-camelContextId" : "camel-3", + "x-routeId" : "route80" } }, "/v2/loop/undeploy/{loopName}" : { "put" : { - "operationId" : "route49", + "operationId" : "route87", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -524,13 +524,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route49" + "x-camelContextId" : "camel-3", + "x-routeId" : "route87" } }, "/v2/loop/updateGlobalProperties/{loopName}" : { "post" : { - "operationId" : "route43", + "operationId" : "route81", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -554,13 +554,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route43" + "x-camelContextId" : "camel-3", + "x-routeId" : "route81" } }, "/v2/loop/updateMicroservicePolicy/{loopName}" : { "post" : { - "operationId" : "route45", + "operationId" : "route83", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -584,13 +584,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route45" + "x-camelContextId" : "camel-3", + "x-routeId" : "route83" } }, "/v2/loop/updateOperationalPolicies/{loopName}" : { "post" : { - "operationId" : "route44", + "operationId" : "route82", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -614,13 +614,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route44" + "x-camelContextId" : "camel-3", + "x-routeId" : "route82" } }, "/v2/policyToscaModels" : { "get" : { - "operationId" : "route65", + "operationId" : "route103", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -630,11 +630,11 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route65" + "x-camelContextId" : "camel-3", + "x-routeId" : "route103" }, "post" : { - "operationId" : "route68", + "operationId" : "route106", "consumes" : [ "plain/text" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -653,13 +653,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route68" + "x-camelContextId" : "camel-3", + "x-routeId" : "route106" } }, "/v2/policyToscaModels/{policyModelType}/{policyModelVersion}" : { "get" : { - "operationId" : "route66", + "operationId" : "route104", "produces" : [ "application/json" ], "parameters" : [ { "name" : "policyModelType", @@ -680,11 +680,11 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route66" + "x-camelContextId" : "camel-3", + "x-routeId" : "route104" }, "put" : { - "operationId" : "route69", + "operationId" : "route107", "consumes" : [ "plain/text" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -713,13 +713,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route69" + "x-camelContextId" : "camel-3", + "x-routeId" : "route107" } }, "/v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}" : { "get" : { - "operationId" : "route67", + "operationId" : "route105", "produces" : [ "application/json" ], "parameters" : [ { "name" : "policyModelType", @@ -740,13 +740,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route67" + "x-camelContextId" : "camel-3", + "x-routeId" : "route105" } }, "/v2/templates" : { "get" : { - "operationId" : "route70", + "operationId" : "route108", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -756,13 +756,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route70" + "x-camelContextId" : "camel-3", + "x-routeId" : "route108" } }, "/v2/templates/{templateName}" : { "get" : { - "operationId" : "route71", + "operationId" : "route109", "produces" : [ "application/json" ], "parameters" : [ { "name" : "templateName", @@ -778,13 +778,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route71" + "x-camelContextId" : "camel-3", + "x-routeId" : "route109" } }, "/v2/templates/{templateName}/svgRepresentation" : { "get" : { - "operationId" : "route73", + "operationId" : "route111", "produces" : [ "application/xml" ], "parameters" : [ { "name" : "templateName", @@ -800,13 +800,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route73" + "x-camelContextId" : "camel-3", + "x-routeId" : "route111" } }, "/v2/templates/names" : { "get" : { - "operationId" : "route72", + "operationId" : "route110", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -819,13 +819,13 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route72" + "x-camelContextId" : "camel-3", + "x-routeId" : "route110" } }, "/v1/healthcheck" : { "get" : { - "operationId" : "route75", + "operationId" : "route113", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -835,19 +835,19 @@ } } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route75" + "x-camelContextId" : "camel-3", + "x-routeId" : "route113" } }, "/v1/user/getUser" : { "get" : { - "operationId" : "route76", + "operationId" : "route114", "produces" : [ "text/plain" ], "responses" : { "200" : { } }, - "x-camelContextId" : "camel-2", - "x-routeId" : "route76" + "x-camelContextId" : "camel-3", + "x-routeId" : "route114" } } }, @@ -1032,26 +1032,14 @@ "JsonPrimitive" : { "type" : "object", "properties" : { - "boolean" : { - "type" : "boolean" - }, "asBoolean" : { "type" : "boolean" }, "number" : { "type" : "boolean" }, - "asLong" : { - "type" : "integer", - "format" : "int64" - }, - "asInt" : { - "type" : "integer", - "format" : "int32" - }, - "asByte" : { - "type" : "string", - "format" : "byte" + "asString" : { + "type" : "string" }, "asCharacter" : { "type" : "string" @@ -1069,9 +1057,6 @@ "asNumber" : { "$ref" : "#/definitions/Number" }, - "asString" : { - "type" : "string" - }, "asDouble" : { "type" : "number", "format" : "double" @@ -1080,32 +1065,47 @@ "type" : "number", "format" : "float" }, - "string" : { - "type" : "boolean" + "asLong" : { + "type" : "integer", + "format" : "int64" }, - "jsonObject" : { - "type" : "boolean" + "asInt" : { + "type" : "integer", + "format" : "int32" }, - "jsonPrimitive" : { - "type" : "boolean" + "asByte" : { + "type" : "string", + "format" : "byte" }, - "jsonNull" : { + "boolean" : { "type" : "boolean" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" + "string" : { + "type" : "boolean" }, "asJsonArray" : { "$ref" : "#/definitions/JsonArray" }, + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" + }, "jsonArray" : { "type" : "boolean" }, + "asJsonNull" : { + "$ref" : "#/definitions/JsonNull" + }, + "jsonPrimitive" : { + "type" : "boolean" + }, + "jsonNull" : { + "type" : "boolean" + }, "asJsonPrimitive" : { "$ref" : "#/definitions/JsonPrimitive" }, - "asJsonNull" : { - "$ref" : "#/definitions/JsonNull" + "jsonObject" : { + "type" : "boolean" } } }, @@ -1187,17 +1187,14 @@ "asBoolean" : { "type" : "boolean" }, - "asLong" : { - "type" : "integer", - "format" : "int64" + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" }, - "asInt" : { - "type" : "integer", - "format" : "int32" + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" }, - "asByte" : { - "type" : "string", - "format" : "byte" + "asString" : { + "type" : "string" }, "asCharacter" : { "type" : "string" @@ -1212,36 +1209,24 @@ "type" : "integer", "format" : "int32" }, - "jsonObject" : { + "jsonArray" : { "type" : "boolean" }, + "asJsonNull" : { + "$ref" : "#/definitions/JsonNull" + }, + "asNumber" : { + "$ref" : "#/definitions/Number" + }, "jsonPrimitive" : { "type" : "boolean" }, "jsonNull" : { "type" : "boolean" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" - }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" - }, - "jsonArray" : { - "type" : "boolean" - }, "asJsonPrimitive" : { "$ref" : "#/definitions/JsonPrimitive" }, - "asJsonNull" : { - "$ref" : "#/definitions/JsonNull" - }, - "asNumber" : { - "$ref" : "#/definitions/Number" - }, - "asString" : { - "type" : "string" - }, "asDouble" : { "type" : "number", "format" : "double" @@ -1249,6 +1234,21 @@ "asFloat" : { "type" : "number", "format" : "float" + }, + "asLong" : { + "type" : "integer", + "format" : "int64" + }, + "asInt" : { + "type" : "integer", + "format" : "int32" + }, + "asByte" : { + "type" : "string", + "format" : "byte" + }, + "jsonObject" : { + "type" : "boolean" } }, "x-className" : { @@ -1388,17 +1388,14 @@ "asBoolean" : { "type" : "boolean" }, - "asLong" : { - "type" : "integer", - "format" : "int64" + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" }, - "asInt" : { - "type" : "integer", - "format" : "int32" + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" }, - "asByte" : { - "type" : "string", - "format" : "byte" + "asString" : { + "type" : "string" }, "asCharacter" : { "type" : "string" @@ -1413,36 +1410,24 @@ "type" : "integer", "format" : "int32" }, - "jsonObject" : { + "jsonArray" : { "type" : "boolean" }, + "asJsonNull" : { + "$ref" : "#/definitions/JsonNull" + }, + "asNumber" : { + "$ref" : "#/definitions/Number" + }, "jsonPrimitive" : { "type" : "boolean" }, "jsonNull" : { "type" : "boolean" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" - }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" - }, - "jsonArray" : { - "type" : "boolean" - }, "asJsonPrimitive" : { "$ref" : "#/definitions/JsonPrimitive" }, - "asJsonNull" : { - "$ref" : "#/definitions/JsonNull" - }, - "asNumber" : { - "$ref" : "#/definitions/Number" - }, - "asString" : { - "type" : "string" - }, "asDouble" : { "type" : "number", "format" : "double" @@ -1450,14 +1435,6 @@ "asFloat" : { "type" : "number", "format" : "float" - } - } - }, - "JsonArray" : { - "type" : "object", - "properties" : { - "asBoolean" : { - "type" : "boolean" }, "asLong" : { "type" : "integer", @@ -1471,6 +1448,20 @@ "type" : "string", "format" : "byte" }, + "jsonObject" : { + "type" : "boolean" + } + } + }, + "JsonArray" : { + "type" : "object", + "properties" : { + "asBoolean" : { + "type" : "boolean" + }, + "asString" : { + "type" : "string" + }, "asCharacter" : { "type" : "string" }, @@ -1487,9 +1478,6 @@ "asNumber" : { "$ref" : "#/definitions/Number" }, - "asString" : { - "type" : "string" - }, "asDouble" : { "type" : "number", "format" : "double" @@ -1498,29 +1486,41 @@ "type" : "number", "format" : "float" }, - "jsonObject" : { - "type" : "boolean" - }, - "jsonPrimitive" : { - "type" : "boolean" + "asLong" : { + "type" : "integer", + "format" : "int64" }, - "jsonNull" : { - "type" : "boolean" + "asInt" : { + "type" : "integer", + "format" : "int32" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" + "asByte" : { + "type" : "string", + "format" : "byte" }, "asJsonArray" : { "$ref" : "#/definitions/JsonArray" }, + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" + }, "jsonArray" : { "type" : "boolean" }, + "asJsonNull" : { + "$ref" : "#/definitions/JsonNull" + }, + "jsonPrimitive" : { + "type" : "boolean" + }, + "jsonNull" : { + "type" : "boolean" + }, "asJsonPrimitive" : { "$ref" : "#/definitions/JsonPrimitive" }, - "asJsonNull" : { - "$ref" : "#/definitions/JsonNull" + "jsonObject" : { + "type" : "boolean" } }, "x-className" : { diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf index d4c452aa9..e5e2bb04e 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:20200423032955+02'00') -/ModDate (D:20200423032955+02'00') +/CreationDate (D:20200519123507+02'00') +/ModDate (D:20200519123507+02'00') >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R /Names 22 0 R -/Outlines 704 0 R -/PageLabels 878 0 R +/Outlines 703 0 R +/PageLabels 877 0 R /PageMode /UseOutlines /OpenAction [7 0 R /FitH 793.0] /ViewerPreferences << /DisplayDocTitle true @@ -23,7 +23,7 @@ endobj 3 0 obj << /Type /Pages /Count 39 -/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 98 0 R 110 0 R 124 0 R 134 0 R 144 0 R 159 0 R 171 0 R 187 0 R 200 0 R 214 0 R 224 0 R 237 0 R 251 0 R 257 0 R 264 0 R 270 0 R 277 0 R 283 0 R 291 0 R 298 0 R 306 0 R 314 0 R 320 0 R 327 0 R 336 0 R 344 0 R 352 0 R] +/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 98 0 R 110 0 R 123 0 R 133 0 R 144 0 R 160 0 R 172 0 R 186 0 R 199 0 R 213 0 R 225 0 R 238 0 R 251 0 R 257 0 R 264 0 R 270 0 R 277 0 R 283 0 R 291 0 R 298 0 R 306 0 R 314 0 R 320 0 R 327 0 R 336 0 R 344 0 R 352 0 R] >> endobj 4 0 obj @@ -80,11 +80,11 @@ endobj << /Type /Font /BaseFont /AAAAAA+NotoSerif /Subtype /TrueType -/FontDescriptor 880 0 R +/FontDescriptor 879 0 R /FirstChar 32 /LastChar 255 -/Widths 882 0 R -/ToUnicode 881 0 R +/Widths 881 0 R +/ToUnicode 880 0 R >> endobj 9 0 obj @@ -1559,7 +1559,7 @@ endobj /F1.0 8 0 R >> >> -/Annots [359 0 R 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 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R] +/Annots [358 0 R 359 0 R 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 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R] >> endobj 11 0 obj @@ -3062,7 +3062,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 506 0 R] +/Annots [430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 505 0 R] >> endobj 13 0 obj @@ -4576,7 +4576,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [505 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R] +/Annots [504 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R] >> endobj 15 0 obj @@ -6119,7 +6119,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R] +/Annots [580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R] >> endobj 17 0 obj @@ -7062,7 +7062,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R] +/Annots [656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R] >> endobj 19 0 obj @@ -7111,7 +7111,7 @@ ET BT 85.136384765625 660.036 Td /F1.0 10.5 Tf -[<203a20352e302e352d534e415053484f> 20.01953125 <54>] TJ +[<203a20352e312e302d534e415053484f> 20.01953125 <54>] TJ ET 0.000 0.000 0.000 SCN @@ -7144,7 +7144,7 @@ ET BT 71.30850000000001 592.176 Td /F1.0 10.5 Tf -<203a206c6f63616c686f73743a3430303635> Tj +<203a206c6f63616c686f73743a3337303333> Tj ET 0.000 0.000 0.000 SCN @@ -7245,7 +7245,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> >> @@ -7259,18 +7259,18 @@ endobj >> endobj 23 0 obj -<< /Kids [56 0 R 268 0 R 330 0 R 155 0 R 230 0 R 90 0 R 152 0 R 220 0 R 57 0 R 184 0 R 247 0 R 116 0 R 180 0 R 84 0 R 356 0 R] +<< /Kids [56 0 R 268 0 R 330 0 R 156 0 R 231 0 R 90 0 R 153 0 R 220 0 R 57 0 R 150 0 R 218 0 R 84 0 R 222 0 R 140 0 R] >> endobj 24 0 obj << /Type /Font /BaseFont /AAAAAB+NotoSerif-Bold /Subtype /TrueType -/FontDescriptor 884 0 R +/FontDescriptor 883 0 R /FirstChar 32 /LastChar 255 -/Widths 886 0 R -/ToUnicode 885 0 R +/Widths 885 0 R +/ToUnicode 884 0 R >> endobj 25 0 obj @@ -7280,11 +7280,11 @@ endobj << /Type /Font /BaseFont /AAAAAC+NotoSerif-Italic /Subtype /TrueType -/FontDescriptor 888 0 R +/FontDescriptor 887 0 R /FirstChar 32 /LastChar 255 -/Widths 890 0 R -/ToUnicode 889 0 R +/Widths 889 0 R +/ToUnicode 888 0 R >> endobj 27 0 obj @@ -8184,7 +8184,7 @@ endobj /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [33 0 R 41 0 R] @@ -8214,11 +8214,11 @@ endobj << /Type /Font /BaseFont /AAAAAD+mplus1mn-regular /Subtype /TrueType -/FontDescriptor 892 0 R +/FontDescriptor 891 0 R /FirstChar 32 /LastChar 255 -/Widths 894 0 R -/ToUnicode 893 0 R +/Widths 893 0 R +/ToUnicode 892 0 R >> endobj 36 0 obj @@ -9462,7 +9462,7 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [47 0 R 51 0 R 53 0 R] @@ -9515,12 +9515,12 @@ endobj endobj 56 0 obj << /Limits [(_clampinformation) (_consumes_8)] -/Names [(_clampinformation) 259 0 R (_cldshealthcheck) 260 0 R (_consumes) 54 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 177 0 R (_consumes_5) 188 0 R (_consumes_6) 195 0 R (_consumes_7) 208 0 R (_consumes_8) 233 0 R] +/Names [(_clampinformation) 259 0 R (_cldshealthcheck) 260 0 R (_consumes) 54 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 178 0 R (_consumes_5) 187 0 R (_consumes_6) 194 0 R (_consumes_7) 207 0 R (_consumes_8) 234 0 R] >> endobj 57 0 obj << /Limits [(_responses_10) (_responses_19)] -/Names [(_responses_10) 83 0 R (_responses_11) 91 0 R (_responses_12) 96 0 R (_responses_13) 104 0 R (_responses_14) 107 0 R (_responses_15) 113 0 R (_responses_16) 118 0 R (_responses_17) 125 0 R (_responses_18) 130 0 R (_responses_19) 137 0 R] +/Names [(_responses_10) 83 0 R (_responses_11) 91 0 R (_responses_12) 96 0 R (_responses_13) 104 0 R (_responses_14) 107 0 R (_responses_15) 113 0 R (_responses_16) 117 0 R (_responses_17) 124 0 R (_responses_18) 129 0 R (_responses_19) 136 0 R] >> endobj 58 0 obj @@ -10875,7 +10875,7 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [66 0 R 70 0 R 72 0 R] @@ -12095,7 +12095,7 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> >> @@ -12125,8 +12125,8 @@ endobj [75 0 R /XYZ 0 198.9600000000004 null] endobj 84 0 obj -<< /Limits [(_route59) (_route68)] -/Names [(_route59) 58 0 R (_route60) 63 0 R (_route61) 49 0 R (_route62) 68 0 R (_route63) 77 0 R (_route64) 81 0 R (_route65) 210 0 R (_route66) 221 0 R (_route67) 216 0 R (_route68) 204 0 R] +<< /Limits [(_route101) (_route78)] +/Names [(_route101) 77 0 R (_route102) 81 0 R (_route103) 209 0 R (_route104) 221 0 R (_route105) 215 0 R (_route106) 203 0 R (_route107) 229 0 R (_route108) 236 0 R (_route109) 245 0 R (_route110) 242 0 R (_route111) 252 0 R (_route112) 39 0 R (_route113) 31 0 R (_route114) 36 0 R (_route78) 112 0 R] >> endobj 85 0 obj @@ -13327,7 +13327,7 @@ endobj /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [92 0 R] @@ -13341,7 +13341,7 @@ endobj endobj 90 0 obj << /Limits [(_policymodel) (_produces_18)] -/Names [(_policymodel) 350 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 120 0 R (_produces_16) 127 0 R (_produces_17) 132 0 R (_produces_18) 139 0 R] +/Names [(_policymodel) 350 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 119 0 R (_produces_16) 126 0 R (_produces_17) 131 0 R (_produces_18) 138 0 R] >> endobj 91 0 obj @@ -14695,7 +14695,7 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [99 0 R 108 0 R] @@ -15729,10 +15729,10 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [119 0 R] +/Annots [118 0 R] >> endobj 111 0 obj @@ -15751,17 +15751,12 @@ endobj [110 0 R /XYZ 0 500.64000000000044 null] endobj 116 0 obj -<< /Limits [(_responses_6) (_route47)] -/Names [(_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_route40) 112 0 R (_route41) 197 0 R (_route42) 161 0 R (_route43) 172 0 R (_route44) 190 0 R (_route45) 179 0 R (_route46) 105 0 R (_route47) 121 0 R] ->> -endobj -117 0 obj [110 0 R /XYZ 0 460.5600000000004 null] endobj -118 0 obj +117 0 obj [110 0 R /XYZ 0 355.44000000000034 null] endobj -119 0 obj +118 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -15769,16 +15764,16 @@ endobj /Type /Annot >> endobj -120 0 obj +119 0 obj [110 0 R /XYZ 0 250.32000000000028 null] endobj -121 0 obj +120 0 obj [110 0 R /XYZ 0 194.04000000000025 null] endobj -122 0 obj +121 0 obj [110 0 R /XYZ 0 97.80000000000024 null] endobj -123 0 obj +122 0 obj << /Length 19092 >> stream @@ -17197,27 +17192,27 @@ Q endstream endobj -124 0 obj +123 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 123 0 R +/Contents 122 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F3.0 26 0 R /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [126 0 R 131 0 R] +/Annots [125 0 R 130 0 R] >> endobj -125 0 obj -[124 0 R /XYZ 0 645.5999999999999 null] +124 0 obj +[123 0 R /XYZ 0 645.5999999999999 null] endobj -126 0 obj +125 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -17225,19 +17220,19 @@ endobj /Type /Annot >> endobj +126 0 obj +[123 0 R /XYZ 0 540.48 null] +endobj 127 0 obj -[124 0 R /XYZ 0 540.48 null] +[123 0 R /XYZ 0 484.20000000000016 null] endobj 128 0 obj -[124 0 R /XYZ 0 484.20000000000016 null] +[123 0 R /XYZ 0 387.96000000000015 null] endobj 129 0 obj -[124 0 R /XYZ 0 387.96000000000015 null] +[123 0 R /XYZ 0 245.28000000000014 null] endobj 130 0 obj -[124 0 R /XYZ 0 245.28000000000014 null] -endobj -131 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -17245,10 +17240,10 @@ endobj /Type /Annot >> endobj -132 0 obj -[124 0 R /XYZ 0 140.1600000000001 null] +131 0 obj +[123 0 R /XYZ 0 140.1600000000001 null] endobj -133 0 obj +132 0 obj << /Length 17251 >> stream @@ -18532,33 +18527,33 @@ Q endstream endobj -134 0 obj +133 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 133 0 R +/Contents 132 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F3.0 26 0 R /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [138 0 R] +/Annots [137 0 R] >> endobj +134 0 obj +[133 0 R /XYZ 0 792.0 null] +endobj 135 0 obj -[134 0 R /XYZ 0 792.0 null] +[133 0 R /XYZ 0 662.1600000000001 null] endobj 136 0 obj -[134 0 R /XYZ 0 662.1600000000001 null] +[133 0 R /XYZ 0 444.3600000000002 null] endobj 137 0 obj -[134 0 R /XYZ 0 444.3600000000002 null] -endobj -138 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -18566,17 +18561,22 @@ endobj /Type /Annot >> endobj +138 0 obj +[133 0 R /XYZ 0 339.2400000000001 null] +endobj 139 0 obj -[134 0 R /XYZ 0 339.2400000000001 null] +[133 0 R /XYZ 0 282.9600000000001 null] endobj 140 0 obj -[134 0 R /XYZ 0 282.9600000000001 null] +<< /Limits [(_route90) (_version_information)] +/Names [(_route90) 154 0 R (_route91) 102 0 R (_route92) 115 0 R (_route93) 88 0 R (_route94) 134 0 R (_route95) 94 0 R (_route96) 43 0 R (_route97) 58 0 R (_route98) 63 0 R (_route99) 49 0 R (_service) 355 0 R (_uri_scheme) 27 0 R (_version_information) 25 0 R] +>> endobj 141 0 obj -[134 0 R /XYZ 0 242.8800000000001 null] +[133 0 R /XYZ 0 242.8800000000001 null] endobj 142 0 obj -[134 0 R /XYZ 0 137.76000000000008 null] +[133 0 R /XYZ 0 137.76000000000008 null] endobj 143 0 obj << /Length 19073 @@ -19999,10 +19999,10 @@ endobj /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [145 0 R 150 0 R 157 0 R] +/Annots [145 0 R 151 0 R 158 0 R] >> endobj 145 0 obj @@ -20026,6 +20026,11 @@ endobj [144 0 R /XYZ 0 481.68000000000046 null] endobj 150 0 obj +<< /Limits [(_responses_2) (_responses_28)] +/Names [(_responses_2) 37 0 R (_responses_20) 142 0 R (_responses_21) 149 0 R (_responses_22) 157 0 R (_responses_23) 164 0 R (_responses_24) 168 0 R (_responses_25) 176 0 R (_responses_26) 183 0 R (_responses_27) 192 0 R (_responses_28) 200 0 R] +>> +endobj +151 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -20033,29 +20038,29 @@ endobj /Type /Annot >> endobj -151 0 obj +152 0 obj [144 0 R /XYZ 0 376.5600000000004 null] endobj -152 0 obj +153 0 obj << /Limits [(_produces_19) (_produces_27)] -/Names [(_produces_19) 146 0 R (_produces_2) 38 0 R (_produces_20) 151 0 R (_produces_21) 160 0 R (_produces_22) 164 0 R (_produces_23) 169 0 R (_produces_24) 178 0 R (_produces_25) 189 0 R (_produces_26) 196 0 R (_produces_27) 203 0 R] +/Names [(_produces_19) 146 0 R (_produces_2) 38 0 R (_produces_20) 152 0 R (_produces_21) 161 0 R (_produces_22) 165 0 R (_produces_23) 170 0 R (_produces_24) 179 0 R (_produces_25) 188 0 R (_produces_26) 195 0 R (_produces_27) 202 0 R] >> endobj -153 0 obj +154 0 obj [144 0 R /XYZ 0 320.28000000000037 null] endobj -154 0 obj +155 0 obj [144 0 R /XYZ 0 280.20000000000033 null] endobj -155 0 obj +156 0 obj << /Limits [(_parameters_15) (_parameters_23)] -/Names [(_parameters_15) 148 0 R (_parameters_16) 154 0 R (_parameters_17) 162 0 R (_parameters_18) 166 0 R (_parameters_19) 173 0 R (_parameters_2) 64 0 R (_parameters_20) 181 0 R (_parameters_21) 191 0 R (_parameters_22) 198 0 R (_parameters_23) 205 0 R] +/Names [(_parameters_15) 148 0 R (_parameters_16) 155 0 R (_parameters_17) 163 0 R (_parameters_18) 167 0 R (_parameters_19) 174 0 R (_parameters_2) 64 0 R (_parameters_20) 181 0 R (_parameters_21) 190 0 R (_parameters_22) 197 0 R (_parameters_23) 204 0 R] >> endobj -156 0 obj +157 0 obj [144 0 R /XYZ 0 175.08000000000033 null] endobj -157 0 obj +158 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -20063,7 +20068,7 @@ endobj /Type /Annot >> endobj -158 0 obj +159 0 obj << /Length 16217 >> stream @@ -21253,48 +21258,48 @@ Q endstream endobj -159 0 obj +160 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 158 0 R +/Contents 159 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [168 0 R] +/Annots [169 0 R] >> endobj -160 0 obj -[159 0 R /XYZ 0 792.0 null] -endobj 161 0 obj -[159 0 R /XYZ 0 702.1200000000001 null] +[160 0 R /XYZ 0 792.0 null] endobj 162 0 obj -[159 0 R /XYZ 0 662.0400000000002 null] +[160 0 R /XYZ 0 702.1200000000001 null] endobj 163 0 obj -[159 0 R /XYZ 0 556.9200000000003 null] +[160 0 R /XYZ 0 662.0400000000002 null] endobj 164 0 obj -[159 0 R /XYZ 0 451.8000000000004 null] +[160 0 R /XYZ 0 556.9200000000003 null] endobj 165 0 obj -[159 0 R /XYZ 0 395.5200000000004 null] +[160 0 R /XYZ 0 451.8000000000004 null] endobj 166 0 obj -[159 0 R /XYZ 0 355.44000000000034 null] +[160 0 R /XYZ 0 395.5200000000004 null] endobj 167 0 obj -[159 0 R /XYZ 0 250.32000000000033 null] +[160 0 R /XYZ 0 355.44000000000034 null] endobj 168 0 obj +[160 0 R /XYZ 0 250.32000000000033 null] +endobj +169 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -21302,10 +21307,10 @@ endobj /Type /Annot >> endobj -169 0 obj -[159 0 R /XYZ 0 145.2000000000003 null] -endobj 170 0 obj +[160 0 R /XYZ 0 145.2000000000003 null] +endobj +171 0 obj << /Length 19644 >> stream @@ -22751,30 +22756,30 @@ Q endstream endobj -171 0 obj +172 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 170 0 R +/Contents 171 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F3.0 26 0 R /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [174 0 R 176 0 R 182 0 R 185 0 R] +/Annots [175 0 R 177 0 R 182 0 R 184 0 R] >> endobj -172 0 obj -[171 0 R /XYZ 0 792.0 null] -endobj 173 0 obj -[171 0 R /XYZ 0 718.32 null] +[172 0 R /XYZ 0 792.0 null] endobj 174 0 obj +[172 0 R /XYZ 0 718.32 null] +endobj +175 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -22782,10 +22787,10 @@ endobj /Type /Annot >> endobj -175 0 obj -[171 0 R /XYZ 0 575.6400000000001 null] -endobj 176 0 obj +[172 0 R /XYZ 0 575.6400000000001 null] +endobj +177 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -22793,22 +22798,17 @@ endobj /Type /Annot >> endobj -177 0 obj -[171 0 R /XYZ 0 470.5200000000002 null] -endobj 178 0 obj -[171 0 R /XYZ 0 414.2400000000002 null] +[172 0 R /XYZ 0 470.5200000000002 null] endobj 179 0 obj -[171 0 R /XYZ 0 357.96000000000015 null] +[172 0 R /XYZ 0 414.2400000000002 null] endobj 180 0 obj -<< /Limits [(_route48) (_route58)] -/Names [(_route48) 128 0 R (_route49) 165 0 R (_route50) 147 0 R (_route51) 140 0 R (_route52) 153 0 R (_route53) 102 0 R (_route54) 115 0 R (_route55) 88 0 R (_route56) 135 0 R (_route57) 94 0 R (_route58) 43 0 R] ->> +[172 0 R /XYZ 0 357.96000000000015 null] endobj 181 0 obj -[171 0 R /XYZ 0 289.8000000000001 null] +[172 0 R /XYZ 0 289.8000000000001 null] endobj 182 0 obj << /Border [0 0 0] @@ -22819,14 +22819,9 @@ endobj >> endobj 183 0 obj -[171 0 R /XYZ 0 147.1200000000001 null] +[172 0 R /XYZ 0 147.1200000000001 null] endobj 184 0 obj -<< /Limits [(_responses_2) (_responses_28)] -/Names [(_responses_2) 37 0 R (_responses_20) 142 0 R (_responses_21) 149 0 R (_responses_22) 156 0 R (_responses_23) 163 0 R (_responses_24) 167 0 R (_responses_25) 175 0 R (_responses_26) 183 0 R (_responses_27) 193 0 R (_responses_28) 201 0 R] ->> -endobj -185 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -22834,7 +22829,7 @@ endobj /Type /Annot >> endobj -186 0 obj +185 0 obj << /Length 15453 >> stream @@ -23957,36 +23952,36 @@ Q endstream endobj -187 0 obj +186 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 186 0 R +/Contents 185 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [192 0 R 194 0 R] +/Annots [191 0 R 193 0 R] >> endobj +187 0 obj +[186 0 R /XYZ 0 792.0 null] +endobj 188 0 obj -[187 0 R /XYZ 0 792.0 null] +[186 0 R /XYZ 0 702.1200000000001 null] endobj 189 0 obj -[187 0 R /XYZ 0 702.1200000000001 null] +[186 0 R /XYZ 0 645.8400000000003 null] endobj 190 0 obj -[187 0 R /XYZ 0 645.8400000000003 null] +[186 0 R /XYZ 0 577.6800000000004 null] endobj 191 0 obj -[187 0 R /XYZ 0 577.6800000000004 null] -endobj -192 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -23994,10 +23989,10 @@ endobj /Type /Annot >> endobj -193 0 obj -[187 0 R /XYZ 0 435.0000000000005 null] +192 0 obj +[186 0 R /XYZ 0 435.0000000000005 null] endobj -194 0 obj +193 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -24005,19 +24000,19 @@ endobj /Type /Annot >> endobj +194 0 obj +[186 0 R /XYZ 0 329.88000000000045 null] +endobj 195 0 obj -[187 0 R /XYZ 0 329.88000000000045 null] +[186 0 R /XYZ 0 273.6000000000004 null] endobj 196 0 obj -[187 0 R /XYZ 0 273.6000000000004 null] +[186 0 R /XYZ 0 217.32000000000042 null] endobj 197 0 obj -[187 0 R /XYZ 0 217.32000000000042 null] +[186 0 R /XYZ 0 177.2400000000004 null] endobj 198 0 obj -[187 0 R /XYZ 0 177.2400000000004 null] -endobj -199 0 obj << /Length 16406 >> stream @@ -25218,27 +25213,27 @@ Q endstream endobj -200 0 obj +199 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 199 0 R +/Contents 198 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [202 0 R 207 0 R 212 0 R] +/Annots [201 0 R 206 0 R 211 0 R] >> endobj -201 0 obj -[200 0 R /XYZ 0 792.0 null] +200 0 obj +[199 0 R /XYZ 0 792.0 null] endobj -202 0 obj +201 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -25246,19 +25241,19 @@ endobj /Type /Annot >> endobj +202 0 obj +[199 0 R /XYZ 0 653.2800000000002 null] +endobj 203 0 obj -[200 0 R /XYZ 0 653.2800000000002 null] +[199 0 R /XYZ 0 597.0000000000003 null] endobj 204 0 obj -[200 0 R /XYZ 0 597.0000000000003 null] +[199 0 R /XYZ 0 556.9200000000004 null] endobj 205 0 obj -[200 0 R /XYZ 0 556.9200000000004 null] +[199 0 R /XYZ 0 451.8000000000006 null] endobj 206 0 obj -[200 0 R /XYZ 0 451.8000000000006 null] -endobj -207 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -25266,19 +25261,19 @@ endobj /Type /Annot >> endobj +207 0 obj +[199 0 R /XYZ 0 346.6800000000005 null] +endobj 208 0 obj -[200 0 R /XYZ 0 346.6800000000005 null] +[199 0 R /XYZ 0 290.4000000000005 null] endobj 209 0 obj -[200 0 R /XYZ 0 290.4000000000005 null] +[199 0 R /XYZ 0 234.12000000000046 null] endobj 210 0 obj -[200 0 R /XYZ 0 234.12000000000046 null] +[199 0 R /XYZ 0 194.04000000000045 null] endobj 211 0 obj -[200 0 R /XYZ 0 194.04000000000045 null] -endobj -212 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -25286,7 +25281,7 @@ endobj /Type /Annot >> endobj -213 0 obj +212 0 obj << /Length 16387 >> stream @@ -26481,49 +26476,59 @@ Q endstream endobj -214 0 obj +213 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 213 0 R +/Contents 212 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> >> endobj +214 0 obj +[213 0 R /XYZ 0 792.0 null] +endobj 215 0 obj -[214 0 R /XYZ 0 792.0 null] +[213 0 R /XYZ 0 702.1200000000001 null] endobj 216 0 obj -[214 0 R /XYZ 0 702.1200000000001 null] +[213 0 R /XYZ 0 605.8800000000002 null] endobj 217 0 obj -[214 0 R /XYZ 0 605.8800000000002 null] +[213 0 R /XYZ 0 463.20000000000033 null] endobj 218 0 obj -[214 0 R /XYZ 0 463.20000000000033 null] +<< /Limits [(_responses_29) (_route100)] +/Names [(_responses_29) 205 0 R (_responses_3) 40 0 R (_responses_30) 210 0 R (_responses_31) 217 0 R (_responses_32) 226 0 R (_responses_33) 232 0 R (_responses_34) 239 0 R (_responses_35) 243 0 R (_responses_36) 247 0 R (_responses_37) 254 0 R (_responses_4) 46 0 R (_responses_5) 52 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_route100) 68 0 R] +>> endobj 219 0 obj -[214 0 R /XYZ 0 358.08000000000027 null] +[213 0 R /XYZ 0 358.08000000000027 null] endobj 220 0 obj << /Limits [(_produces_28) (_responses)] -/Names [(_produces_28) 209 0 R (_produces_29) 215 0 R (_produces_3) 42 0 R (_produces_30) 219 0 R (_produces_31) 227 0 R (_produces_32) 234 0 R (_produces_33) 240 0 R (_produces_34) 243 0 R (_produces_35) 249 0 R (_produces_36) 255 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R] +/Names [(_produces_28) 208 0 R (_produces_29) 214 0 R (_produces_3) 42 0 R (_produces_30) 219 0 R (_produces_31) 228 0 R (_produces_32) 235 0 R (_produces_33) 241 0 R (_produces_34) 244 0 R (_produces_35) 249 0 R (_produces_36) 255 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R] >> endobj 221 0 obj -[214 0 R /XYZ 0 301.80000000000024 null] +[213 0 R /XYZ 0 301.80000000000024 null] endobj 222 0 obj -[214 0 R /XYZ 0 205.56000000000026 null] +<< /Limits [(_route79) (_route89)] +/Names [(_route79) 196 0 R (_route80) 162 0 R (_route81) 173 0 R (_route82) 189 0 R (_route83) 180 0 R (_route84) 105 0 R (_route85) 120 0 R (_route86) 127 0 R (_route87) 166 0 R (_route88) 147 0 R (_route89) 139 0 R] +>> endobj 223 0 obj +[213 0 R /XYZ 0 205.56000000000026 null] +endobj +224 0 obj << /Length 16651 >> stream @@ -27744,27 +27749,27 @@ Q endstream endobj -224 0 obj +225 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 223 0 R +/Contents 224 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [226 0 R 232 0 R] +/Annots [227 0 R 233 0 R] >> endobj -225 0 obj -[224 0 R /XYZ 0 792.0 null] -endobj 226 0 obj +[225 0 R /XYZ 0 792.0 null] +endobj +227 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -27772,24 +27777,24 @@ endobj /Type /Annot >> endobj -227 0 obj -[224 0 R /XYZ 0 653.2800000000002 null] -endobj 228 0 obj -[224 0 R /XYZ 0 597.0000000000003 null] +[225 0 R /XYZ 0 653.2800000000002 null] endobj 229 0 obj -[224 0 R /XYZ 0 500.7600000000004 null] +[225 0 R /XYZ 0 597.0000000000003 null] endobj 230 0 obj -<< /Limits [(_parameters_24) (_paths)] -/Names [(_parameters_24) 217 0 R (_parameters_25) 222 0 R (_parameters_26) 229 0 R (_parameters_27) 245 0 R (_parameters_28) 253 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R] ->> +[225 0 R /XYZ 0 500.7600000000004 null] endobj 231 0 obj -[224 0 R /XYZ 0 320.5200000000004 null] +<< /Limits [(_parameters_24) (_paths)] +/Names [(_parameters_24) 216 0 R (_parameters_25) 223 0 R (_parameters_26) 230 0 R (_parameters_27) 246 0 R (_parameters_28) 253 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R] +>> endobj 232 0 obj +[225 0 R /XYZ 0 320.5200000000004 null] +endobj +233 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -27797,16 +27802,16 @@ endobj /Type /Annot >> endobj -233 0 obj -[224 0 R /XYZ 0 215.40000000000035 null] -endobj 234 0 obj -[224 0 R /XYZ 0 159.12000000000032 null] +[225 0 R /XYZ 0 215.40000000000035 null] endobj 235 0 obj -[224 0 R /XYZ 0 102.84000000000029 null] +[225 0 R /XYZ 0 159.12000000000032 null] endobj 236 0 obj +[225 0 R /XYZ 0 102.84000000000029 null] +endobj +237 0 obj << /Length 16306 >> stream @@ -28999,27 +29004,27 @@ Q endstream endobj -237 0 obj +238 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 236 0 R +/Contents 237 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 24 0 R /F1.0 8 0 R /F4.0 35 0 R /F3.0 26 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [239 0 R 248 0 R] +/Annots [240 0 R 248 0 R] >> endobj -238 0 obj -[237 0 R /XYZ 0 792.0 null] -endobj 239 0 obj +[238 0 R /XYZ 0 792.0 null] +endobj +240 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -29027,31 +29032,26 @@ endobj /Type /Annot >> endobj -240 0 obj -[237 0 R /XYZ 0 653.2800000000002 null] -endobj 241 0 obj -[237 0 R /XYZ 0 597.0000000000003 null] +[238 0 R /XYZ 0 653.2800000000002 null] endobj 242 0 obj -[237 0 R /XYZ 0 556.9200000000004 null] +[238 0 R /XYZ 0 597.0000000000003 null] endobj 243 0 obj -[237 0 R /XYZ 0 451.8000000000005 null] +[238 0 R /XYZ 0 556.9200000000004 null] endobj 244 0 obj -[237 0 R /XYZ 0 395.5200000000005 null] +[238 0 R /XYZ 0 451.8000000000005 null] endobj 245 0 obj -[237 0 R /XYZ 0 355.44000000000045 null] +[238 0 R /XYZ 0 395.5200000000005 null] endobj 246 0 obj -[237 0 R /XYZ 0 250.32000000000045 null] +[238 0 R /XYZ 0 355.44000000000045 null] endobj 247 0 obj -<< /Limits [(_responses_29) (_responses_5)] -/Names [(_responses_29) 206 0 R (_responses_3) 40 0 R (_responses_30) 211 0 R (_responses_31) 218 0 R (_responses_32) 225 0 R (_responses_33) 231 0 R (_responses_34) 238 0 R (_responses_35) 242 0 R (_responses_36) 246 0 R (_responses_37) 254 0 R (_responses_4) 46 0 R (_responses_5) 52 0 R] ->> +[238 0 R /XYZ 0 250.32000000000045 null] endobj 248 0 obj << /Border [0 0 0] @@ -29062,7 +29062,7 @@ endobj >> endobj 249 0 obj -[237 0 R /XYZ 0 145.20000000000041 null] +[238 0 R /XYZ 0 145.20000000000041 null] endobj 250 0 obj << /Length 7900 @@ -29674,7 +29674,7 @@ endobj /F1.0 8 0 R /F4.0 35 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> >> @@ -31022,7 +31022,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [262 0 R] @@ -32627,7 +32627,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [266 0 R] @@ -34233,7 +34233,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [271 0 R 274 0 R 275 0 R] @@ -35941,7 +35941,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [278 0 R 279 0 R 280 0 R] @@ -37662,7 +37662,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [284 0 R 285 0 R 286 0 R 287 0 R 288 0 R] @@ -39490,7 +39490,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [292 0 R 293 0 R 294 0 R 295 0 R 296 0 R] @@ -41236,7 +41236,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [300 0 R 301 0 R 302 0 R 303 0 R 304 0 R] @@ -43022,7 +43022,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [308 0 R 309 0 R 310 0 R 311 0 R 312 0 R] @@ -44771,7 +44771,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [315 0 R 316 0 R 318 0 R] @@ -46413,7 +46413,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [321 0 R 323 0 R 325 0 R] @@ -48038,7 +48038,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [328 0 R 331 0 R 332 0 R 334 0 R] @@ -48057,7 +48057,7 @@ endobj endobj 330 0 obj << /Limits [(_loopelementmodel) (_parameters_14)] -/Names [(_loopelementmodel) 317 0 R (_looplog) 322 0 R (_looptemplate) 324 0 R (_looptemplateloopelementmodel) 329 0 R (_microservicepolicy) 333 0 R (_number) 341 0 R (_operationalpolicy) 342 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 117 0 R (_parameters_11) 122 0 R (_parameters_12) 129 0 R (_parameters_13) 136 0 R (_parameters_14) 141 0 R] +/Names [(_loopelementmodel) 317 0 R (_looplog) 322 0 R (_looptemplate) 324 0 R (_looptemplateloopelementmodel) 329 0 R (_microservicepolicy) 333 0 R (_number) 341 0 R (_operationalpolicy) 342 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 116 0 R (_parameters_11) 121 0 R (_parameters_12) 128 0 R (_parameters_13) 135 0 R (_parameters_14) 141 0 R] >> endobj 331 0 obj @@ -49556,7 +49556,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [337 0 R 338 0 R 339 0 R 340 0 R] @@ -51288,7 +51288,7 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> /Annots [345 0 R 346 0 R 347 0 R 348 0 R 349 0 R] @@ -52671,10 +52671,10 @@ endobj /F3.0 26 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 703 0 R +/XObject << /Stamp1 702 0 R >> >> -/Annots [353 0 R 354 0 R 357 0 R 358 0 R] +/Annots [353 0 R 354 0 R 356 0 R 357 0 R] >> endobj 353 0 obj @@ -52697,11 +52697,6 @@ endobj [352 0 R /XYZ 0 457.8 null] endobj 356 0 obj -<< /Limits [(_route69) (_version_information)] -/Names [(_route69) 228 0 R (_route70) 235 0 R (_route71) 244 0 R (_route72) 241 0 R (_route73) 252 0 R (_route74) 39 0 R (_route75) 31 0 R (_route76) 36 0 R (_service) 355 0 R (_uri_scheme) 27 0 R (_version_information) 25 0 R] ->> -endobj -357 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -52709,7 +52704,7 @@ endobj /Type /Annot >> endobj -358 0 obj +357 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -52717,7 +52712,7 @@ endobj /Type /Annot >> endobj -359 0 obj +358 0 obj << /Border [0 0 0] /Dest (_overview) /Subtype /Link @@ -52725,7 +52720,7 @@ endobj /Type /Annot >> endobj -360 0 obj +359 0 obj << /Border [0 0 0] /Dest (_overview) /Subtype /Link @@ -52733,7 +52728,7 @@ endobj /Type /Annot >> endobj -361 0 obj +360 0 obj << /Border [0 0 0] /Dest (_version_information) /Subtype /Link @@ -52741,7 +52736,7 @@ endobj /Type /Annot >> endobj -362 0 obj +361 0 obj << /Border [0 0 0] /Dest (_version_information) /Subtype /Link @@ -52749,7 +52744,7 @@ endobj /Type /Annot >> endobj -363 0 obj +362 0 obj << /Border [0 0 0] /Dest (_uri_scheme) /Subtype /Link @@ -52757,7 +52752,7 @@ endobj /Type /Annot >> endobj -364 0 obj +363 0 obj << /Border [0 0 0] /Dest (_uri_scheme) /Subtype /Link @@ -52765,7 +52760,7 @@ endobj /Type /Annot >> endobj -365 0 obj +364 0 obj << /Border [0 0 0] /Dest (_paths) /Subtype /Link @@ -52773,7 +52768,7 @@ endobj /Type /Annot >> endobj -366 0 obj +365 0 obj << /Border [0 0 0] /Dest (_paths) /Subtype /Link @@ -52781,23 +52776,23 @@ endobj /Type /Annot >> endobj -367 0 obj +366 0 obj << /Border [0 0 0] -/Dest (_route75) +/Dest (_route113) /Subtype /Link /Rect [60.24000000000001 621.7799999999997 181.64100000000002 636.0599999999998] /Type /Annot >> endobj -368 0 obj +367 0 obj << /Border [0 0 0] -/Dest (_route75) +/Dest (_route113) /Subtype /Link /Rect [557.8905 621.7799999999997 563.76 636.0599999999998] /Type /Annot >> endobj -369 0 obj +368 0 obj << /Border [0 0 0] /Dest (_responses) /Subtype /Link @@ -52805,7 +52800,7 @@ endobj /Type /Annot >> endobj -370 0 obj +369 0 obj << /Border [0 0 0] /Dest (_responses) /Subtype /Link @@ -52813,7 +52808,7 @@ endobj /Type /Annot >> endobj -371 0 obj +370 0 obj << /Border [0 0 0] /Dest (_produces) /Subtype /Link @@ -52821,7 +52816,7 @@ endobj /Type /Annot >> endobj -372 0 obj +371 0 obj << /Border [0 0 0] /Dest (_produces) /Subtype /Link @@ -52829,23 +52824,23 @@ endobj /Type /Annot >> endobj -373 0 obj +372 0 obj << /Border [0 0 0] -/Dest (_route76) +/Dest (_route114) /Subtype /Link /Rect [60.24000000000001 566.3399999999997 183.8775 580.6199999999998] /Type /Annot >> endobj -374 0 obj +373 0 obj << /Border [0 0 0] -/Dest (_route76) +/Dest (_route114) /Subtype /Link /Rect [557.8905 566.3399999999997 563.76 580.6199999999998] /Type /Annot >> endobj -375 0 obj +374 0 obj << /Border [0 0 0] /Dest (_responses_2) /Subtype /Link @@ -52853,7 +52848,7 @@ endobj /Type /Annot >> endobj -376 0 obj +375 0 obj << /Border [0 0 0] /Dest (_responses_2) /Subtype /Link @@ -52861,7 +52856,7 @@ endobj /Type /Annot >> endobj -377 0 obj +376 0 obj << /Border [0 0 0] /Dest (_produces_2) /Subtype /Link @@ -52869,7 +52864,7 @@ endobj /Type /Annot >> endobj -378 0 obj +377 0 obj << /Border [0 0 0] /Dest (_produces_2) /Subtype /Link @@ -52877,23 +52872,23 @@ endobj /Type /Annot >> endobj -379 0 obj +378 0 obj << /Border [0 0 0] -/Dest (_route74) +/Dest (_route112) /Subtype /Link /Rect [60.24000000000001 510.89999999999975 212.98350000000002 525.1799999999997] /Type /Annot >> endobj -380 0 obj +379 0 obj << /Border [0 0 0] -/Dest (_route74) +/Dest (_route112) /Subtype /Link /Rect [557.8905 510.89999999999975 563.76 525.1799999999997] /Type /Annot >> endobj -381 0 obj +380 0 obj << /Border [0 0 0] /Dest (_responses_3) /Subtype /Link @@ -52901,7 +52896,7 @@ endobj /Type /Annot >> endobj -382 0 obj +381 0 obj << /Border [0 0 0] /Dest (_responses_3) /Subtype /Link @@ -52909,7 +52904,7 @@ endobj /Type /Annot >> endobj -383 0 obj +382 0 obj << /Border [0 0 0] /Dest (_produces_3) /Subtype /Link @@ -52917,7 +52912,7 @@ endobj /Type /Annot >> endobj -384 0 obj +383 0 obj << /Border [0 0 0] /Dest (_produces_3) /Subtype /Link @@ -52925,23 +52920,23 @@ endobj /Type /Annot >> endobj -385 0 obj +384 0 obj << /Border [0 0 0] -/Dest (_route58) +/Dest (_route96) /Subtype /Link /Rect [60.24000000000001 455.4599999999997 172.716 469.73999999999967] /Type /Annot >> endobj -386 0 obj +385 0 obj << /Border [0 0 0] -/Dest (_route58) +/Dest (_route96) /Subtype /Link /Rect [557.8905 455.4599999999997 563.76 469.73999999999967] /Type /Annot >> endobj -387 0 obj +386 0 obj << /Border [0 0 0] /Dest (_responses_4) /Subtype /Link @@ -52949,7 +52944,7 @@ endobj /Type /Annot >> endobj -388 0 obj +387 0 obj << /Border [0 0 0] /Dest (_responses_4) /Subtype /Link @@ -52957,7 +52952,7 @@ endobj /Type /Annot >> endobj -389 0 obj +388 0 obj << /Border [0 0 0] /Dest (_produces_4) /Subtype /Link @@ -52965,7 +52960,7 @@ endobj /Type /Annot >> endobj -390 0 obj +389 0 obj << /Border [0 0 0] /Dest (_produces_4) /Subtype /Link @@ -52973,23 +52968,23 @@ endobj /Type /Annot >> endobj -391 0 obj +390 0 obj << /Border [0 0 0] -/Dest (_route61) +/Dest (_route99) /Subtype /Link /Rect [60.24000000000001 400.01999999999964 172.548 414.2999999999996] /Type /Annot >> endobj -392 0 obj +391 0 obj << /Border [0 0 0] -/Dest (_route61) +/Dest (_route99) /Subtype /Link /Rect [557.8905 400.01999999999964 563.76 414.2999999999996] /Type /Annot >> endobj -393 0 obj +392 0 obj << /Border [0 0 0] /Dest (_parameters) /Subtype /Link @@ -52997,7 +52992,7 @@ endobj /Type /Annot >> endobj -394 0 obj +393 0 obj << /Border [0 0 0] /Dest (_parameters) /Subtype /Link @@ -53005,7 +53000,7 @@ endobj /Type /Annot >> endobj -395 0 obj +394 0 obj << /Border [0 0 0] /Dest (_responses_5) /Subtype /Link @@ -53013,7 +53008,7 @@ endobj /Type /Annot >> endobj -396 0 obj +395 0 obj << /Border [0 0 0] /Dest (_responses_5) /Subtype /Link @@ -53021,7 +53016,7 @@ endobj /Type /Annot >> endobj -397 0 obj +396 0 obj << /Border [0 0 0] /Dest (_consumes) /Subtype /Link @@ -53029,7 +53024,7 @@ endobj /Type /Annot >> endobj -398 0 obj +397 0 obj << /Border [0 0 0] /Dest (_consumes) /Subtype /Link @@ -53037,7 +53032,7 @@ endobj /Type /Annot >> endobj -399 0 obj +398 0 obj << /Border [0 0 0] /Dest (_produces_5) /Subtype /Link @@ -53045,7 +53040,7 @@ endobj /Type /Annot >> endobj -400 0 obj +399 0 obj << /Border [0 0 0] /Dest (_produces_5) /Subtype /Link @@ -53053,23 +53048,23 @@ endobj /Type /Annot >> endobj -401 0 obj +400 0 obj << /Border [0 0 0] -/Dest (_route59) +/Dest (_route97) /Subtype /Link /Rect [60.24000000000001 307.61999999999955 263.25750000000005 321.8999999999995] /Type /Annot >> endobj -402 0 obj +401 0 obj << /Border [0 0 0] -/Dest (_route59) +/Dest (_route97) /Subtype /Link /Rect [557.8905 307.61999999999955 563.76 321.8999999999995] /Type /Annot >> endobj -403 0 obj +402 0 obj << /Border [0 0 0] /Dest (_responses_6) /Subtype /Link @@ -53077,7 +53072,7 @@ endobj /Type /Annot >> endobj -404 0 obj +403 0 obj << /Border [0 0 0] /Dest (_responses_6) /Subtype /Link @@ -53085,7 +53080,7 @@ endobj /Type /Annot >> endobj -405 0 obj +404 0 obj << /Border [0 0 0] /Dest (_produces_6) /Subtype /Link @@ -53093,7 +53088,7 @@ endobj /Type /Annot >> endobj -406 0 obj +405 0 obj << /Border [0 0 0] /Dest (_produces_6) /Subtype /Link @@ -53101,23 +53096,23 @@ endobj /Type /Annot >> endobj -407 0 obj +406 0 obj << /Border [0 0 0] -/Dest (_route60) +/Dest (_route98) /Subtype /Link /Rect [60.24000000000001 252.17999999999947 265.76700000000005 266.45999999999947] /Type /Annot >> endobj -408 0 obj +407 0 obj << /Border [0 0 0] -/Dest (_route60) +/Dest (_route98) /Subtype /Link /Rect [557.8905 252.17999999999947 563.76 266.45999999999947] /Type /Annot >> endobj -409 0 obj +408 0 obj << /Border [0 0 0] /Dest (_parameters_2) /Subtype /Link @@ -53125,7 +53120,7 @@ endobj /Type /Annot >> endobj -410 0 obj +409 0 obj << /Border [0 0 0] /Dest (_parameters_2) /Subtype /Link @@ -53133,7 +53128,7 @@ endobj /Type /Annot >> endobj -411 0 obj +410 0 obj << /Border [0 0 0] /Dest (_responses_7) /Subtype /Link @@ -53141,7 +53136,7 @@ endobj /Type /Annot >> endobj -412 0 obj +411 0 obj << /Border [0 0 0] /Dest (_responses_7) /Subtype /Link @@ -53149,7 +53144,7 @@ endobj /Type /Annot >> endobj -413 0 obj +412 0 obj << /Border [0 0 0] /Dest (_produces_7) /Subtype /Link @@ -53157,7 +53152,7 @@ endobj /Type /Annot >> endobj -414 0 obj +413 0 obj << /Border [0 0 0] /Dest (_produces_7) /Subtype /Link @@ -53165,23 +53160,23 @@ endobj /Type /Annot >> endobj -415 0 obj +414 0 obj << /Border [0 0 0] -/Dest (_route62) +/Dest (_route100) /Subtype /Link /Rect [60.24000000000001 178.2599999999995 212.763 192.5399999999995] /Type /Annot >> endobj -416 0 obj +415 0 obj << /Border [0 0 0] -/Dest (_route62) +/Dest (_route100) /Subtype /Link /Rect [557.8905 178.2599999999995 563.76 192.5399999999995] /Type /Annot >> endobj -417 0 obj +416 0 obj << /Border [0 0 0] /Dest (_parameters_3) /Subtype /Link @@ -53189,7 +53184,7 @@ endobj /Type /Annot >> endobj -418 0 obj +417 0 obj << /Border [0 0 0] /Dest (_parameters_3) /Subtype /Link @@ -53197,7 +53192,7 @@ endobj /Type /Annot >> endobj -419 0 obj +418 0 obj << /Border [0 0 0] /Dest (_responses_8) /Subtype /Link @@ -53205,7 +53200,7 @@ endobj /Type /Annot >> endobj -420 0 obj +419 0 obj << /Border [0 0 0] /Dest (_responses_8) /Subtype /Link @@ -53213,7 +53208,7 @@ endobj /Type /Annot >> endobj -421 0 obj +420 0 obj << /Border [0 0 0] /Dest (_consumes_2) /Subtype /Link @@ -53221,7 +53216,7 @@ endobj /Type /Annot >> endobj -422 0 obj +421 0 obj << /Border [0 0 0] /Dest (_consumes_2) /Subtype /Link @@ -53229,7 +53224,7 @@ endobj /Type /Annot >> endobj -423 0 obj +422 0 obj << /Border [0 0 0] /Dest (_produces_8) /Subtype /Link @@ -53237,7 +53232,7 @@ endobj /Type /Annot >> endobj -424 0 obj +423 0 obj << /Border [0 0 0] /Dest (_produces_8) /Subtype /Link @@ -53245,23 +53240,23 @@ endobj /Type /Annot >> endobj -425 0 obj +424 0 obj << /Border [0 0 0] -/Dest (_route63) +/Dest (_route101) /Subtype /Link /Rect [60.24000000000001 85.85999999999956 232.70250000000001 100.13999999999956] /Type /Annot >> endobj -426 0 obj +425 0 obj << /Border [0 0 0] -/Dest (_route63) +/Dest (_route101) /Subtype /Link /Rect [557.8905 85.85999999999956 563.76 100.13999999999956] /Type /Annot >> endobj -427 0 obj +426 0 obj << /Border [0 0 0] /Dest (_parameters_4) /Subtype /Link @@ -53269,7 +53264,7 @@ endobj /Type /Annot >> endobj -428 0 obj +427 0 obj << /Border [0 0 0] /Dest (_parameters_4) /Subtype /Link @@ -53277,7 +53272,7 @@ endobj /Type /Annot >> endobj -429 0 obj +428 0 obj << /Border [0 0 0] /Dest (_responses_9) /Subtype /Link @@ -53285,7 +53280,7 @@ endobj /Type /Annot >> endobj -430 0 obj +429 0 obj << /Border [0 0 0] /Dest (_responses_9) /Subtype /Link @@ -53293,7 +53288,7 @@ endobj /Type /Annot >> endobj -431 0 obj +430 0 obj << /Border [0 0 0] /Dest (_produces_9) /Subtype /Link @@ -53301,7 +53296,7 @@ endobj /Type /Annot >> endobj -432 0 obj +431 0 obj << /Border [0 0 0] /Dest (_produces_9) /Subtype /Link @@ -53309,23 +53304,23 @@ endobj /Type /Annot >> endobj -433 0 obj +432 0 obj << /Border [0 0 0] -/Dest (_route64) +/Dest (_route102) /Subtype /Link /Rect [60.24000000000001 723.2399999999999 354.36600000000004 737.52] /Type /Annot >> endobj -434 0 obj +433 0 obj << /Border [0 0 0] -/Dest (_route64) +/Dest (_route102) /Subtype /Link /Rect [557.8905 723.2399999999999 563.76 737.52] /Type /Annot >> endobj -435 0 obj +434 0 obj << /Border [0 0 0] /Dest (_parameters_5) /Subtype /Link @@ -53333,7 +53328,7 @@ endobj /Type /Annot >> endobj -436 0 obj +435 0 obj << /Border [0 0 0] /Dest (_parameters_5) /Subtype /Link @@ -53341,7 +53336,7 @@ endobj /Type /Annot >> endobj -437 0 obj +436 0 obj << /Border [0 0 0] /Dest (_responses_10) /Subtype /Link @@ -53349,7 +53344,7 @@ endobj /Type /Annot >> endobj -438 0 obj +437 0 obj << /Border [0 0 0] /Dest (_responses_10) /Subtype /Link @@ -53357,7 +53352,7 @@ endobj /Type /Annot >> endobj -439 0 obj +438 0 obj << /Border [0 0 0] /Dest (_produces_10) /Subtype /Link @@ -53365,7 +53360,7 @@ endobj /Type /Annot >> endobj -440 0 obj +439 0 obj << /Border [0 0 0] /Dest (_produces_10) /Subtype /Link @@ -53373,23 +53368,23 @@ endobj /Type /Annot >> endobj -441 0 obj +440 0 obj << /Border [0 0 0] -/Dest (_route55) +/Dest (_route93) /Subtype /Link /Rect [60.24000000000001 649.3199999999998 531.1851796875001 663.5999999999999] /Type /Annot >> endobj -442 0 obj +441 0 obj << /Border [0 0 0] -/Dest (_route55) +/Dest (_route93) /Subtype /Link /Rect [557.8905 649.3199999999998 563.76 663.5999999999999] /Type /Annot >> endobj -443 0 obj +442 0 obj << /Border [0 0 0] /Dest (_parameters_6) /Subtype /Link @@ -53397,7 +53392,7 @@ endobj /Type /Annot >> endobj -444 0 obj +443 0 obj << /Border [0 0 0] /Dest (_parameters_6) /Subtype /Link @@ -53405,7 +53400,7 @@ endobj /Type /Annot >> endobj -445 0 obj +444 0 obj << /Border [0 0 0] /Dest (_responses_11) /Subtype /Link @@ -53413,7 +53408,7 @@ endobj /Type /Annot >> endobj -446 0 obj +445 0 obj << /Border [0 0 0] /Dest (_responses_11) /Subtype /Link @@ -53421,7 +53416,7 @@ endobj /Type /Annot >> endobj -447 0 obj +446 0 obj << /Border [0 0 0] /Dest (_produces_11) /Subtype /Link @@ -53429,7 +53424,7 @@ endobj /Type /Annot >> endobj -448 0 obj +447 0 obj << /Border [0 0 0] /Dest (_produces_11) /Subtype /Link @@ -53437,23 +53432,23 @@ endobj /Type /Annot >> endobj -449 0 obj +448 0 obj << /Border [0 0 0] -/Dest (_route57) +/Dest (_route95) /Subtype /Link /Rect [60.24000000000001 575.3999999999997 418.877794921875 589.6799999999998] /Type /Annot >> endobj -450 0 obj +449 0 obj << /Border [0 0 0] -/Dest (_route57) +/Dest (_route95) /Subtype /Link /Rect [557.8905 575.3999999999997 563.76 589.6799999999998] /Type /Annot >> endobj -451 0 obj +450 0 obj << /Border [0 0 0] /Dest (_parameters_7) /Subtype /Link @@ -53461,7 +53456,7 @@ endobj /Type /Annot >> endobj -452 0 obj +451 0 obj << /Border [0 0 0] /Dest (_parameters_7) /Subtype /Link @@ -53469,7 +53464,7 @@ endobj /Type /Annot >> endobj -453 0 obj +452 0 obj << /Border [0 0 0] /Dest (_responses_12) /Subtype /Link @@ -53477,7 +53472,7 @@ endobj /Type /Annot >> endobj -454 0 obj +453 0 obj << /Border [0 0 0] /Dest (_responses_12) /Subtype /Link @@ -53485,7 +53480,7 @@ endobj /Type /Annot >> endobj -455 0 obj +454 0 obj << /Border [0 0 0] /Dest (_consumes_3) /Subtype /Link @@ -53493,7 +53488,7 @@ endobj /Type /Annot >> endobj -456 0 obj +455 0 obj << /Border [0 0 0] /Dest (_consumes_3) /Subtype /Link @@ -53501,7 +53496,7 @@ endobj /Type /Annot >> endobj -457 0 obj +456 0 obj << /Border [0 0 0] /Dest (_produces_12) /Subtype /Link @@ -53509,7 +53504,7 @@ endobj /Type /Annot >> endobj -458 0 obj +457 0 obj << /Border [0 0 0] /Dest (_produces_12) /Subtype /Link @@ -53517,23 +53512,23 @@ endobj /Type /Annot >> endobj -459 0 obj +458 0 obj << /Border [0 0 0] -/Dest (_route53) +/Dest (_route91) /Subtype /Link /Rect [60.24000000000001 482.9999999999998 245.15550000000002 497.27999999999975] /Type /Annot >> endobj -460 0 obj +459 0 obj << /Border [0 0 0] -/Dest (_route53) +/Dest (_route91) /Subtype /Link /Rect [557.8905 482.9999999999998 563.76 497.27999999999975] /Type /Annot >> endobj -461 0 obj +460 0 obj << /Border [0 0 0] /Dest (_parameters_8) /Subtype /Link @@ -53541,7 +53536,7 @@ endobj /Type /Annot >> endobj -462 0 obj +461 0 obj << /Border [0 0 0] /Dest (_parameters_8) /Subtype /Link @@ -53549,7 +53544,7 @@ endobj /Type /Annot >> endobj -463 0 obj +462 0 obj << /Border [0 0 0] /Dest (_responses_13) /Subtype /Link @@ -53557,7 +53552,7 @@ endobj /Type /Annot >> endobj -464 0 obj +463 0 obj << /Border [0 0 0] /Dest (_responses_13) /Subtype /Link @@ -53565,23 +53560,23 @@ endobj /Type /Annot >> endobj -465 0 obj +464 0 obj << /Border [0 0 0] -/Dest (_route46) +/Dest (_route84) /Subtype /Link /Rect [60.24000000000001 427.5599999999997 248.431294921875 441.8399999999997] /Type /Annot >> endobj -466 0 obj +465 0 obj << /Border [0 0 0] -/Dest (_route46) +/Dest (_route84) /Subtype /Link /Rect [557.8905 427.5599999999997 563.76 441.8399999999997] /Type /Annot >> endobj -467 0 obj +466 0 obj << /Border [0 0 0] /Dest (_parameters_9) /Subtype /Link @@ -53589,7 +53584,7 @@ endobj /Type /Annot >> endobj -468 0 obj +467 0 obj << /Border [0 0 0] /Dest (_parameters_9) /Subtype /Link @@ -53597,7 +53592,7 @@ endobj /Type /Annot >> endobj -469 0 obj +468 0 obj << /Border [0 0 0] /Dest (_responses_14) /Subtype /Link @@ -53605,7 +53600,7 @@ endobj /Type /Annot >> endobj -470 0 obj +469 0 obj << /Border [0 0 0] /Dest (_responses_14) /Subtype /Link @@ -53613,7 +53608,7 @@ endobj /Type /Annot >> endobj -471 0 obj +470 0 obj << /Border [0 0 0] /Dest (_produces_13) /Subtype /Link @@ -53621,7 +53616,7 @@ endobj /Type /Annot >> endobj -472 0 obj +471 0 obj << /Border [0 0 0] /Dest (_produces_13) /Subtype /Link @@ -53629,23 +53624,23 @@ endobj /Type /Annot >> endobj -473 0 obj +472 0 obj << /Border [0 0 0] -/Dest (_route40) +/Dest (_route78) /Subtype /Link /Rect [60.24000000000001 353.63999999999965 214.8735 367.9199999999996] /Type /Annot >> endobj -474 0 obj +473 0 obj << /Border [0 0 0] -/Dest (_route40) +/Dest (_route78) /Subtype /Link /Rect [557.8905 353.63999999999965 563.76 367.9199999999996] /Type /Annot >> endobj -475 0 obj +474 0 obj << /Border [0 0 0] /Dest (_responses_15) /Subtype /Link @@ -53653,7 +53648,7 @@ endobj /Type /Annot >> endobj -476 0 obj +475 0 obj << /Border [0 0 0] /Dest (_responses_15) /Subtype /Link @@ -53661,7 +53656,7 @@ endobj /Type /Annot >> endobj -477 0 obj +476 0 obj << /Border [0 0 0] /Dest (_produces_14) /Subtype /Link @@ -53669,7 +53664,7 @@ endobj /Type /Annot >> endobj -478 0 obj +477 0 obj << /Border [0 0 0] /Dest (_produces_14) /Subtype /Link @@ -53677,23 +53672,23 @@ endobj /Type /Annot >> endobj -479 0 obj +478 0 obj << /Border [0 0 0] -/Dest (_route54) +/Dest (_route92) /Subtype /Link /Rect [60.24000000000001 298.1999999999996 259.467 312.47999999999956] /Type /Annot >> endobj -480 0 obj +479 0 obj << /Border [0 0 0] -/Dest (_route54) +/Dest (_route92) /Subtype /Link /Rect [557.8905 298.1999999999996 563.76 312.47999999999956] /Type /Annot >> endobj -481 0 obj +480 0 obj << /Border [0 0 0] /Dest (_parameters_10) /Subtype /Link @@ -53701,7 +53696,7 @@ endobj /Type /Annot >> endobj -482 0 obj +481 0 obj << /Border [0 0 0] /Dest (_parameters_10) /Subtype /Link @@ -53709,7 +53704,7 @@ endobj /Type /Annot >> endobj -483 0 obj +482 0 obj << /Border [0 0 0] /Dest (_responses_16) /Subtype /Link @@ -53717,7 +53712,7 @@ endobj /Type /Annot >> endobj -484 0 obj +483 0 obj << /Border [0 0 0] /Dest (_responses_16) /Subtype /Link @@ -53725,7 +53720,7 @@ endobj /Type /Annot >> endobj -485 0 obj +484 0 obj << /Border [0 0 0] /Dest (_produces_15) /Subtype /Link @@ -53733,7 +53728,7 @@ endobj /Type /Annot >> endobj -486 0 obj +485 0 obj << /Border [0 0 0] /Dest (_produces_15) /Subtype /Link @@ -53741,23 +53736,23 @@ endobj /Type /Annot >> endobj -487 0 obj +486 0 obj << /Border [0 0 0] -/Dest (_route47) +/Dest (_route85) /Subtype /Link /Rect [60.24000000000001 224.27999999999952 544.9515000000001 238.55999999999952] /Type /Annot >> endobj -488 0 obj +487 0 obj << /Border [0 0 0] -/Dest (_route47) +/Dest (_route85) /Subtype /Link /Rect [557.8905 224.27999999999952 563.76 238.55999999999952] /Type /Annot >> endobj -489 0 obj +488 0 obj << /Border [0 0 0] /Dest (_parameters_11) /Subtype /Link @@ -53765,7 +53760,7 @@ endobj /Type /Annot >> endobj -490 0 obj +489 0 obj << /Border [0 0 0] /Dest (_parameters_11) /Subtype /Link @@ -53773,7 +53768,7 @@ endobj /Type /Annot >> endobj -491 0 obj +490 0 obj << /Border [0 0 0] /Dest (_responses_17) /Subtype /Link @@ -53781,7 +53776,7 @@ endobj /Type /Annot >> endobj -492 0 obj +491 0 obj << /Border [0 0 0] /Dest (_responses_17) /Subtype /Link @@ -53789,7 +53784,7 @@ endobj /Type /Annot >> endobj -493 0 obj +492 0 obj << /Border [0 0 0] /Dest (_produces_16) /Subtype /Link @@ -53797,7 +53792,7 @@ endobj /Type /Annot >> endobj -494 0 obj +493 0 obj << /Border [0 0 0] /Dest (_produces_16) /Subtype /Link @@ -53805,23 +53800,23 @@ endobj /Type /Annot >> endobj -495 0 obj +494 0 obj << /Border [0 0 0] -/Dest (_route48) +/Dest (_route86) /Subtype /Link /Rect [60.24000000000001 150.35999999999956 530.5030898437501 164.63999999999956] /Type /Annot >> endobj -496 0 obj +495 0 obj << /Border [0 0 0] -/Dest (_route48) +/Dest (_route86) /Subtype /Link /Rect [557.8905 150.35999999999956 563.76 164.63999999999956] /Type /Annot >> endobj -497 0 obj +496 0 obj << /Border [0 0 0] /Dest (_parameters_12) /Subtype /Link @@ -53829,7 +53824,7 @@ endobj /Type /Annot >> endobj -498 0 obj +497 0 obj << /Border [0 0 0] /Dest (_parameters_12) /Subtype /Link @@ -53837,7 +53832,7 @@ endobj /Type /Annot >> endobj -499 0 obj +498 0 obj << /Border [0 0 0] /Dest (_responses_18) /Subtype /Link @@ -53845,7 +53840,7 @@ endobj /Type /Annot >> endobj -500 0 obj +499 0 obj << /Border [0 0 0] /Dest (_responses_18) /Subtype /Link @@ -53853,7 +53848,7 @@ endobj /Type /Annot >> endobj -501 0 obj +500 0 obj << /Border [0 0 0] /Dest (_produces_17) /Subtype /Link @@ -53861,7 +53856,7 @@ endobj /Type /Annot >> endobj -502 0 obj +501 0 obj << /Border [0 0 0] /Dest (_produces_17) /Subtype /Link @@ -53869,39 +53864,39 @@ endobj /Type /Annot >> endobj -503 0 obj +502 0 obj << /Border [0 0 0] -/Dest (_route56) +/Dest (_route94) /Subtype /Link /Rect [60.24000000000001 76.4399999999996 106.10400000000001 90.7199999999996] /Type /Annot >> endobj -504 0 obj +503 0 obj << /Border [0 0 0] -/Dest (_route56) +/Dest (_route94) /Subtype /Link /Rect [60.24000000000001 57.959999999999596 553.6761796875 72.2399999999996] /Type /Annot >> endobj -505 0 obj +504 0 obj << /Border [0 0 0] -/Dest (_route56) +/Dest (_route94) /Subtype /Link /Rect [60.24 741.7199999999999 80.26350000000001 756.0] /Type /Annot >> endobj -506 0 obj +505 0 obj << /Border [0 0 0] -/Dest (_route56) +/Dest (_route94) /Subtype /Link /Rect [552.021 76.4399999999996 563.76 90.7199999999996] /Type /Annot >> endobj -507 0 obj +506 0 obj << /Border [0 0 0] /Dest (_parameters_13) /Subtype /Link @@ -53909,7 +53904,7 @@ endobj /Type /Annot >> endobj -508 0 obj +507 0 obj << /Border [0 0 0] /Dest (_parameters_13) /Subtype /Link @@ -53917,7 +53912,7 @@ endobj /Type /Annot >> endobj -509 0 obj +508 0 obj << /Border [0 0 0] /Dest (_responses_19) /Subtype /Link @@ -53925,7 +53920,7 @@ endobj /Type /Annot >> endobj -510 0 obj +509 0 obj << /Border [0 0 0] /Dest (_responses_19) /Subtype /Link @@ -53933,7 +53928,7 @@ endobj /Type /Annot >> endobj -511 0 obj +510 0 obj << /Border [0 0 0] /Dest (_produces_18) /Subtype /Link @@ -53941,7 +53936,7 @@ endobj /Type /Annot >> endobj -512 0 obj +511 0 obj << /Border [0 0 0] /Dest (_produces_18) /Subtype /Link @@ -53949,23 +53944,23 @@ endobj /Type /Annot >> endobj -513 0 obj +512 0 obj << /Border [0 0 0] -/Dest (_route51) +/Dest (_route89) /Subtype /Link /Rect [60.24000000000001 667.7999999999998 248.45250000000001 682.0799999999999] /Type /Annot >> endobj -514 0 obj +513 0 obj << /Border [0 0 0] -/Dest (_route51) +/Dest (_route89) /Subtype /Link /Rect [552.021 667.7999999999998 563.76 682.0799999999999] /Type /Annot >> endobj -515 0 obj +514 0 obj << /Border [0 0 0] /Dest (_parameters_14) /Subtype /Link @@ -53973,7 +53968,7 @@ endobj /Type /Annot >> endobj -516 0 obj +515 0 obj << /Border [0 0 0] /Dest (_parameters_14) /Subtype /Link @@ -53981,7 +53976,7 @@ endobj /Type /Annot >> endobj -517 0 obj +516 0 obj << /Border [0 0 0] /Dest (_responses_20) /Subtype /Link @@ -53989,7 +53984,7 @@ endobj /Type /Annot >> endobj -518 0 obj +517 0 obj << /Border [0 0 0] /Dest (_responses_20) /Subtype /Link @@ -53997,7 +53992,7 @@ endobj /Type /Annot >> endobj -519 0 obj +518 0 obj << /Border [0 0 0] /Dest (_produces_19) /Subtype /Link @@ -54005,7 +54000,7 @@ endobj /Type /Annot >> endobj -520 0 obj +519 0 obj << /Border [0 0 0] /Dest (_produces_19) /Subtype /Link @@ -54013,23 +54008,23 @@ endobj /Type /Annot >> endobj -521 0 obj +520 0 obj << /Border [0 0 0] -/Dest (_route50) +/Dest (_route88) /Subtype /Link /Rect [60.24000000000001 593.8799999999998 235.842 608.1599999999999] /Type /Annot >> endobj -522 0 obj +521 0 obj << /Border [0 0 0] -/Dest (_route50) +/Dest (_route88) /Subtype /Link /Rect [552.021 593.8799999999998 563.76 608.1599999999999] /Type /Annot >> endobj -523 0 obj +522 0 obj << /Border [0 0 0] /Dest (_parameters_15) /Subtype /Link @@ -54037,7 +54032,7 @@ endobj /Type /Annot >> endobj -524 0 obj +523 0 obj << /Border [0 0 0] /Dest (_parameters_15) /Subtype /Link @@ -54045,7 +54040,7 @@ endobj /Type /Annot >> endobj -525 0 obj +524 0 obj << /Border [0 0 0] /Dest (_responses_21) /Subtype /Link @@ -54053,7 +54048,7 @@ endobj /Type /Annot >> endobj -526 0 obj +525 0 obj << /Border [0 0 0] /Dest (_responses_21) /Subtype /Link @@ -54061,7 +54056,7 @@ endobj /Type /Annot >> endobj -527 0 obj +526 0 obj << /Border [0 0 0] /Dest (_produces_20) /Subtype /Link @@ -54069,7 +54064,7 @@ endobj /Type /Annot >> endobj -528 0 obj +527 0 obj << /Border [0 0 0] /Dest (_produces_20) /Subtype /Link @@ -54077,23 +54072,23 @@ endobj /Type /Annot >> endobj -529 0 obj +528 0 obj << /Border [0 0 0] -/Dest (_route52) +/Dest (_route90) /Subtype /Link /Rect [60.24000000000001 519.9599999999998 249.70200000000003 534.2399999999998] /Type /Annot >> endobj -530 0 obj +529 0 obj << /Border [0 0 0] -/Dest (_route52) +/Dest (_route90) /Subtype /Link /Rect [552.021 519.9599999999998 563.76 534.2399999999998] /Type /Annot >> endobj -531 0 obj +530 0 obj << /Border [0 0 0] /Dest (_parameters_16) /Subtype /Link @@ -54101,7 +54096,7 @@ endobj /Type /Annot >> endobj -532 0 obj +531 0 obj << /Border [0 0 0] /Dest (_parameters_16) /Subtype /Link @@ -54109,7 +54104,7 @@ endobj /Type /Annot >> endobj -533 0 obj +532 0 obj << /Border [0 0 0] /Dest (_responses_22) /Subtype /Link @@ -54117,7 +54112,7 @@ endobj /Type /Annot >> endobj -534 0 obj +533 0 obj << /Border [0 0 0] /Dest (_responses_22) /Subtype /Link @@ -54125,7 +54120,7 @@ endobj /Type /Annot >> endobj -535 0 obj +534 0 obj << /Border [0 0 0] /Dest (_produces_21) /Subtype /Link @@ -54133,7 +54128,7 @@ endobj /Type /Annot >> endobj -536 0 obj +535 0 obj << /Border [0 0 0] /Dest (_produces_21) /Subtype /Link @@ -54141,23 +54136,23 @@ endobj /Type /Annot >> endobj -537 0 obj +536 0 obj << /Border [0 0 0] -/Dest (_route42) +/Dest (_route80) /Subtype /Link /Rect [60.24000000000001 446.03999999999974 307.641 460.3199999999997] /Type /Annot >> endobj -538 0 obj +537 0 obj << /Border [0 0 0] -/Dest (_route42) +/Dest (_route80) /Subtype /Link /Rect [552.021 446.03999999999974 563.76 460.3199999999997] /Type /Annot >> endobj -539 0 obj +538 0 obj << /Border [0 0 0] /Dest (_parameters_17) /Subtype /Link @@ -54165,7 +54160,7 @@ endobj /Type /Annot >> endobj -540 0 obj +539 0 obj << /Border [0 0 0] /Dest (_parameters_17) /Subtype /Link @@ -54173,7 +54168,7 @@ endobj /Type /Annot >> endobj -541 0 obj +540 0 obj << /Border [0 0 0] /Dest (_responses_23) /Subtype /Link @@ -54181,7 +54176,7 @@ endobj /Type /Annot >> endobj -542 0 obj +541 0 obj << /Border [0 0 0] /Dest (_responses_23) /Subtype /Link @@ -54189,7 +54184,7 @@ endobj /Type /Annot >> endobj -543 0 obj +542 0 obj << /Border [0 0 0] /Dest (_produces_22) /Subtype /Link @@ -54197,7 +54192,7 @@ endobj /Type /Annot >> endobj -544 0 obj +543 0 obj << /Border [0 0 0] /Dest (_produces_22) /Subtype /Link @@ -54205,23 +54200,23 @@ endobj /Type /Annot >> endobj -545 0 obj +544 0 obj << /Border [0 0 0] -/Dest (_route49) +/Dest (_route87) /Subtype /Link /Rect [60.24000000000001 372.11999999999966 261.860794921875 386.39999999999964] /Type /Annot >> endobj -546 0 obj +545 0 obj << /Border [0 0 0] -/Dest (_route49) +/Dest (_route87) /Subtype /Link /Rect [552.021 372.11999999999966 563.76 386.39999999999964] /Type /Annot >> endobj -547 0 obj +546 0 obj << /Border [0 0 0] /Dest (_parameters_18) /Subtype /Link @@ -54229,7 +54224,7 @@ endobj /Type /Annot >> endobj -548 0 obj +547 0 obj << /Border [0 0 0] /Dest (_parameters_18) /Subtype /Link @@ -54237,7 +54232,7 @@ endobj /Type /Annot >> endobj -549 0 obj +548 0 obj << /Border [0 0 0] /Dest (_responses_24) /Subtype /Link @@ -54245,7 +54240,7 @@ endobj /Type /Annot >> endobj -550 0 obj +549 0 obj << /Border [0 0 0] /Dest (_responses_24) /Subtype /Link @@ -54253,7 +54248,7 @@ endobj /Type /Annot >> endobj -551 0 obj +550 0 obj << /Border [0 0 0] /Dest (_produces_23) /Subtype /Link @@ -54261,7 +54256,7 @@ endobj /Type /Annot >> endobj -552 0 obj +551 0 obj << /Border [0 0 0] /Dest (_produces_23) /Subtype /Link @@ -54269,23 +54264,23 @@ endobj /Type /Annot >> endobj -553 0 obj +552 0 obj << /Border [0 0 0] -/Dest (_route43) +/Dest (_route81) /Subtype /Link /Rect [60.24000000000001 298.1999999999996 339.560794921875 312.47999999999956] /Type /Annot >> endobj -554 0 obj +553 0 obj << /Border [0 0 0] -/Dest (_route43) +/Dest (_route81) /Subtype /Link /Rect [552.021 298.1999999999996 563.76 312.47999999999956] /Type /Annot >> endobj -555 0 obj +554 0 obj << /Border [0 0 0] /Dest (_parameters_19) /Subtype /Link @@ -54293,7 +54288,7 @@ endobj /Type /Annot >> endobj -556 0 obj +555 0 obj << /Border [0 0 0] /Dest (_parameters_19) /Subtype /Link @@ -54301,7 +54296,7 @@ endobj /Type /Annot >> endobj -557 0 obj +556 0 obj << /Border [0 0 0] /Dest (_responses_25) /Subtype /Link @@ -54309,7 +54304,7 @@ endobj /Type /Annot >> endobj -558 0 obj +557 0 obj << /Border [0 0 0] /Dest (_responses_25) /Subtype /Link @@ -54317,7 +54312,7 @@ endobj /Type /Annot >> endobj -559 0 obj +558 0 obj << /Border [0 0 0] /Dest (_consumes_4) /Subtype /Link @@ -54325,7 +54320,7 @@ endobj /Type /Annot >> endobj -560 0 obj +559 0 obj << /Border [0 0 0] /Dest (_consumes_4) /Subtype /Link @@ -54333,7 +54328,7 @@ endobj /Type /Annot >> endobj -561 0 obj +560 0 obj << /Border [0 0 0] /Dest (_produces_24) /Subtype /Link @@ -54341,7 +54336,7 @@ endobj /Type /Annot >> endobj -562 0 obj +561 0 obj << /Border [0 0 0] /Dest (_produces_24) /Subtype /Link @@ -54349,23 +54344,23 @@ endobj /Type /Annot >> endobj -563 0 obj +562 0 obj << /Border [0 0 0] -/Dest (_route45) +/Dest (_route83) /Subtype /Link /Rect [60.24000000000001 205.79999999999953 350.38629492187505 220.07999999999953] /Type /Annot >> endobj -564 0 obj +563 0 obj << /Border [0 0 0] -/Dest (_route45) +/Dest (_route83) /Subtype /Link /Rect [552.021 205.79999999999953 563.76 220.07999999999953] /Type /Annot >> endobj -565 0 obj +564 0 obj << /Border [0 0 0] /Dest (_parameters_20) /Subtype /Link @@ -54373,7 +54368,7 @@ endobj /Type /Annot >> endobj -566 0 obj +565 0 obj << /Border [0 0 0] /Dest (_parameters_20) /Subtype /Link @@ -54381,7 +54376,7 @@ endobj /Type /Annot >> endobj -567 0 obj +566 0 obj << /Border [0 0 0] /Dest (_responses_26) /Subtype /Link @@ -54389,7 +54384,7 @@ endobj /Type /Annot >> endobj -568 0 obj +567 0 obj << /Border [0 0 0] /Dest (_responses_26) /Subtype /Link @@ -54397,7 +54392,7 @@ endobj /Type /Annot >> endobj -569 0 obj +568 0 obj << /Border [0 0 0] /Dest (_consumes_5) /Subtype /Link @@ -54405,7 +54400,7 @@ endobj /Type /Annot >> endobj -570 0 obj +569 0 obj << /Border [0 0 0] /Dest (_consumes_5) /Subtype /Link @@ -54413,7 +54408,7 @@ endobj /Type /Annot >> endobj -571 0 obj +570 0 obj << /Border [0 0 0] /Dest (_produces_25) /Subtype /Link @@ -54421,7 +54416,7 @@ endobj /Type /Annot >> endobj -572 0 obj +571 0 obj << /Border [0 0 0] /Dest (_produces_25) /Subtype /Link @@ -54429,23 +54424,23 @@ endobj /Type /Annot >> endobj -573 0 obj +572 0 obj << /Border [0 0 0] -/Dest (_route44) +/Dest (_route82) /Subtype /Link /Rect [60.24000000000001 113.39999999999958 352.81158984375 127.67999999999958] /Type /Annot >> endobj -574 0 obj +573 0 obj << /Border [0 0 0] -/Dest (_route44) +/Dest (_route82) /Subtype /Link /Rect [552.021 113.39999999999958 563.76 127.67999999999958] /Type /Annot >> endobj -575 0 obj +574 0 obj << /Border [0 0 0] /Dest (_parameters_21) /Subtype /Link @@ -54453,7 +54448,7 @@ endobj /Type /Annot >> endobj -576 0 obj +575 0 obj << /Border [0 0 0] /Dest (_parameters_21) /Subtype /Link @@ -54461,7 +54456,7 @@ endobj /Type /Annot >> endobj -577 0 obj +576 0 obj << /Border [0 0 0] /Dest (_responses_27) /Subtype /Link @@ -54469,7 +54464,7 @@ endobj /Type /Annot >> endobj -578 0 obj +577 0 obj << /Border [0 0 0] /Dest (_responses_27) /Subtype /Link @@ -54477,7 +54472,7 @@ endobj /Type /Annot >> endobj -579 0 obj +578 0 obj << /Border [0 0 0] /Dest (_consumes_6) /Subtype /Link @@ -54485,7 +54480,7 @@ endobj /Type /Annot >> endobj -580 0 obj +579 0 obj << /Border [0 0 0] /Dest (_consumes_6) /Subtype /Link @@ -54493,7 +54488,7 @@ endobj /Type /Annot >> endobj -581 0 obj +580 0 obj << /Border [0 0 0] /Dest (_produces_26) /Subtype /Link @@ -54501,7 +54496,7 @@ endobj /Type /Annot >> endobj -582 0 obj +581 0 obj << /Border [0 0 0] /Dest (_produces_26) /Subtype /Link @@ -54509,23 +54504,23 @@ endobj /Type /Annot >> endobj -583 0 obj +582 0 obj << /Border [0 0 0] -/Dest (_route41) +/Dest (_route79) /Subtype /Link /Rect [60.24000000000001 723.2399999999999 212.0595 737.52] /Type /Annot >> endobj -584 0 obj +583 0 obj << /Border [0 0 0] -/Dest (_route41) +/Dest (_route79) /Subtype /Link /Rect [552.021 723.2399999999999 563.76 737.52] /Type /Annot >> endobj -585 0 obj +584 0 obj << /Border [0 0 0] /Dest (_parameters_22) /Subtype /Link @@ -54533,7 +54528,7 @@ endobj /Type /Annot >> endobj -586 0 obj +585 0 obj << /Border [0 0 0] /Dest (_parameters_22) /Subtype /Link @@ -54541,7 +54536,7 @@ endobj /Type /Annot >> endobj -587 0 obj +586 0 obj << /Border [0 0 0] /Dest (_responses_28) /Subtype /Link @@ -54549,7 +54544,7 @@ endobj /Type /Annot >> endobj -588 0 obj +587 0 obj << /Border [0 0 0] /Dest (_responses_28) /Subtype /Link @@ -54557,7 +54552,7 @@ endobj /Type /Annot >> endobj -589 0 obj +588 0 obj << /Border [0 0 0] /Dest (_produces_27) /Subtype /Link @@ -54565,7 +54560,7 @@ endobj /Type /Annot >> endobj -590 0 obj +589 0 obj << /Border [0 0 0] /Dest (_produces_27) /Subtype /Link @@ -54573,23 +54568,23 @@ endobj /Type /Annot >> endobj -591 0 obj +590 0 obj << /Border [0 0 0] -/Dest (_route68) +/Dest (_route106) /Subtype /Link /Rect [60.24000000000001 649.3199999999998 226.68805078125 663.5999999999999] /Type /Annot >> endobj -592 0 obj +591 0 obj << /Border [0 0 0] -/Dest (_route68) +/Dest (_route106) /Subtype /Link /Rect [552.021 649.3199999999998 563.76 663.5999999999999] /Type /Annot >> endobj -593 0 obj +592 0 obj << /Border [0 0 0] /Dest (_parameters_23) /Subtype /Link @@ -54597,7 +54592,7 @@ endobj /Type /Annot >> endobj -594 0 obj +593 0 obj << /Border [0 0 0] /Dest (_parameters_23) /Subtype /Link @@ -54605,7 +54600,7 @@ endobj /Type /Annot >> endobj -595 0 obj +594 0 obj << /Border [0 0 0] /Dest (_responses_29) /Subtype /Link @@ -54613,7 +54608,7 @@ endobj /Type /Annot >> endobj -596 0 obj +595 0 obj << /Border [0 0 0] /Dest (_responses_29) /Subtype /Link @@ -54621,7 +54616,7 @@ endobj /Type /Annot >> endobj -597 0 obj +596 0 obj << /Border [0 0 0] /Dest (_consumes_7) /Subtype /Link @@ -54629,7 +54624,7 @@ endobj /Type /Annot >> endobj -598 0 obj +597 0 obj << /Border [0 0 0] /Dest (_consumes_7) /Subtype /Link @@ -54637,7 +54632,7 @@ endobj /Type /Annot >> endobj -599 0 obj +598 0 obj << /Border [0 0 0] /Dest (_produces_28) /Subtype /Link @@ -54645,7 +54640,7 @@ endobj /Type /Annot >> endobj -600 0 obj +599 0 obj << /Border [0 0 0] /Dest (_produces_28) /Subtype /Link @@ -54653,23 +54648,23 @@ endobj /Type /Annot >> endobj -601 0 obj +600 0 obj << /Border [0 0 0] -/Dest (_route65) +/Dest (_route103) /Subtype /Link /Rect [60.24000000000001 556.9199999999998 221.091755859375 571.1999999999998] /Type /Annot >> endobj -602 0 obj +601 0 obj << /Border [0 0 0] -/Dest (_route65) +/Dest (_route103) /Subtype /Link /Rect [552.021 556.9199999999998 563.76 571.1999999999998] /Type /Annot >> endobj -603 0 obj +602 0 obj << /Border [0 0 0] /Dest (_responses_30) /Subtype /Link @@ -54677,7 +54672,7 @@ endobj /Type /Annot >> endobj -604 0 obj +603 0 obj << /Border [0 0 0] /Dest (_responses_30) /Subtype /Link @@ -54685,7 +54680,7 @@ endobj /Type /Annot >> endobj -605 0 obj +604 0 obj << /Border [0 0 0] /Dest (_produces_29) /Subtype /Link @@ -54693,7 +54688,7 @@ endobj /Type /Annot >> endobj -606 0 obj +605 0 obj << /Border [0 0 0] /Dest (_produces_29) /Subtype /Link @@ -54701,23 +54696,23 @@ endobj /Type /Annot >> endobj -607 0 obj +606 0 obj << /Border [0 0 0] -/Dest (_route67) +/Dest (_route105) /Subtype /Link /Rect [60.24000000000001 501.4799999999998 458.24414062500006 515.7599999999998] /Type /Annot >> endobj -608 0 obj +607 0 obj << /Border [0 0 0] -/Dest (_route67) +/Dest (_route105) /Subtype /Link /Rect [552.021 501.4799999999998 563.76 515.7599999999998] /Type /Annot >> endobj -609 0 obj +608 0 obj << /Border [0 0 0] /Dest (_parameters_24) /Subtype /Link @@ -54725,7 +54720,7 @@ endobj /Type /Annot >> endobj -610 0 obj +609 0 obj << /Border [0 0 0] /Dest (_parameters_24) /Subtype /Link @@ -54733,7 +54728,7 @@ endobj /Type /Annot >> endobj -611 0 obj +610 0 obj << /Border [0 0 0] /Dest (_responses_31) /Subtype /Link @@ -54741,7 +54736,7 @@ endobj /Type /Annot >> endobj -612 0 obj +611 0 obj << /Border [0 0 0] /Dest (_responses_31) /Subtype /Link @@ -54749,7 +54744,7 @@ endobj /Type /Annot >> endobj -613 0 obj +612 0 obj << /Border [0 0 0] /Dest (_produces_30) /Subtype /Link @@ -54757,7 +54752,7 @@ endobj /Type /Annot >> endobj -614 0 obj +613 0 obj << /Border [0 0 0] /Dest (_produces_30) /Subtype /Link @@ -54765,23 +54760,23 @@ endobj /Type /Annot >> endobj -615 0 obj +614 0 obj << /Border [0 0 0] -/Dest (_route66) +/Dest (_route104) /Subtype /Link /Rect [60.24000000000001 427.5599999999997 430.23014062500005 441.8399999999997] /Type /Annot >> endobj -616 0 obj +615 0 obj << /Border [0 0 0] -/Dest (_route66) +/Dest (_route104) /Subtype /Link /Rect [552.021 427.5599999999997 563.76 441.8399999999997] /Type /Annot >> endobj -617 0 obj +616 0 obj << /Border [0 0 0] /Dest (_parameters_25) /Subtype /Link @@ -54789,7 +54784,7 @@ endobj /Type /Annot >> endobj -618 0 obj +617 0 obj << /Border [0 0 0] /Dest (_parameters_25) /Subtype /Link @@ -54797,7 +54792,7 @@ endobj /Type /Annot >> endobj -619 0 obj +618 0 obj << /Border [0 0 0] /Dest (_responses_32) /Subtype /Link @@ -54805,7 +54800,7 @@ endobj /Type /Annot >> endobj -620 0 obj +619 0 obj << /Border [0 0 0] /Dest (_responses_32) /Subtype /Link @@ -54813,7 +54808,7 @@ endobj /Type /Annot >> endobj -621 0 obj +620 0 obj << /Border [0 0 0] /Dest (_produces_31) /Subtype /Link @@ -54821,7 +54816,7 @@ endobj /Type /Annot >> endobj -622 0 obj +621 0 obj << /Border [0 0 0] /Dest (_produces_31) /Subtype /Link @@ -54829,23 +54824,23 @@ endobj /Type /Annot >> endobj -623 0 obj +622 0 obj << /Border [0 0 0] -/Dest (_route69) +/Dest (_route107) /Subtype /Link /Rect [60.24000000000001 353.63999999999965 430.06214062500004 367.9199999999996] /Type /Annot >> endobj -624 0 obj +623 0 obj << /Border [0 0 0] -/Dest (_route69) +/Dest (_route107) /Subtype /Link /Rect [552.021 353.63999999999965 563.76 367.9199999999996] /Type /Annot >> endobj -625 0 obj +624 0 obj << /Border [0 0 0] /Dest (_parameters_26) /Subtype /Link @@ -54853,7 +54848,7 @@ endobj /Type /Annot >> endobj -626 0 obj +625 0 obj << /Border [0 0 0] /Dest (_parameters_26) /Subtype /Link @@ -54861,7 +54856,7 @@ endobj /Type /Annot >> endobj -627 0 obj +626 0 obj << /Border [0 0 0] /Dest (_responses_33) /Subtype /Link @@ -54869,7 +54864,7 @@ endobj /Type /Annot >> endobj -628 0 obj +627 0 obj << /Border [0 0 0] /Dest (_responses_33) /Subtype /Link @@ -54877,7 +54872,7 @@ endobj /Type /Annot >> endobj -629 0 obj +628 0 obj << /Border [0 0 0] /Dest (_consumes_8) /Subtype /Link @@ -54885,7 +54880,7 @@ endobj /Type /Annot >> endobj -630 0 obj +629 0 obj << /Border [0 0 0] /Dest (_consumes_8) /Subtype /Link @@ -54893,7 +54888,7 @@ endobj /Type /Annot >> endobj -631 0 obj +630 0 obj << /Border [0 0 0] /Dest (_produces_32) /Subtype /Link @@ -54901,7 +54896,7 @@ endobj /Type /Annot >> endobj -632 0 obj +631 0 obj << /Border [0 0 0] /Dest (_produces_32) /Subtype /Link @@ -54909,23 +54904,23 @@ endobj /Type /Annot >> endobj -633 0 obj +632 0 obj << /Border [0 0 0] -/Dest (_route70) +/Dest (_route108) /Subtype /Link /Rect [60.24000000000001 261.23999999999955 175.8555 275.5199999999995] /Type /Annot >> endobj -634 0 obj +633 0 obj << /Border [0 0 0] -/Dest (_route70) +/Dest (_route108) /Subtype /Link /Rect [552.021 261.23999999999955 563.76 275.5199999999995] /Type /Annot >> endobj -635 0 obj +634 0 obj << /Border [0 0 0] /Dest (_responses_34) /Subtype /Link @@ -54933,7 +54928,7 @@ endobj /Type /Annot >> endobj -636 0 obj +635 0 obj << /Border [0 0 0] /Dest (_responses_34) /Subtype /Link @@ -54941,7 +54936,7 @@ endobj /Type /Annot >> endobj -637 0 obj +636 0 obj << /Border [0 0 0] /Dest (_produces_33) /Subtype /Link @@ -54949,7 +54944,7 @@ endobj /Type /Annot >> endobj -638 0 obj +637 0 obj << /Border [0 0 0] /Dest (_produces_33) /Subtype /Link @@ -54957,23 +54952,23 @@ endobj /Type /Annot >> endobj -639 0 obj +638 0 obj << /Border [0 0 0] -/Dest (_route72) +/Dest (_route110) /Subtype /Link /Rect [60.24000000000001 205.79999999999953 211.818 220.07999999999953] /Type /Annot >> endobj -640 0 obj +639 0 obj << /Border [0 0 0] -/Dest (_route72) +/Dest (_route110) /Subtype /Link /Rect [552.021 205.79999999999953 563.76 220.07999999999953] /Type /Annot >> endobj -641 0 obj +640 0 obj << /Border [0 0 0] /Dest (_responses_35) /Subtype /Link @@ -54981,7 +54976,7 @@ endobj /Type /Annot >> endobj -642 0 obj +641 0 obj << /Border [0 0 0] /Dest (_responses_35) /Subtype /Link @@ -54989,7 +54984,7 @@ endobj /Type /Annot >> endobj -643 0 obj +642 0 obj << /Border [0 0 0] /Dest (_produces_34) /Subtype /Link @@ -54997,7 +54992,7 @@ endobj /Type /Annot >> endobj -644 0 obj +643 0 obj << /Border [0 0 0] /Dest (_produces_34) /Subtype /Link @@ -55005,23 +55000,23 @@ endobj /Type /Annot >> endobj -645 0 obj +644 0 obj << /Border [0 0 0] -/Dest (_route71) +/Dest (_route109) /Subtype /Link /Rect [60.24000000000001 150.35999999999956 261.44100000000003 164.63999999999956] /Type /Annot >> endobj -646 0 obj +645 0 obj << /Border [0 0 0] -/Dest (_route71) +/Dest (_route109) /Subtype /Link /Rect [552.021 150.35999999999956 563.76 164.63999999999956] /Type /Annot >> endobj -647 0 obj +646 0 obj << /Border [0 0 0] /Dest (_parameters_27) /Subtype /Link @@ -55029,7 +55024,7 @@ endobj /Type /Annot >> endobj -648 0 obj +647 0 obj << /Border [0 0 0] /Dest (_parameters_27) /Subtype /Link @@ -55037,7 +55032,7 @@ endobj /Type /Annot >> endobj -649 0 obj +648 0 obj << /Border [0 0 0] /Dest (_responses_36) /Subtype /Link @@ -55045,7 +55040,7 @@ endobj /Type /Annot >> endobj -650 0 obj +649 0 obj << /Border [0 0 0] /Dest (_responses_36) /Subtype /Link @@ -55053,7 +55048,7 @@ endobj /Type /Annot >> endobj -651 0 obj +650 0 obj << /Border [0 0 0] /Dest (_produces_35) /Subtype /Link @@ -55061,7 +55056,7 @@ endobj /Type /Annot >> endobj -652 0 obj +651 0 obj << /Border [0 0 0] /Dest (_produces_35) /Subtype /Link @@ -55069,23 +55064,23 @@ endobj /Type /Annot >> endobj -653 0 obj +652 0 obj << /Border [0 0 0] -/Dest (_route73) +/Dest (_route111) /Subtype /Link /Rect [60.24000000000001 76.4399999999996 357.02250000000004 90.7199999999996] /Type /Annot >> endobj -654 0 obj +653 0 obj << /Border [0 0 0] -/Dest (_route73) +/Dest (_route111) /Subtype /Link /Rect [552.021 76.4399999999996 563.76 90.7199999999996] /Type /Annot >> endobj -655 0 obj +654 0 obj << /Border [0 0 0] /Dest (_parameters_28) /Subtype /Link @@ -55093,7 +55088,7 @@ endobj /Type /Annot >> endobj -656 0 obj +655 0 obj << /Border [0 0 0] /Dest (_parameters_28) /Subtype /Link @@ -55101,7 +55096,7 @@ endobj /Type /Annot >> endobj -657 0 obj +656 0 obj << /Border [0 0 0] /Dest (_responses_37) /Subtype /Link @@ -55109,7 +55104,7 @@ endobj /Type /Annot >> endobj -658 0 obj +657 0 obj << /Border [0 0 0] /Dest (_responses_37) /Subtype /Link @@ -55117,7 +55112,7 @@ endobj /Type /Annot >> endobj -659 0 obj +658 0 obj << /Border [0 0 0] /Dest (_produces_36) /Subtype /Link @@ -55125,7 +55120,7 @@ endobj /Type /Annot >> endobj -660 0 obj +659 0 obj << /Border [0 0 0] /Dest (_produces_36) /Subtype /Link @@ -55133,7 +55128,7 @@ endobj /Type /Annot >> endobj -661 0 obj +660 0 obj << /Border [0 0 0] /Dest (_definitions) /Subtype /Link @@ -55141,7 +55136,7 @@ endobj /Type /Annot >> endobj -662 0 obj +661 0 obj << /Border [0 0 0] /Dest (_definitions) /Subtype /Link @@ -55149,7 +55144,7 @@ endobj /Type /Annot >> endobj -663 0 obj +662 0 obj << /Border [0 0 0] /Dest (_clampinformation) /Subtype /Link @@ -55157,7 +55152,7 @@ endobj /Type /Annot >> endobj -664 0 obj +663 0 obj << /Border [0 0 0] /Dest (_clampinformation) /Subtype /Link @@ -55165,7 +55160,7 @@ endobj /Type /Annot >> endobj -665 0 obj +664 0 obj << /Border [0 0 0] /Dest (_cldshealthcheck) /Subtype /Link @@ -55173,7 +55168,7 @@ endobj /Type /Annot >> endobj -666 0 obj +665 0 obj << /Border [0 0 0] /Dest (_cldshealthcheck) /Subtype /Link @@ -55181,7 +55176,7 @@ endobj /Type /Annot >> endobj -667 0 obj +666 0 obj << /Border [0 0 0] /Dest (_dictionary) /Subtype /Link @@ -55189,7 +55184,7 @@ endobj /Type /Annot >> endobj -668 0 obj +667 0 obj << /Border [0 0 0] /Dest (_dictionary) /Subtype /Link @@ -55197,7 +55192,7 @@ endobj /Type /Annot >> endobj -669 0 obj +668 0 obj << /Border [0 0 0] /Dest (_dictionaryelement) /Subtype /Link @@ -55205,7 +55200,7 @@ endobj /Type /Annot >> endobj -670 0 obj +669 0 obj << /Border [0 0 0] /Dest (_dictionaryelement) /Subtype /Link @@ -55213,7 +55208,7 @@ endobj /Type /Annot >> endobj -671 0 obj +670 0 obj << /Border [0 0 0] /Dest (_externalcomponent) /Subtype /Link @@ -55221,7 +55216,7 @@ endobj /Type /Annot >> endobj -672 0 obj +671 0 obj << /Border [0 0 0] /Dest (_externalcomponent) /Subtype /Link @@ -55229,7 +55224,7 @@ endobj /Type /Annot >> endobj -673 0 obj +672 0 obj << /Border [0 0 0] /Dest (_externalcomponentstate) /Subtype /Link @@ -55237,7 +55232,7 @@ endobj /Type /Annot >> endobj -674 0 obj +673 0 obj << /Border [0 0 0] /Dest (_externalcomponentstate) /Subtype /Link @@ -55245,7 +55240,7 @@ endobj /Type /Annot >> endobj -675 0 obj +674 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -55253,7 +55248,7 @@ endobj /Type /Annot >> endobj -676 0 obj +675 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -55261,7 +55256,7 @@ endobj /Type /Annot >> endobj -677 0 obj +676 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -55269,7 +55264,7 @@ endobj /Type /Annot >> endobj -678 0 obj +677 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -55277,7 +55272,7 @@ endobj /Type /Annot >> endobj -679 0 obj +678 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -55285,7 +55280,7 @@ endobj /Type /Annot >> endobj -680 0 obj +679 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -55293,7 +55288,7 @@ endobj /Type /Annot >> endobj -681 0 obj +680 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -55301,7 +55296,7 @@ endobj /Type /Annot >> endobj -682 0 obj +681 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -55309,7 +55304,7 @@ endobj /Type /Annot >> endobj -683 0 obj +682 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -55317,7 +55312,7 @@ endobj /Type /Annot >> endobj -684 0 obj +683 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -55325,7 +55320,7 @@ endobj /Type /Annot >> endobj -685 0 obj +684 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -55333,7 +55328,7 @@ endobj /Type /Annot >> endobj -686 0 obj +685 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -55341,7 +55336,7 @@ endobj /Type /Annot >> endobj -687 0 obj +686 0 obj << /Border [0 0 0] /Dest (_looplog) /Subtype /Link @@ -55349,7 +55344,7 @@ endobj /Type /Annot >> endobj -688 0 obj +687 0 obj << /Border [0 0 0] /Dest (_looplog) /Subtype /Link @@ -55357,7 +55352,7 @@ endobj /Type /Annot >> endobj -689 0 obj +688 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -55365,7 +55360,7 @@ endobj /Type /Annot >> endobj -690 0 obj +689 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -55373,7 +55368,7 @@ endobj /Type /Annot >> endobj -691 0 obj +690 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -55381,7 +55376,7 @@ endobj /Type /Annot >> endobj -692 0 obj +691 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -55389,7 +55384,7 @@ endobj /Type /Annot >> endobj -693 0 obj +692 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -55397,7 +55392,7 @@ endobj /Type /Annot >> endobj -694 0 obj +693 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -55405,7 +55400,7 @@ endobj /Type /Annot >> endobj -695 0 obj +694 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -55413,7 +55408,7 @@ endobj /Type /Annot >> endobj -696 0 obj +695 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -55421,7 +55416,7 @@ endobj /Type /Annot >> endobj -697 0 obj +696 0 obj << /Border [0 0 0] /Dest (_operationalpolicy) /Subtype /Link @@ -55429,7 +55424,7 @@ endobj /Type /Annot >> endobj -698 0 obj +697 0 obj << /Border [0 0 0] /Dest (_operationalpolicy) /Subtype /Link @@ -55437,7 +55432,7 @@ endobj /Type /Annot >> endobj -699 0 obj +698 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -55445,7 +55440,7 @@ endobj /Type /Annot >> endobj -700 0 obj +699 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -55453,7 +55448,7 @@ endobj /Type /Annot >> endobj -701 0 obj +700 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -55461,7 +55456,7 @@ endobj /Type /Annot >> endobj -702 0 obj +701 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -55469,7 +55464,7 @@ endobj /Type /Annot >> endobj -703 0 obj +702 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 612.0 792.0] @@ -55497,1569 +55492,1569 @@ Q endstream endobj -704 0 obj +703 0 obj << /Type /Outlines /Count 173 -/First 705 0 R -/Last 857 0 R +/First 704 0 R +/Last 856 0 R >> endobj -705 0 obj +704 0 obj << /Title <feff0043006c0061006d0070002000520065007300740020004100500049> -/Parent 704 0 R +/Parent 703 0 R /Count 0 -/Next 706 0 R +/Next 705 0 R /Dest [7 0 R /XYZ 0 792.0 null] >> endobj -706 0 obj +705 0 obj << /Title <feff005400610062006c00650020006f006600200043006f006e00740065006e00740073> -/Parent 704 0 R +/Parent 703 0 R /Count 0 -/Next 707 0 R -/Prev 705 0 R +/Next 706 0 R +/Prev 704 0 R /Dest [10 0 R /XYZ 0 792.0 null] >> endobj -707 0 obj +706 0 obj << /Title <feff004300680061007000740065007200200031002e0020004f0076006500720076006900650077> -/Parent 704 0 R +/Parent 703 0 R /Count 2 -/First 708 0 R -/Last 709 0 R -/Next 710 0 R -/Prev 706 0 R +/First 707 0 R +/Last 708 0 R +/Next 709 0 R +/Prev 705 0 R /Dest [20 0 R /XYZ 0 792.0 null] >> endobj -708 0 obj +707 0 obj << /Title <feff0031002e0031002e002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e> -/Parent 707 0 R +/Parent 706 0 R /Count 0 -/Next 709 0 R +/Next 708 0 R /Dest [20 0 R /XYZ 0 712.0799999999999 null] >> endobj -709 0 obj +708 0 obj << /Title <feff0031002e0032002e002000550052004900200073006300680065006d0065> -/Parent 707 0 R +/Parent 706 0 R /Count 0 -/Prev 708 0 R +/Prev 707 0 R /Dest [20 0 R /XYZ 0 644.22 null] >> endobj -710 0 obj +709 0 obj << /Title <feff004300680061007000740065007200200032002e002000500061007400680073> -/Parent 704 0 R +/Parent 703 0 R /Count 146 -/First 711 0 R -/Last 853 0 R -/Next 857 0 R -/Prev 707 0 R +/First 710 0 R +/Last 852 0 R +/Next 856 0 R +/Prev 706 0 R /Dest [29 0 R /XYZ 0 792.0 null] >> endobj -711 0 obj +710 0 obj << /Title <feff0032002e0031002e00200047004500540020002f00760031002f006800650061006c007400680063006800650063006b> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 712 0 R -/Last 713 0 R -/Next 714 0 R +/First 711 0 R +/Last 712 0 R +/Next 713 0 R /Dest [29 0 R /XYZ 0 712.0799999999999 null] >> endobj -712 0 obj +711 0 obj << /Title <feff0032002e0031002e0031002e00200052006500730070006f006e007300650073> -/Parent 711 0 R +/Parent 710 0 R /Count 0 -/Next 713 0 R +/Next 712 0 R /Dest [29 0 R /XYZ 0 672.0 null] >> endobj -713 0 obj +712 0 obj << /Title <feff0032002e0031002e0032002e002000500072006f00640075006300650073> -/Parent 711 0 R +/Parent 710 0 R /Count 0 -/Prev 712 0 R +/Prev 711 0 R /Dest [29 0 R /XYZ 0 566.8800000000001 null] >> endobj -714 0 obj +713 0 obj << /Title <feff0032002e0032002e00200047004500540020002f00760031002f0075007300650072002f0067006500740055007300650072> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 715 0 R -/Last 716 0 R -/Next 717 0 R -/Prev 711 0 R +/First 714 0 R +/Last 715 0 R +/Next 716 0 R +/Prev 710 0 R /Dest [29 0 R /XYZ 0 510.60000000000025 null] >> endobj -715 0 obj +714 0 obj << /Title <feff0032002e0032002e0031002e00200052006500730070006f006e007300650073> -/Parent 714 0 R +/Parent 713 0 R /Count 0 -/Next 716 0 R +/Next 715 0 R /Dest [29 0 R /XYZ 0 470.5200000000002 null] >> endobj -716 0 obj +715 0 obj << /Title <feff0032002e0032002e0032002e002000500072006f00640075006300650073> -/Parent 714 0 R +/Parent 713 0 R /Count 0 -/Prev 715 0 R +/Prev 714 0 R /Dest [29 0 R /XYZ 0 379.6800000000002 null] >> endobj -717 0 obj +716 0 obj << /Title <feff0032002e0033002e00200047004500540020002f00760032002f0063006c0061006d00700049006e0066006f0072006d006100740069006f006e> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 718 0 R -/Last 719 0 R -/Next 720 0 R -/Prev 714 0 R +/First 717 0 R +/Last 718 0 R +/Next 719 0 R +/Prev 713 0 R /Dest [29 0 R /XYZ 0 323.40000000000015 null] >> endobj -718 0 obj +717 0 obj << /Title <feff0032002e0033002e0031002e00200052006500730070006f006e007300650073> -/Parent 717 0 R +/Parent 716 0 R /Count 0 -/Next 719 0 R +/Next 718 0 R /Dest [29 0 R /XYZ 0 283.3200000000001 null] >> endobj -719 0 obj +718 0 obj << /Title <feff0032002e0033002e0032002e002000500072006f00640075006300650073> -/Parent 717 0 R +/Parent 716 0 R /Count 0 -/Prev 718 0 R +/Prev 717 0 R /Dest [29 0 R /XYZ 0 178.2000000000001 null] >> endobj -720 0 obj +719 0 obj << /Title <feff0032002e0034002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 721 0 R -/Last 722 0 R -/Next 723 0 R -/Prev 717 0 R +/First 720 0 R +/Last 721 0 R +/Next 722 0 R +/Prev 716 0 R /Dest [29 0 R /XYZ 0 121.92000000000007 null] >> endobj -721 0 obj +720 0 obj << /Title <feff0032002e0034002e0031002e00200052006500730070006f006e007300650073> -/Parent 720 0 R +/Parent 719 0 R /Count 0 -/Next 722 0 R +/Next 721 0 R /Dest [45 0 R /XYZ 0 792.0 null] >> endobj -722 0 obj +721 0 obj << /Title <feff0032002e0034002e0032002e002000500072006f00640075006300650073> -/Parent 720 0 R +/Parent 719 0 R /Count 0 -/Prev 721 0 R +/Prev 720 0 R /Dest [45 0 R /XYZ 0 653.2800000000002 null] >> endobj -723 0 obj +722 0 obj << /Title <feff0032002e0035002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079> -/Parent 710 0 R +/Parent 709 0 R /Count 4 -/First 724 0 R -/Last 727 0 R -/Next 728 0 R -/Prev 720 0 R +/First 723 0 R +/Last 726 0 R +/Next 727 0 R +/Prev 719 0 R /Dest [45 0 R /XYZ 0 597.0000000000003 null] >> endobj -724 0 obj +723 0 obj << /Title <feff0032002e0035002e0031002e00200050006100720061006d00650074006500720073> -/Parent 723 0 R +/Parent 722 0 R /Count 0 -/Next 725 0 R +/Next 724 0 R /Dest [45 0 R /XYZ 0 556.9200000000004 null] >> endobj -725 0 obj +724 0 obj << /Title <feff0032002e0035002e0032002e00200052006500730070006f006e007300650073> -/Parent 723 0 R +/Parent 722 0 R /Count 0 -/Next 726 0 R -/Prev 724 0 R +/Next 725 0 R +/Prev 723 0 R /Dest [45 0 R /XYZ 0 451.8000000000006 null] >> endobj -726 0 obj +725 0 obj << /Title <feff0032002e0035002e0033002e00200043006f006e00730075006d00650073> -/Parent 723 0 R +/Parent 722 0 R /Count 0 -/Next 727 0 R -/Prev 725 0 R +/Next 726 0 R +/Prev 724 0 R /Dest [45 0 R /XYZ 0 346.6800000000005 null] >> endobj -727 0 obj +726 0 obj << /Title <feff0032002e0035002e0034002e002000500072006f00640075006300650073> -/Parent 723 0 R +/Parent 722 0 R /Count 0 -/Prev 726 0 R +/Prev 725 0 R /Dest [45 0 R /XYZ 0 290.4000000000005 null] >> endobj -728 0 obj +727 0 obj << /Title <feff0032002e0036002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007300650063006f006e0064006100720079002f006e0061006d00650073> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 729 0 R -/Last 730 0 R -/Next 731 0 R -/Prev 723 0 R +/First 728 0 R +/Last 729 0 R +/Next 730 0 R +/Prev 722 0 R /Dest [45 0 R /XYZ 0 234.12000000000046 null] >> endobj -729 0 obj +728 0 obj << /Title <feff0032002e0036002e0031002e00200052006500730070006f006e007300650073> -/Parent 728 0 R +/Parent 727 0 R /Count 0 -/Next 730 0 R +/Next 729 0 R /Dest [45 0 R /XYZ 0 194.04000000000045 null] >> endobj -730 0 obj +729 0 obj << /Title <feff0032002e0036002e0032002e002000500072006f00640075006300650073> -/Parent 728 0 R +/Parent 727 0 R /Count 0 -/Prev 729 0 R +/Prev 728 0 R /Dest [61 0 R /XYZ 0 792.0 null] >> endobj -731 0 obj +730 0 obj << /Title <feff0032002e0037002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007b00640069006300740069006f006e006100720079004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 732 0 R -/Last 734 0 R -/Next 735 0 R -/Prev 728 0 R +/First 731 0 R +/Last 733 0 R +/Next 734 0 R +/Prev 727 0 R /Dest [61 0 R /XYZ 0 702.1200000000001 null] >> endobj -732 0 obj +731 0 obj << /Title <feff0032002e0037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 731 0 R +/Parent 730 0 R /Count 0 -/Next 733 0 R +/Next 732 0 R /Dest [61 0 R /XYZ 0 662.0400000000002 null] >> endobj -733 0 obj +732 0 obj << /Title <feff0032002e0037002e0032002e00200052006500730070006f006e007300650073> -/Parent 731 0 R +/Parent 730 0 R /Count 0 -/Next 734 0 R -/Prev 732 0 R +/Next 733 0 R +/Prev 731 0 R /Dest [61 0 R /XYZ 0 556.9200000000003 null] >> endobj -734 0 obj +733 0 obj << /Title <feff0032002e0037002e0033002e002000500072006f00640075006300650073> -/Parent 731 0 R +/Parent 730 0 R /Count 0 -/Prev 733 0 R +/Prev 732 0 R /Dest [61 0 R /XYZ 0 451.8000000000004 null] >> endobj -735 0 obj +734 0 obj << /Title <feff0032002e0038002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 4 -/First 736 0 R -/Last 739 0 R -/Next 740 0 R -/Prev 731 0 R +/First 735 0 R +/Last 738 0 R +/Next 739 0 R +/Prev 730 0 R /Dest [61 0 R /XYZ 0 395.5200000000004 null] >> endobj -736 0 obj +735 0 obj << /Title <feff0032002e0038002e0031002e00200050006100720061006d00650074006500720073> -/Parent 735 0 R +/Parent 734 0 R /Count 0 -/Next 737 0 R +/Next 736 0 R /Dest [61 0 R /XYZ 0 355.44000000000034 null] >> endobj -737 0 obj +736 0 obj << /Title <feff0032002e0038002e0032002e00200052006500730070006f006e007300650073> -/Parent 735 0 R +/Parent 734 0 R /Count 0 -/Next 738 0 R -/Prev 736 0 R +/Next 737 0 R +/Prev 735 0 R /Dest [61 0 R /XYZ 0 212.76000000000028 null] >> endobj -738 0 obj +737 0 obj << /Title <feff0032002e0038002e0033002e00200043006f006e00730075006d00650073> -/Parent 735 0 R +/Parent 734 0 R /Count 0 -/Next 739 0 R -/Prev 737 0 R +/Next 738 0 R +/Prev 736 0 R /Dest [61 0 R /XYZ 0 107.64000000000024 null] >> endobj -739 0 obj +738 0 obj << /Title <feff0032002e0038002e0034002e002000500072006f00640075006300650073> -/Parent 735 0 R +/Parent 734 0 R /Count 0 -/Prev 738 0 R +/Prev 737 0 R /Dest [75 0 R /XYZ 0 792.0 null] >> endobj -740 0 obj +739 0 obj << /Title <feff0032002e0039002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 741 0 R -/Last 743 0 R -/Next 744 0 R -/Prev 735 0 R +/First 740 0 R +/Last 742 0 R +/Next 743 0 R +/Prev 734 0 R /Dest [75 0 R /XYZ 0 702.1200000000001 null] >> endobj -741 0 obj +740 0 obj << /Title <feff0032002e0039002e0031002e00200050006100720061006d00650074006500720073> -/Parent 740 0 R +/Parent 739 0 R /Count 0 -/Next 742 0 R +/Next 741 0 R /Dest [75 0 R /XYZ 0 662.0400000000002 null] >> endobj -742 0 obj +741 0 obj << /Title <feff0032002e0039002e0032002e00200052006500730070006f006e007300650073> -/Parent 740 0 R +/Parent 739 0 R /Count 0 -/Next 743 0 R -/Prev 741 0 R +/Next 742 0 R +/Prev 740 0 R /Dest [75 0 R /XYZ 0 556.9200000000003 null] >> endobj -743 0 obj +742 0 obj << /Title <feff0032002e0039002e0033002e002000500072006f00640075006300650073> -/Parent 740 0 R +/Parent 739 0 R /Count 0 -/Prev 742 0 R +/Prev 741 0 R /Dest [75 0 R /XYZ 0 466.0800000000005 null] >> endobj -744 0 obj +743 0 obj << /Title <feff0032002e00310030002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d002f0065006c0065006d0065006e00740073002f007b00730068006f00720074004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 745 0 R -/Last 747 0 R -/Next 748 0 R -/Prev 740 0 R +/First 744 0 R +/Last 746 0 R +/Next 747 0 R +/Prev 739 0 R /Dest [75 0 R /XYZ 0 409.80000000000047 null] >> endobj -745 0 obj +744 0 obj << /Title <feff0032002e00310030002e0031002e00200050006100720061006d00650074006500720073> -/Parent 744 0 R +/Parent 743 0 R /Count 0 -/Next 746 0 R +/Next 745 0 R /Dest [75 0 R /XYZ 0 341.64000000000044 null] >> endobj -746 0 obj +745 0 obj << /Title <feff0032002e00310030002e0032002e00200052006500730070006f006e007300650073> -/Parent 744 0 R +/Parent 743 0 R /Count 0 -/Next 747 0 R -/Prev 745 0 R +/Next 746 0 R +/Prev 744 0 R /Dest [75 0 R /XYZ 0 198.9600000000004 null] >> endobj -747 0 obj +746 0 obj << /Title <feff0032002e00310030002e0033002e002000500072006f00640075006300650073> -/Parent 744 0 R +/Parent 743 0 R /Count 0 -/Prev 746 0 R +/Prev 745 0 R /Dest [75 0 R /XYZ 0 108.12000000000037 null] >> endobj -748 0 obj +747 0 obj << /Title <feff0032002e00310031002e00200050005500540020002f00760032002f006c006f006f0070002f006100640064004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 749 0 R -/Last 751 0 R -/Next 752 0 R -/Prev 744 0 R +/First 748 0 R +/Last 750 0 R +/Next 751 0 R +/Prev 743 0 R /Dest [87 0 R /XYZ 0 792.0 null] >> endobj -749 0 obj +748 0 obj << /Title <feff0032002e00310031002e0031002e00200050006100720061006d00650074006500720073> -/Parent 748 0 R +/Parent 747 0 R /Count 0 -/Next 750 0 R +/Next 749 0 R /Dest [87 0 R /XYZ 0 662.1600000000001 null] >> endobj -750 0 obj +749 0 obj << /Title <feff0032002e00310031002e0032002e00200052006500730070006f006e007300650073> -/Parent 748 0 R +/Parent 747 0 R /Count 0 -/Next 751 0 R -/Prev 749 0 R +/Next 750 0 R +/Prev 748 0 R /Dest [87 0 R /XYZ 0 481.92000000000024 null] >> endobj -751 0 obj +750 0 obj << /Title <feff0032002e00310031002e0033002e002000500072006f00640075006300650073> -/Parent 748 0 R +/Parent 747 0 R /Count 0 -/Prev 750 0 R +/Prev 749 0 R /Dest [87 0 R /XYZ 0 376.8000000000002 null] >> endobj -752 0 obj +751 0 obj << /Title <feff0032002e00310032002e00200050004f005300540020002f00760032002f006c006f006f0070002f006300720065006100740065002f007b006c006f006f0070004e0061006d0065007d003f00740065006d0070006c006100740065004e0061006d0065003d007b00740065006d0070006c006100740065004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 4 -/First 753 0 R -/Last 756 0 R -/Next 757 0 R -/Prev 748 0 R +/First 752 0 R +/Last 755 0 R +/Next 756 0 R +/Prev 747 0 R /Dest [87 0 R /XYZ 0 320.52000000000015 null] >> endobj -753 0 obj +752 0 obj << /Title <feff0032002e00310032002e0031002e00200050006100720061006d00650074006500720073> -/Parent 752 0 R +/Parent 751 0 R /Count 0 -/Next 754 0 R +/Next 753 0 R /Dest [87 0 R /XYZ 0 224.28000000000017 null] >> endobj -754 0 obj +753 0 obj << /Title <feff0032002e00310032002e0032002e00200052006500730070006f006e007300650073> -/Parent 752 0 R +/Parent 751 0 R /Count 0 -/Next 755 0 R -/Prev 753 0 R +/Next 754 0 R +/Prev 752 0 R /Dest [87 0 R /XYZ 0 104.88000000000014 null] >> endobj -755 0 obj +754 0 obj << /Title <feff0032002e00310032002e0033002e00200043006f006e00730075006d00650073> -/Parent 752 0 R +/Parent 751 0 R /Count 0 -/Next 756 0 R -/Prev 754 0 R +/Next 755 0 R +/Prev 753 0 R /Dest [98 0 R /XYZ 0 683.1600000000001 null] >> endobj -756 0 obj +755 0 obj << /Title <feff0032002e00310032002e0034002e002000500072006f00640075006300650073> -/Parent 752 0 R +/Parent 751 0 R /Count 0 -/Prev 755 0 R +/Prev 754 0 R /Dest [98 0 R /XYZ 0 626.8800000000002 null] >> endobj -757 0 obj +756 0 obj << /Title <feff0032002e00310033002e00200050005500540020002f00760032002f006c006f006f0070002f00640065006c006500740065002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 758 0 R -/Last 759 0 R -/Next 760 0 R -/Prev 752 0 R +/First 757 0 R +/Last 758 0 R +/Next 759 0 R +/Prev 751 0 R /Dest [98 0 R /XYZ 0 570.6000000000004 null] >> endobj -758 0 obj +757 0 obj << /Title <feff0032002e00310033002e0031002e00200050006100720061006d00650074006500720073> -/Parent 757 0 R +/Parent 756 0 R /Count 0 -/Next 759 0 R +/Next 758 0 R /Dest [98 0 R /XYZ 0 530.5200000000004 null] >> endobj -759 0 obj +758 0 obj << /Title <feff0032002e00310033002e0032002e00200052006500730070006f006e007300650073> -/Parent 757 0 R +/Parent 756 0 R /Count 0 -/Prev 758 0 R +/Prev 757 0 R /Dest [98 0 R /XYZ 0 425.4000000000005 null] >> endobj -760 0 obj +759 0 obj << /Title <feff0032002e00310034002e00200050005500540020002f00760032002f006c006f006f0070002f006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 761 0 R -/Last 763 0 R -/Next 764 0 R -/Prev 757 0 R +/First 760 0 R +/Last 762 0 R +/Next 763 0 R +/Prev 756 0 R /Dest [98 0 R /XYZ 0 334.5600000000005 null] >> endobj -761 0 obj +760 0 obj << /Title <feff0032002e00310034002e0031002e00200050006100720061006d00650074006500720073> -/Parent 760 0 R +/Parent 759 0 R /Count 0 -/Next 762 0 R +/Next 761 0 R /Dest [98 0 R /XYZ 0 294.4800000000005 null] >> endobj -762 0 obj +761 0 obj << /Title <feff0032002e00310034002e0032002e00200052006500730070006f006e007300650073> -/Parent 760 0 R +/Parent 759 0 R /Count 0 -/Next 763 0 R -/Prev 761 0 R +/Next 762 0 R +/Prev 760 0 R /Dest [98 0 R /XYZ 0 189.36000000000044 null] >> endobj -763 0 obj +762 0 obj << /Title <feff0032002e00310034002e0033002e002000500072006f00640075006300650073> -/Parent 760 0 R +/Parent 759 0 R /Count 0 -/Prev 762 0 R +/Prev 761 0 R /Dest [110 0 R /XYZ 0 792.0 null] >> endobj -764 0 obj +763 0 obj << /Title <feff0032002e00310035002e00200047004500540020002f00760032002f006c006f006f0070002f0067006500740041006c006c004e0061006d00650073> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 765 0 R -/Last 766 0 R -/Next 767 0 R -/Prev 760 0 R +/First 764 0 R +/Last 765 0 R +/Next 766 0 R +/Prev 759 0 R /Dest [110 0 R /XYZ 0 702.1200000000001 null] >> endobj -765 0 obj +764 0 obj << /Title <feff0032002e00310035002e0031002e00200052006500730070006f006e007300650073> -/Parent 764 0 R +/Parent 763 0 R /Count 0 -/Next 766 0 R +/Next 765 0 R /Dest [110 0 R /XYZ 0 662.0400000000002 null] >> endobj -766 0 obj +765 0 obj << /Title <feff0032002e00310035002e0032002e002000500072006f00640075006300650073> -/Parent 764 0 R +/Parent 763 0 R /Count 0 -/Prev 765 0 R +/Prev 764 0 R /Dest [110 0 R /XYZ 0 556.9200000000003 null] >> endobj -767 0 obj +766 0 obj << /Title <feff0032002e00310036002e00200047004500540020002f00760032002f006c006f006f0070002f006700650074007300740061007400750073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 768 0 R -/Last 770 0 R -/Next 771 0 R -/Prev 764 0 R +/First 767 0 R +/Last 769 0 R +/Next 770 0 R +/Prev 763 0 R /Dest [110 0 R /XYZ 0 500.64000000000044 null] >> endobj -768 0 obj +767 0 obj << /Title <feff0032002e00310036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 767 0 R +/Parent 766 0 R /Count 0 -/Next 769 0 R +/Next 768 0 R /Dest [110 0 R /XYZ 0 460.5600000000004 null] >> endobj -769 0 obj +768 0 obj << /Title <feff0032002e00310036002e0032002e00200052006500730070006f006e007300650073> -/Parent 767 0 R +/Parent 766 0 R /Count 0 -/Next 770 0 R -/Prev 768 0 R +/Next 769 0 R +/Prev 767 0 R /Dest [110 0 R /XYZ 0 355.44000000000034 null] >> endobj -770 0 obj +769 0 obj << /Title <feff0032002e00310036002e0033002e002000500072006f00640075006300650073> -/Parent 767 0 R +/Parent 766 0 R /Count 0 -/Prev 769 0 R +/Prev 768 0 R /Dest [110 0 R /XYZ 0 250.32000000000028 null] >> endobj -771 0 obj +770 0 obj << /Title <feff0032002e00310037002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004d006900630072006f00530065007200760069006300650050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006d006900630072006f00530065007200760069006300650050006f006c006900630079004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 772 0 R -/Last 774 0 R -/Next 775 0 R -/Prev 767 0 R +/First 771 0 R +/Last 773 0 R +/Next 774 0 R +/Prev 766 0 R /Dest [110 0 R /XYZ 0 194.04000000000025 null] >> endobj -772 0 obj +771 0 obj << /Title <feff0032002e00310037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 771 0 R +/Parent 770 0 R /Count 0 -/Next 773 0 R +/Next 772 0 R /Dest [110 0 R /XYZ 0 97.80000000000024 null] >> endobj -773 0 obj +772 0 obj << /Title <feff0032002e00310037002e0032002e00200052006500730070006f006e007300650073> -/Parent 771 0 R +/Parent 770 0 R /Count 0 -/Next 774 0 R -/Prev 772 0 R -/Dest [124 0 R /XYZ 0 645.5999999999999 null] +/Next 773 0 R +/Prev 771 0 R +/Dest [123 0 R /XYZ 0 645.5999999999999 null] >> endobj -774 0 obj +773 0 obj << /Title <feff0032002e00310037002e0033002e002000500072006f00640075006300650073> -/Parent 771 0 R +/Parent 770 0 R /Count 0 -/Prev 773 0 R -/Dest [124 0 R /XYZ 0 540.48 null] +/Prev 772 0 R +/Dest [123 0 R /XYZ 0 540.48 null] >> endobj -775 0 obj +774 0 obj << /Title <feff0032002e00310038002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004f007000650072006100740069006f006e0061006c0050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006f007000650072006100740069006f006e0061006c0050006f006c006900630079004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 776 0 R -/Last 778 0 R -/Next 779 0 R -/Prev 771 0 R -/Dest [124 0 R /XYZ 0 484.20000000000016 null] +/First 775 0 R +/Last 777 0 R +/Next 778 0 R +/Prev 770 0 R +/Dest [123 0 R /XYZ 0 484.20000000000016 null] >> endobj -776 0 obj +775 0 obj << /Title <feff0032002e00310038002e0031002e00200050006100720061006d00650074006500720073> -/Parent 775 0 R +/Parent 774 0 R /Count 0 -/Next 777 0 R -/Dest [124 0 R /XYZ 0 387.96000000000015 null] +/Next 776 0 R +/Dest [123 0 R /XYZ 0 387.96000000000015 null] >> endobj -777 0 obj +776 0 obj << /Title <feff0032002e00310038002e0032002e00200052006500730070006f006e007300650073> -/Parent 775 0 R +/Parent 774 0 R /Count 0 -/Next 778 0 R -/Prev 776 0 R -/Dest [124 0 R /XYZ 0 245.28000000000014 null] +/Next 777 0 R +/Prev 775 0 R +/Dest [123 0 R /XYZ 0 245.28000000000014 null] >> endobj -778 0 obj +777 0 obj << /Title <feff0032002e00310038002e0033002e002000500072006f00640075006300650073> -/Parent 775 0 R +/Parent 774 0 R /Count 0 -/Prev 777 0 R -/Dest [124 0 R /XYZ 0 140.1600000000001 null] +/Prev 776 0 R +/Dest [123 0 R /XYZ 0 140.1600000000001 null] >> endobj -779 0 obj +778 0 obj << /Title <feff0032002e00310039002e00200050005500540020002f00760032002f006c006f006f0070002f00720065006d006f00760065004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 780 0 R -/Last 782 0 R -/Next 783 0 R -/Prev 775 0 R -/Dest [134 0 R /XYZ 0 792.0 null] +/First 779 0 R +/Last 781 0 R +/Next 782 0 R +/Prev 774 0 R +/Dest [133 0 R /XYZ 0 792.0 null] >> endobj -780 0 obj +779 0 obj << /Title <feff0032002e00310039002e0031002e00200050006100720061006d00650074006500720073> -/Parent 779 0 R +/Parent 778 0 R /Count 0 -/Next 781 0 R -/Dest [134 0 R /XYZ 0 662.1600000000001 null] +/Next 780 0 R +/Dest [133 0 R /XYZ 0 662.1600000000001 null] >> endobj -781 0 obj +780 0 obj << /Title <feff0032002e00310039002e0032002e00200052006500730070006f006e007300650073> -/Parent 779 0 R +/Parent 778 0 R /Count 0 -/Next 782 0 R -/Prev 780 0 R -/Dest [134 0 R /XYZ 0 444.3600000000002 null] +/Next 781 0 R +/Prev 779 0 R +/Dest [133 0 R /XYZ 0 444.3600000000002 null] >> endobj -782 0 obj +781 0 obj << /Title <feff0032002e00310039002e0033002e002000500072006f00640075006300650073> -/Parent 779 0 R +/Parent 778 0 R /Count 0 -/Prev 781 0 R -/Dest [134 0 R /XYZ 0 339.2400000000001 null] +/Prev 780 0 R +/Dest [133 0 R /XYZ 0 339.2400000000001 null] >> endobj -783 0 obj +782 0 obj << /Title <feff0032002e00320030002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500730074006100720074002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 784 0 R -/Last 786 0 R -/Next 787 0 R -/Prev 779 0 R -/Dest [134 0 R /XYZ 0 282.9600000000001 null] +/First 783 0 R +/Last 785 0 R +/Next 786 0 R +/Prev 778 0 R +/Dest [133 0 R /XYZ 0 282.9600000000001 null] >> endobj -784 0 obj +783 0 obj << /Title <feff0032002e00320030002e0031002e00200050006100720061006d00650074006500720073> -/Parent 783 0 R +/Parent 782 0 R /Count 0 -/Next 785 0 R -/Dest [134 0 R /XYZ 0 242.8800000000001 null] +/Next 784 0 R +/Dest [133 0 R /XYZ 0 242.8800000000001 null] >> endobj -785 0 obj +784 0 obj << /Title <feff0032002e00320030002e0032002e00200052006500730070006f006e007300650073> -/Parent 783 0 R +/Parent 782 0 R /Count 0 -/Next 786 0 R -/Prev 784 0 R -/Dest [134 0 R /XYZ 0 137.76000000000008 null] +/Next 785 0 R +/Prev 783 0 R +/Dest [133 0 R /XYZ 0 137.76000000000008 null] >> endobj -786 0 obj +785 0 obj << /Title <feff0032002e00320030002e0033002e002000500072006f00640075006300650073> -/Parent 783 0 R +/Parent 782 0 R /Count 0 -/Prev 785 0 R +/Prev 784 0 R /Dest [144 0 R /XYZ 0 683.1600000000001 null] >> endobj -787 0 obj +786 0 obj << /Title <feff0032002e00320031002e00200050005500540020002f00760032002f006c006f006f0070002f00730074006f0070002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 788 0 R -/Last 790 0 R -/Next 791 0 R -/Prev 783 0 R +/First 787 0 R +/Last 789 0 R +/Next 790 0 R +/Prev 782 0 R /Dest [144 0 R /XYZ 0 626.8800000000002 null] >> endobj -788 0 obj +787 0 obj << /Title <feff0032002e00320031002e0031002e00200050006100720061006d00650074006500720073> -/Parent 787 0 R +/Parent 786 0 R /Count 0 -/Next 789 0 R +/Next 788 0 R /Dest [144 0 R /XYZ 0 586.8000000000003 null] >> endobj -789 0 obj +788 0 obj << /Title <feff0032002e00320031002e0032002e00200052006500730070006f006e007300650073> -/Parent 787 0 R +/Parent 786 0 R /Count 0 -/Next 790 0 R -/Prev 788 0 R +/Next 789 0 R +/Prev 787 0 R /Dest [144 0 R /XYZ 0 481.68000000000046 null] >> endobj -790 0 obj +789 0 obj << /Title <feff0032002e00320031002e0033002e002000500072006f00640075006300650073> -/Parent 787 0 R +/Parent 786 0 R /Count 0 -/Prev 789 0 R +/Prev 788 0 R /Dest [144 0 R /XYZ 0 376.5600000000004 null] >> endobj -791 0 obj +790 0 obj << /Title <feff0032002e00320032002e00200050005500540020002f00760032002f006c006f006f0070002f007300750062006d00690074002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 792 0 R -/Last 794 0 R -/Next 795 0 R -/Prev 787 0 R +/First 791 0 R +/Last 793 0 R +/Next 794 0 R +/Prev 786 0 R /Dest [144 0 R /XYZ 0 320.28000000000037 null] >> endobj -792 0 obj +791 0 obj << /Title <feff0032002e00320032002e0031002e00200050006100720061006d00650074006500720073> -/Parent 791 0 R +/Parent 790 0 R /Count 0 -/Next 793 0 R +/Next 792 0 R /Dest [144 0 R /XYZ 0 280.20000000000033 null] >> endobj -793 0 obj +792 0 obj << /Title <feff0032002e00320032002e0032002e00200052006500730070006f006e007300650073> -/Parent 791 0 R +/Parent 790 0 R /Count 0 -/Next 794 0 R -/Prev 792 0 R +/Next 793 0 R +/Prev 791 0 R /Dest [144 0 R /XYZ 0 175.08000000000033 null] >> endobj -794 0 obj +793 0 obj << /Title <feff0032002e00320032002e0033002e002000500072006f00640075006300650073> -/Parent 791 0 R +/Parent 790 0 R /Count 0 -/Prev 793 0 R -/Dest [159 0 R /XYZ 0 792.0 null] +/Prev 792 0 R +/Dest [160 0 R /XYZ 0 792.0 null] >> endobj -795 0 obj +794 0 obj << /Title <feff0032002e00320033002e00200047004500540020002f00760032002f006c006f006f0070002f0073007600670052006500700072006500730065006e0074006100740069006f006e002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 796 0 R -/Last 798 0 R -/Next 799 0 R -/Prev 791 0 R -/Dest [159 0 R /XYZ 0 702.1200000000001 null] +/First 795 0 R +/Last 797 0 R +/Next 798 0 R +/Prev 790 0 R +/Dest [160 0 R /XYZ 0 702.1200000000001 null] >> endobj -796 0 obj +795 0 obj << /Title <feff0032002e00320033002e0031002e00200050006100720061006d00650074006500720073> -/Parent 795 0 R +/Parent 794 0 R /Count 0 -/Next 797 0 R -/Dest [159 0 R /XYZ 0 662.0400000000002 null] +/Next 796 0 R +/Dest [160 0 R /XYZ 0 662.0400000000002 null] >> endobj -797 0 obj +796 0 obj << /Title <feff0032002e00320033002e0032002e00200052006500730070006f006e007300650073> -/Parent 795 0 R +/Parent 794 0 R /Count 0 -/Next 798 0 R -/Prev 796 0 R -/Dest [159 0 R /XYZ 0 556.9200000000003 null] +/Next 797 0 R +/Prev 795 0 R +/Dest [160 0 R /XYZ 0 556.9200000000003 null] >> endobj -798 0 obj +797 0 obj << /Title <feff0032002e00320033002e0033002e002000500072006f00640075006300650073> -/Parent 795 0 R +/Parent 794 0 R /Count 0 -/Prev 797 0 R -/Dest [159 0 R /XYZ 0 451.8000000000004 null] +/Prev 796 0 R +/Dest [160 0 R /XYZ 0 451.8000000000004 null] >> endobj -799 0 obj +798 0 obj << /Title <feff0032002e00320034002e00200050005500540020002f00760032002f006c006f006f0070002f0075006e006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 800 0 R -/Last 802 0 R -/Next 803 0 R -/Prev 795 0 R -/Dest [159 0 R /XYZ 0 395.5200000000004 null] +/First 799 0 R +/Last 801 0 R +/Next 802 0 R +/Prev 794 0 R +/Dest [160 0 R /XYZ 0 395.5200000000004 null] >> endobj -800 0 obj +799 0 obj << /Title <feff0032002e00320034002e0031002e00200050006100720061006d00650074006500720073> -/Parent 799 0 R +/Parent 798 0 R /Count 0 -/Next 801 0 R -/Dest [159 0 R /XYZ 0 355.44000000000034 null] +/Next 800 0 R +/Dest [160 0 R /XYZ 0 355.44000000000034 null] >> endobj -801 0 obj +800 0 obj << /Title <feff0032002e00320034002e0032002e00200052006500730070006f006e007300650073> -/Parent 799 0 R +/Parent 798 0 R /Count 0 -/Next 802 0 R -/Prev 800 0 R -/Dest [159 0 R /XYZ 0 250.32000000000033 null] +/Next 801 0 R +/Prev 799 0 R +/Dest [160 0 R /XYZ 0 250.32000000000033 null] >> endobj -802 0 obj +801 0 obj << /Title <feff0032002e00320034002e0033002e002000500072006f00640075006300650073> -/Parent 799 0 R +/Parent 798 0 R /Count 0 -/Prev 801 0 R -/Dest [159 0 R /XYZ 0 145.2000000000003 null] +/Prev 800 0 R +/Dest [160 0 R /XYZ 0 145.2000000000003 null] >> endobj -803 0 obj +802 0 obj << /Title <feff0032002e00320035002e00200050004f005300540020002f00760032002f006c006f006f0070002f0075007000640061007400650047006c006f00620061006c00500072006f0070006500720074006900650073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 4 -/First 804 0 R -/Last 807 0 R -/Next 808 0 R -/Prev 799 0 R -/Dest [171 0 R /XYZ 0 792.0 null] +/First 803 0 R +/Last 806 0 R +/Next 807 0 R +/Prev 798 0 R +/Dest [172 0 R /XYZ 0 792.0 null] >> endobj -804 0 obj +803 0 obj << /Title <feff0032002e00320035002e0031002e00200050006100720061006d00650074006500720073> -/Parent 803 0 R +/Parent 802 0 R +/Count 0 +/Next 804 0 R +/Dest [172 0 R /XYZ 0 718.32 null] +>> +endobj +804 0 obj +<< /Title <feff0032002e00320035002e0032002e00200052006500730070006f006e007300650073> +/Parent 802 0 R /Count 0 /Next 805 0 R -/Dest [171 0 R /XYZ 0 718.32 null] +/Prev 803 0 R +/Dest [172 0 R /XYZ 0 575.6400000000001 null] >> endobj 805 0 obj -<< /Title <feff0032002e00320035002e0032002e00200052006500730070006f006e007300650073> -/Parent 803 0 R +<< /Title <feff0032002e00320035002e0033002e00200043006f006e00730075006d00650073> +/Parent 802 0 R /Count 0 /Next 806 0 R /Prev 804 0 R -/Dest [171 0 R /XYZ 0 575.6400000000001 null] +/Dest [172 0 R /XYZ 0 470.5200000000002 null] >> endobj 806 0 obj -<< /Title <feff0032002e00320035002e0033002e00200043006f006e00730075006d00650073> -/Parent 803 0 R +<< /Title <feff0032002e00320035002e0034002e002000500072006f00640075006300650073> +/Parent 802 0 R /Count 0 -/Next 807 0 R /Prev 805 0 R -/Dest [171 0 R /XYZ 0 470.5200000000002 null] +/Dest [172 0 R /XYZ 0 414.2400000000002 null] >> endobj 807 0 obj -<< /Title <feff0032002e00320035002e0034002e002000500072006f00640075006300650073> -/Parent 803 0 R -/Count 0 -/Prev 806 0 R -/Dest [171 0 R /XYZ 0 414.2400000000002 null] +<< /Title <feff0032002e00320036002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d> +/Parent 709 0 R +/Count 4 +/First 808 0 R +/Last 811 0 R +/Next 812 0 R +/Prev 802 0 R +/Dest [172 0 R /XYZ 0 357.96000000000015 null] >> endobj 808 0 obj -<< /Title <feff0032002e00320036002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R -/Count 4 -/First 809 0 R -/Last 812 0 R -/Next 813 0 R -/Prev 803 0 R -/Dest [171 0 R /XYZ 0 357.96000000000015 null] +<< /Title <feff0032002e00320036002e0031002e00200050006100720061006d00650074006500720073> +/Parent 807 0 R +/Count 0 +/Next 809 0 R +/Dest [172 0 R /XYZ 0 289.8000000000001 null] >> endobj 809 0 obj -<< /Title <feff0032002e00320036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 808 0 R +<< /Title <feff0032002e00320036002e0032002e00200052006500730070006f006e007300650073> +/Parent 807 0 R /Count 0 /Next 810 0 R -/Dest [171 0 R /XYZ 0 289.8000000000001 null] +/Prev 808 0 R +/Dest [172 0 R /XYZ 0 147.1200000000001 null] >> endobj 810 0 obj -<< /Title <feff0032002e00320036002e0032002e00200052006500730070006f006e007300650073> -/Parent 808 0 R +<< /Title <feff0032002e00320036002e0033002e00200043006f006e00730075006d00650073> +/Parent 807 0 R /Count 0 /Next 811 0 R /Prev 809 0 R -/Dest [171 0 R /XYZ 0 147.1200000000001 null] +/Dest [186 0 R /XYZ 0 792.0 null] >> endobj 811 0 obj -<< /Title <feff0032002e00320036002e0033002e00200043006f006e00730075006d00650073> -/Parent 808 0 R +<< /Title <feff0032002e00320036002e0034002e002000500072006f00640075006300650073> +/Parent 807 0 R /Count 0 -/Next 812 0 R /Prev 810 0 R -/Dest [187 0 R /XYZ 0 792.0 null] +/Dest [186 0 R /XYZ 0 702.1200000000001 null] >> endobj 812 0 obj -<< /Title <feff0032002e00320036002e0034002e002000500072006f00640075006300650073> -/Parent 808 0 R -/Count 0 -/Prev 811 0 R -/Dest [187 0 R /XYZ 0 702.1200000000001 null] +<< /Title <feff0032002e00320037002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d> +/Parent 709 0 R +/Count 4 +/First 813 0 R +/Last 816 0 R +/Next 817 0 R +/Prev 807 0 R +/Dest [186 0 R /XYZ 0 645.8400000000003 null] >> endobj 813 0 obj -<< /Title <feff0032002e00320037002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R -/Count 4 -/First 814 0 R -/Last 817 0 R -/Next 818 0 R -/Prev 808 0 R -/Dest [187 0 R /XYZ 0 645.8400000000003 null] +<< /Title <feff0032002e00320037002e0031002e00200050006100720061006d00650074006500720073> +/Parent 812 0 R +/Count 0 +/Next 814 0 R +/Dest [186 0 R /XYZ 0 577.6800000000004 null] >> endobj 814 0 obj -<< /Title <feff0032002e00320037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 813 0 R +<< /Title <feff0032002e00320037002e0032002e00200052006500730070006f006e007300650073> +/Parent 812 0 R /Count 0 /Next 815 0 R -/Dest [187 0 R /XYZ 0 577.6800000000004 null] +/Prev 813 0 R +/Dest [186 0 R /XYZ 0 435.0000000000005 null] >> endobj 815 0 obj -<< /Title <feff0032002e00320037002e0032002e00200052006500730070006f006e007300650073> -/Parent 813 0 R +<< /Title <feff0032002e00320037002e0033002e00200043006f006e00730075006d00650073> +/Parent 812 0 R /Count 0 /Next 816 0 R /Prev 814 0 R -/Dest [187 0 R /XYZ 0 435.0000000000005 null] +/Dest [186 0 R /XYZ 0 329.88000000000045 null] >> endobj 816 0 obj -<< /Title <feff0032002e00320037002e0033002e00200043006f006e00730075006d00650073> -/Parent 813 0 R +<< /Title <feff0032002e00320037002e0034002e002000500072006f00640075006300650073> +/Parent 812 0 R /Count 0 -/Next 817 0 R /Prev 815 0 R -/Dest [187 0 R /XYZ 0 329.88000000000045 null] +/Dest [186 0 R /XYZ 0 273.6000000000004 null] >> endobj 817 0 obj -<< /Title <feff0032002e00320037002e0034002e002000500072006f00640075006300650073> -/Parent 813 0 R -/Count 0 -/Prev 816 0 R -/Dest [187 0 R /XYZ 0 273.6000000000004 null] +<< /Title <feff0032002e00320038002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d> +/Parent 709 0 R +/Count 3 +/First 818 0 R +/Last 820 0 R +/Next 821 0 R +/Prev 812 0 R +/Dest [186 0 R /XYZ 0 217.32000000000042 null] >> endobj 818 0 obj -<< /Title <feff0032002e00320038002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d> -/Parent 710 0 R -/Count 3 -/First 819 0 R -/Last 821 0 R -/Next 822 0 R -/Prev 813 0 R -/Dest [187 0 R /XYZ 0 217.32000000000042 null] +<< /Title <feff0032002e00320038002e0031002e00200050006100720061006d00650074006500720073> +/Parent 817 0 R +/Count 0 +/Next 819 0 R +/Dest [186 0 R /XYZ 0 177.2400000000004 null] >> endobj 819 0 obj -<< /Title <feff0032002e00320038002e0031002e00200050006100720061006d00650074006500720073> -/Parent 818 0 R +<< /Title <feff0032002e00320038002e0032002e00200052006500730070006f006e007300650073> +/Parent 817 0 R /Count 0 /Next 820 0 R -/Dest [187 0 R /XYZ 0 177.2400000000004 null] +/Prev 818 0 R +/Dest [199 0 R /XYZ 0 792.0 null] >> endobj 820 0 obj -<< /Title <feff0032002e00320038002e0032002e00200052006500730070006f006e007300650073> -/Parent 818 0 R +<< /Title <feff0032002e00320038002e0033002e002000500072006f00640075006300650073> +/Parent 817 0 R /Count 0 -/Next 821 0 R /Prev 819 0 R -/Dest [200 0 R /XYZ 0 792.0 null] +/Dest [199 0 R /XYZ 0 653.2800000000002 null] >> endobj 821 0 obj -<< /Title <feff0032002e00320038002e0033002e002000500072006f00640075006300650073> -/Parent 818 0 R -/Count 0 -/Prev 820 0 R -/Dest [200 0 R /XYZ 0 653.2800000000002 null] +<< /Title <feff0032002e00320039002e00200050004f005300540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073> +/Parent 709 0 R +/Count 4 +/First 822 0 R +/Last 825 0 R +/Next 826 0 R +/Prev 817 0 R +/Dest [199 0 R /XYZ 0 597.0000000000003 null] >> endobj 822 0 obj -<< /Title <feff0032002e00320039002e00200050004f005300540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073> -/Parent 710 0 R -/Count 4 -/First 823 0 R -/Last 826 0 R -/Next 827 0 R -/Prev 818 0 R -/Dest [200 0 R /XYZ 0 597.0000000000003 null] +<< /Title <feff0032002e00320039002e0031002e00200050006100720061006d00650074006500720073> +/Parent 821 0 R +/Count 0 +/Next 823 0 R +/Dest [199 0 R /XYZ 0 556.9200000000004 null] >> endobj 823 0 obj -<< /Title <feff0032002e00320039002e0031002e00200050006100720061006d00650074006500720073> -/Parent 822 0 R +<< /Title <feff0032002e00320039002e0032002e00200052006500730070006f006e007300650073> +/Parent 821 0 R /Count 0 /Next 824 0 R -/Dest [200 0 R /XYZ 0 556.9200000000004 null] +/Prev 822 0 R +/Dest [199 0 R /XYZ 0 451.8000000000006 null] >> endobj 824 0 obj -<< /Title <feff0032002e00320039002e0032002e00200052006500730070006f006e007300650073> -/Parent 822 0 R +<< /Title <feff0032002e00320039002e0033002e00200043006f006e00730075006d00650073> +/Parent 821 0 R /Count 0 /Next 825 0 R /Prev 823 0 R -/Dest [200 0 R /XYZ 0 451.8000000000006 null] +/Dest [199 0 R /XYZ 0 346.6800000000005 null] >> endobj 825 0 obj -<< /Title <feff0032002e00320039002e0033002e00200043006f006e00730075006d00650073> -/Parent 822 0 R +<< /Title <feff0032002e00320039002e0034002e002000500072006f00640075006300650073> +/Parent 821 0 R /Count 0 -/Next 826 0 R /Prev 824 0 R -/Dest [200 0 R /XYZ 0 346.6800000000005 null] +/Dest [199 0 R /XYZ 0 290.4000000000005 null] >> endobj 826 0 obj -<< /Title <feff0032002e00320039002e0034002e002000500072006f00640075006300650073> -/Parent 822 0 R -/Count 0 -/Prev 825 0 R -/Dest [200 0 R /XYZ 0 290.4000000000005 null] ->> -endobj -827 0 obj << /Title <feff0032002e00330030002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 828 0 R -/Last 829 0 R -/Next 830 0 R -/Prev 822 0 R -/Dest [200 0 R /XYZ 0 234.12000000000046 null] +/First 827 0 R +/Last 828 0 R +/Next 829 0 R +/Prev 821 0 R +/Dest [199 0 R /XYZ 0 234.12000000000046 null] >> endobj -828 0 obj +827 0 obj << /Title <feff0032002e00330030002e0031002e00200052006500730070006f006e007300650073> -/Parent 827 0 R +/Parent 826 0 R /Count 0 -/Next 829 0 R -/Dest [200 0 R /XYZ 0 194.04000000000045 null] +/Next 828 0 R +/Dest [199 0 R /XYZ 0 194.04000000000045 null] >> endobj -829 0 obj +828 0 obj << /Title <feff0032002e00330030002e0032002e002000500072006f00640075006300650073> -/Parent 827 0 R +/Parent 826 0 R /Count 0 -/Prev 828 0 R -/Dest [214 0 R /XYZ 0 792.0 null] +/Prev 827 0 R +/Dest [213 0 R /XYZ 0 792.0 null] >> endobj -830 0 obj +829 0 obj << /Title <feff0032002e00330031002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f00790061006d006c002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 831 0 R -/Last 833 0 R -/Next 834 0 R -/Prev 827 0 R -/Dest [214 0 R /XYZ 0 702.1200000000001 null] +/First 830 0 R +/Last 832 0 R +/Next 833 0 R +/Prev 826 0 R +/Dest [213 0 R /XYZ 0 702.1200000000001 null] >> endobj -831 0 obj +830 0 obj << /Title <feff0032002e00330031002e0031002e00200050006100720061006d00650074006500720073> -/Parent 830 0 R +/Parent 829 0 R /Count 0 -/Next 832 0 R -/Dest [214 0 R /XYZ 0 605.8800000000002 null] +/Next 831 0 R +/Dest [213 0 R /XYZ 0 605.8800000000002 null] >> endobj -832 0 obj +831 0 obj << /Title <feff0032002e00330031002e0032002e00200052006500730070006f006e007300650073> -/Parent 830 0 R +/Parent 829 0 R /Count 0 -/Next 833 0 R -/Prev 831 0 R -/Dest [214 0 R /XYZ 0 463.20000000000033 null] +/Next 832 0 R +/Prev 830 0 R +/Dest [213 0 R /XYZ 0 463.20000000000033 null] >> endobj -833 0 obj +832 0 obj << /Title <feff0032002e00330031002e0033002e002000500072006f00640075006300650073> -/Parent 830 0 R +/Parent 829 0 R /Count 0 -/Prev 832 0 R -/Dest [214 0 R /XYZ 0 358.08000000000027 null] +/Prev 831 0 R +/Dest [213 0 R /XYZ 0 358.08000000000027 null] >> endobj -834 0 obj +833 0 obj << /Title <feff0032002e00330032002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 835 0 R -/Last 837 0 R -/Next 838 0 R -/Prev 830 0 R -/Dest [214 0 R /XYZ 0 301.80000000000024 null] +/First 834 0 R +/Last 836 0 R +/Next 837 0 R +/Prev 829 0 R +/Dest [213 0 R /XYZ 0 301.80000000000024 null] >> endobj -835 0 obj +834 0 obj << /Title <feff0032002e00330032002e0031002e00200050006100720061006d00650074006500720073> -/Parent 834 0 R +/Parent 833 0 R /Count 0 -/Next 836 0 R -/Dest [214 0 R /XYZ 0 205.56000000000026 null] +/Next 835 0 R +/Dest [213 0 R /XYZ 0 205.56000000000026 null] >> endobj -836 0 obj +835 0 obj << /Title <feff0032002e00330032002e0032002e00200052006500730070006f006e007300650073> -/Parent 834 0 R +/Parent 833 0 R /Count 0 -/Next 837 0 R -/Prev 835 0 R -/Dest [224 0 R /XYZ 0 792.0 null] +/Next 836 0 R +/Prev 834 0 R +/Dest [225 0 R /XYZ 0 792.0 null] >> endobj -837 0 obj +836 0 obj << /Title <feff0032002e00330032002e0033002e002000500072006f00640075006300650073> -/Parent 834 0 R +/Parent 833 0 R /Count 0 -/Prev 836 0 R -/Dest [224 0 R /XYZ 0 653.2800000000002 null] +/Prev 835 0 R +/Dest [225 0 R /XYZ 0 653.2800000000002 null] >> endobj -838 0 obj +837 0 obj << /Title <feff0032002e00330033002e00200050005500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d> -/Parent 710 0 R +/Parent 709 0 R /Count 4 -/First 839 0 R -/Last 842 0 R -/Next 843 0 R -/Prev 834 0 R -/Dest [224 0 R /XYZ 0 597.0000000000003 null] +/First 838 0 R +/Last 841 0 R +/Next 842 0 R +/Prev 833 0 R +/Dest [225 0 R /XYZ 0 597.0000000000003 null] >> endobj -839 0 obj +838 0 obj << /Title <feff0032002e00330033002e0031002e00200050006100720061006d00650074006500720073> -/Parent 838 0 R +/Parent 837 0 R +/Count 0 +/Next 839 0 R +/Dest [225 0 R /XYZ 0 500.7600000000004 null] +>> +endobj +839 0 obj +<< /Title <feff0032002e00330033002e0032002e00200052006500730070006f006e007300650073> +/Parent 837 0 R /Count 0 /Next 840 0 R -/Dest [224 0 R /XYZ 0 500.7600000000004 null] +/Prev 838 0 R +/Dest [225 0 R /XYZ 0 320.5200000000004 null] >> endobj 840 0 obj -<< /Title <feff0032002e00330033002e0032002e00200052006500730070006f006e007300650073> -/Parent 838 0 R +<< /Title <feff0032002e00330033002e0033002e00200043006f006e00730075006d00650073> +/Parent 837 0 R /Count 0 /Next 841 0 R /Prev 839 0 R -/Dest [224 0 R /XYZ 0 320.5200000000004 null] +/Dest [225 0 R /XYZ 0 215.40000000000035 null] >> endobj 841 0 obj -<< /Title <feff0032002e00330033002e0033002e00200043006f006e00730075006d00650073> -/Parent 838 0 R +<< /Title <feff0032002e00330033002e0034002e002000500072006f00640075006300650073> +/Parent 837 0 R /Count 0 -/Next 842 0 R /Prev 840 0 R -/Dest [224 0 R /XYZ 0 215.40000000000035 null] +/Dest [225 0 R /XYZ 0 159.12000000000032 null] >> endobj 842 0 obj -<< /Title <feff0032002e00330033002e0034002e002000500072006f00640075006300650073> -/Parent 838 0 R -/Count 0 -/Prev 841 0 R -/Dest [224 0 R /XYZ 0 159.12000000000032 null] ->> -endobj -843 0 obj << /Title <feff0032002e00330034002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 844 0 R -/Last 845 0 R -/Next 846 0 R -/Prev 838 0 R -/Dest [224 0 R /XYZ 0 102.84000000000029 null] +/First 843 0 R +/Last 844 0 R +/Next 845 0 R +/Prev 837 0 R +/Dest [225 0 R /XYZ 0 102.84000000000029 null] >> endobj -844 0 obj +843 0 obj << /Title <feff0032002e00330034002e0031002e00200052006500730070006f006e007300650073> -/Parent 843 0 R +/Parent 842 0 R /Count 0 -/Next 845 0 R -/Dest [237 0 R /XYZ 0 792.0 null] +/Next 844 0 R +/Dest [238 0 R /XYZ 0 792.0 null] >> endobj -845 0 obj +844 0 obj << /Title <feff0032002e00330034002e0032002e002000500072006f00640075006300650073> -/Parent 843 0 R +/Parent 842 0 R /Count 0 -/Prev 844 0 R -/Dest [237 0 R /XYZ 0 653.2800000000002 null] +/Prev 843 0 R +/Dest [238 0 R /XYZ 0 653.2800000000002 null] >> endobj -846 0 obj +845 0 obj << /Title <feff0032002e00330035002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f006e0061006d00650073> -/Parent 710 0 R +/Parent 709 0 R /Count 2 -/First 847 0 R -/Last 848 0 R -/Next 849 0 R -/Prev 843 0 R -/Dest [237 0 R /XYZ 0 597.0000000000003 null] +/First 846 0 R +/Last 847 0 R +/Next 848 0 R +/Prev 842 0 R +/Dest [238 0 R /XYZ 0 597.0000000000003 null] >> endobj -847 0 obj +846 0 obj << /Title <feff0032002e00330035002e0031002e00200052006500730070006f006e007300650073> -/Parent 846 0 R +/Parent 845 0 R /Count 0 -/Next 848 0 R -/Dest [237 0 R /XYZ 0 556.9200000000004 null] +/Next 847 0 R +/Dest [238 0 R /XYZ 0 556.9200000000004 null] >> endobj -848 0 obj +847 0 obj << /Title <feff0032002e00330035002e0032002e002000500072006f00640075006300650073> -/Parent 846 0 R +/Parent 845 0 R /Count 0 -/Prev 847 0 R -/Dest [237 0 R /XYZ 0 451.8000000000005 null] +/Prev 846 0 R +/Dest [238 0 R /XYZ 0 451.8000000000005 null] >> endobj -849 0 obj +848 0 obj << /Title <feff0032002e00330036002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 850 0 R -/Last 852 0 R -/Next 853 0 R -/Prev 846 0 R -/Dest [237 0 R /XYZ 0 395.5200000000005 null] +/First 849 0 R +/Last 851 0 R +/Next 852 0 R +/Prev 845 0 R +/Dest [238 0 R /XYZ 0 395.5200000000005 null] >> endobj -850 0 obj +849 0 obj << /Title <feff0032002e00330036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 849 0 R +/Parent 848 0 R /Count 0 -/Next 851 0 R -/Dest [237 0 R /XYZ 0 355.44000000000045 null] +/Next 850 0 R +/Dest [238 0 R /XYZ 0 355.44000000000045 null] >> endobj -851 0 obj +850 0 obj << /Title <feff0032002e00330036002e0032002e00200052006500730070006f006e007300650073> -/Parent 849 0 R +/Parent 848 0 R /Count 0 -/Next 852 0 R -/Prev 850 0 R -/Dest [237 0 R /XYZ 0 250.32000000000045 null] +/Next 851 0 R +/Prev 849 0 R +/Dest [238 0 R /XYZ 0 250.32000000000045 null] >> endobj -852 0 obj +851 0 obj << /Title <feff0032002e00330036002e0033002e002000500072006f00640075006300650073> -/Parent 849 0 R +/Parent 848 0 R /Count 0 -/Prev 851 0 R -/Dest [237 0 R /XYZ 0 145.20000000000041 null] +/Prev 850 0 R +/Dest [238 0 R /XYZ 0 145.20000000000041 null] >> endobj -853 0 obj +852 0 obj << /Title <feff0032002e00330037002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d002f0073007600670052006500700072006500730065006e0074006100740069006f006e> -/Parent 710 0 R +/Parent 709 0 R /Count 3 -/First 854 0 R -/Last 856 0 R -/Prev 849 0 R +/First 853 0 R +/Last 855 0 R +/Prev 848 0 R /Dest [251 0 R /XYZ 0 792.0 null] >> endobj -854 0 obj +853 0 obj << /Title <feff0032002e00330037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 853 0 R +/Parent 852 0 R /Count 0 -/Next 855 0 R +/Next 854 0 R /Dest [251 0 R /XYZ 0 690.2400000000001 null] >> endobj -855 0 obj +854 0 obj << /Title <feff0032002e00330037002e0032002e00200052006500730070006f006e007300650073> -/Parent 853 0 R +/Parent 852 0 R /Count 0 -/Next 856 0 R -/Prev 854 0 R +/Next 855 0 R +/Prev 853 0 R /Dest [251 0 R /XYZ 0 585.1200000000003 null] >> endobj -856 0 obj +855 0 obj << /Title <feff0032002e00330037002e0033002e002000500072006f00640075006300650073> -/Parent 853 0 R +/Parent 852 0 R /Count 0 -/Prev 855 0 R +/Prev 854 0 R /Dest [251 0 R /XYZ 0 480.00000000000045 null] >> endobj -857 0 obj +856 0 obj << /Title <feff004300680061007000740065007200200033002e00200044006500660069006e006900740069006f006e0073> -/Parent 704 0 R +/Parent 703 0 R /Count 20 -/First 858 0 R -/Last 877 0 R -/Prev 710 0 R +/First 857 0 R +/Last 876 0 R +/Prev 709 0 R /Dest [257 0 R /XYZ 0 792.0 null] >> endobj -858 0 obj +857 0 obj << /Title <feff0033002e0031002e00200043006c0061006d00700049006e0066006f0072006d006100740069006f006e> -/Parent 857 0 R +/Parent 856 0 R /Count 0 -/Next 859 0 R +/Next 858 0 R /Dest [257 0 R /XYZ 0 712.0799999999999 null] >> endobj -859 0 obj +858 0 obj << /Title <feff0033002e0032002e00200043006c00640073004800650061006c007400680043006800650063006b> -/Parent 857 0 R +/Parent 856 0 R +/Count 0 +/Next 859 0 R +/Prev 857 0 R +/Dest [257 0 R /XYZ 0 524.04 null] +>> +endobj +859 0 obj +<< /Title <feff0033002e0033002e002000440069006300740069006f006e006100720079> +/Parent 856 0 R /Count 0 /Next 860 0 R /Prev 858 0 R -/Dest [257 0 R /XYZ 0 524.04 null] +/Dest [257 0 R /XYZ 0 335.99999999999994 null] >> endobj 860 0 obj -<< /Title <feff0033002e0033002e002000440069006300740069006f006e006100720079> -/Parent 857 0 R +<< /Title <feff0033002e0034002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074> +/Parent 856 0 R /Count 0 /Next 861 0 R /Prev 859 0 R -/Dest [257 0 R /XYZ 0 335.99999999999994 null] +/Dest [264 0 R /XYZ 0 608.04 null] >> endobj 861 0 obj -<< /Title <feff0033002e0034002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074> -/Parent 857 0 R +<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074> +/Parent 856 0 R /Count 0 /Next 862 0 R /Prev 860 0 R -/Dest [264 0 R /XYZ 0 608.04 null] +/Dest [264 0 R /XYZ 0 157.07999999999998 null] >> endobj 862 0 obj -<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074> -/Parent 857 0 R +<< /Title <feff0033002e0036002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065> +/Parent 856 0 R /Count 0 /Next 863 0 R /Prev 861 0 R -/Dest [264 0 R /XYZ 0 157.07999999999998 null] +/Dest [270 0 R /XYZ 0 683.1600000000001 null] >> endobj 863 0 obj -<< /Title <feff0033002e0036002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065> -/Parent 857 0 R +<< /Title <feff0033002e0037002e0020004a0073006f006e00410072007200610079> +/Parent 856 0 R /Count 0 /Next 864 0 R /Prev 862 0 R -/Dest [270 0 R /XYZ 0 683.1600000000001 null] +/Dest [270 0 R /XYZ 0 495.1200000000002 null] >> endobj 864 0 obj -<< /Title <feff0033002e0037002e0020004a0073006f006e00410072007200610079> -/Parent 857 0 R +<< /Title <feff0033002e0038002e0020004a0073006f006e004e0075006c006c> +/Parent 856 0 R /Count 0 /Next 865 0 R /Prev 863 0 R -/Dest [270 0 R /XYZ 0 495.1200000000002 null] +/Dest [277 0 R /XYZ 0 345.1200000000003 null] >> endobj 865 0 obj -<< /Title <feff0033002e0038002e0020004a0073006f006e004e0075006c006c> -/Parent 857 0 R +<< /Title <feff0033002e0039002e0020004a0073006f006e004f0062006a006500630074> +/Parent 856 0 R /Count 0 /Next 866 0 R /Prev 864 0 R -/Dest [277 0 R /XYZ 0 345.1200000000003 null] +/Dest [283 0 R /XYZ 0 194.88000000000017 null] >> endobj 866 0 obj -<< /Title <feff0033002e0039002e0020004a0073006f006e004f0062006a006500630074> -/Parent 857 0 R +<< /Title <feff0033002e00310030002e0020004a0073006f006e005000720069006d00690074006900760065> +/Parent 856 0 R /Count 0 /Next 867 0 R /Prev 865 0 R -/Dest [283 0 R /XYZ 0 194.88000000000017 null] +/Dest [298 0 R /XYZ 0 792.0 null] >> endobj 867 0 obj -<< /Title <feff0033002e00310030002e0020004a0073006f006e005000720069006d00690074006900760065> -/Parent 857 0 R +<< /Title <feff0033002e00310031002e0020004c006f006f0070> +/Parent 856 0 R /Count 0 /Next 868 0 R /Prev 866 0 R -/Dest [298 0 R /XYZ 0 792.0 null] +/Dest [306 0 R /XYZ 0 495.3600000000003 null] >> endobj 868 0 obj -<< /Title <feff0033002e00310031002e0020004c006f006f0070> -/Parent 857 0 R +<< /Title <feff0033002e00310032002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> +/Parent 856 0 R /Count 0 /Next 869 0 R /Prev 867 0 R -/Dest [306 0 R /XYZ 0 495.3600000000003 null] +/Dest [314 0 R /XYZ 0 495.36000000000007 null] >> endobj 869 0 obj -<< /Title <feff0033002e00310032002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> -/Parent 857 0 R +<< /Title <feff0033002e00310033002e0020004c006f006f0070004c006f0067> +/Parent 856 0 R /Count 0 /Next 870 0 R /Prev 868 0 R -/Dest [314 0 R /XYZ 0 495.36000000000007 null] +/Dest [320 0 R /XYZ 0 683.1600000000001 null] >> endobj 870 0 obj -<< /Title <feff0033002e00310033002e0020004c006f006f0070004c006f0067> -/Parent 857 0 R +<< /Title <feff0033002e00310034002e0020004c006f006f007000540065006d0070006c006100740065> +/Parent 856 0 R /Count 0 /Next 871 0 R /Prev 869 0 R -/Dest [320 0 R /XYZ 0 683.1600000000001 null] +/Dest [320 0 R /XYZ 0 382.4400000000001 null] >> endobj 871 0 obj -<< /Title <feff0033002e00310034002e0020004c006f006f007000540065006d0070006c006100740065> -/Parent 857 0 R +<< /Title <feff0033002e00310035002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> +/Parent 856 0 R /Count 0 /Next 872 0 R /Prev 870 0 R -/Dest [320 0 R /XYZ 0 382.4400000000001 null] +/Dest [327 0 R /XYZ 0 495.36000000000007 null] >> endobj 872 0 obj -<< /Title <feff0033002e00310035002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> -/Parent 857 0 R +<< /Title <feff0033002e00310036002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079> +/Parent 856 0 R /Count 0 /Next 873 0 R /Prev 871 0 R -/Dest [327 0 R /XYZ 0 495.36000000000007 null] +/Dest [327 0 R /XYZ 0 307.32 null] >> endobj 873 0 obj -<< /Title <feff0033002e00310036002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079> -/Parent 857 0 R +<< /Title <feff0033002e00310037002e0020004e0075006d006200650072> +/Parent 856 0 R /Count 0 /Next 874 0 R /Prev 872 0 R -/Dest [327 0 R /XYZ 0 307.32 null] +/Dest [336 0 R /XYZ 0 194.88000000000017 null] >> endobj 874 0 obj -<< /Title <feff0033002e00310037002e0020004e0075006d006200650072> -/Parent 857 0 R +<< /Title <feff0033002e00310038002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079> +/Parent 856 0 R /Count 0 /Next 875 0 R /Prev 873 0 R -/Dest [336 0 R /XYZ 0 194.88000000000017 null] +/Dest [336 0 R /XYZ 0 127.02000000000015 null] >> endobj 875 0 obj -<< /Title <feff0033002e00310038002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079> -/Parent 857 0 R +<< /Title <feff0033002e00310039002e00200050006f006c006900630079004d006f00640065006c> +/Parent 856 0 R /Count 0 /Next 876 0 R /Prev 874 0 R -/Dest [336 0 R /XYZ 0 127.02000000000015 null] ->> -endobj -876 0 obj -<< /Title <feff0033002e00310039002e00200050006f006c006900630079004d006f00640065006c> -/Parent 857 0 R -/Count 0 -/Next 877 0 R -/Prev 875 0 R /Dest [344 0 R /XYZ 0 232.43999999999994 null] >> endobj -877 0 obj +876 0 obj << /Title <feff0033002e00320030002e00200053006500720076006900630065> -/Parent 857 0 R +/Parent 856 0 R /Count 0 -/Prev 876 0 R +/Prev 875 0 R /Dest [352 0 R /XYZ 0 457.8 null] >> endobj -878 0 obj +877 0 obj << /Nums [0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) @@ -57101,7 +57096,7 @@ endobj >>] >> endobj -879 0 obj +878 0 obj << /Length1 12332 /Length 7916 /Filter [/FlateDecode] @@ -57138,10 +57133,10 @@ MR—áZ϶£êS”ÆùRp|€µÅrÐoÈ󷾡ö#ðÕ’_–Ïà¬B»ˆë(—ªC&Ži‰‡‰ðÝú”z>Ï"YØC(Ÿ“†ò©Sì ”.ìñÿZ†bh endstream endobj -880 0 obj +879 0 obj << /Type /FontDescriptor /FontName /AAAAAA+NotoSerif -/FontFile2 879 0 R +/FontFile2 878 0 R /FontBBox [-212 -250 1246 1047] /Flags 6 /StemV 0 @@ -57152,7 +57147,7 @@ endobj /XHeight 1098 >> endobj -881 0 obj +880 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -57162,10 +57157,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 -882 0 obj +881 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 559 559 500 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 -883 0 obj +882 0 obj << /Length1 11528 /Length 7660 /Filter [/FlateDecode] @@ -57207,10 +57202,10 @@ g½ƒ>³q«Rœµm#}ÚQïRD÷Ÿî`H[±^ŸÇ†0eár#±M— +slËÖQVæ[ß¿¸ˆÇÚ¹;|E®zîÞ¸-K¬Üºw9 òza\ìnå; ¬vd'ãÈËæØË"°MLÙ#13ö†ÚòʦöJ+ƒâîóí]&Õœ§A§vÐêré3@i endstream endobj -884 0 obj +883 0 obj << /Type /FontDescriptor /FontName /AAAAAB+NotoSerif-Bold -/FontFile2 883 0 R +/FontFile2 882 0 R /FontBBox [-212 -250 1306 1058] /Flags 6 /StemV 0 @@ -57221,7 +57216,7 @@ endobj /XHeight 1098 >> endobj -885 0 obj +884 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -57231,10 +57226,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 -886 0 obj +885 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 559 1000 549 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 647 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 -887 0 obj +886 0 obj << /Length1 5116 /Length 3170 /Filter [/FlateDecode] @@ -57254,10 +57249,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 -888 0 obj +887 0 obj << /Type /FontDescriptor /FontName /AAAAAC+NotoSerif-Italic -/FontFile2 887 0 R +/FontFile2 886 0 R /FontBBox [-254 -250 1238 1047] /Flags 70 /StemV 0 @@ -57268,7 +57263,7 @@ endobj /XHeight 1098 >> endobj -889 0 obj +888 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -57278,10 +57273,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 -890 0 obj +889 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 -891 0 obj +890 0 obj << /Length1 3280 /Length 2112 /Filter [/FlateDecode] @@ -57296,10 +57291,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 -892 0 obj +891 0 obj << /Type /FontDescriptor /FontName /AAAAAD+mplus1mn-regular -/FontFile2 891 0 R +/FontFile2 890 0 R /FontBBox [0 -230 1000 860] /Flags 4 /StemV 0 @@ -57310,7 +57305,7 @@ endobj /XHeight 0 >> endobj -893 0 obj +892 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -57320,11 +57315,11 @@ 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 -894 0 obj +893 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 895 +0 894 0000000000 65535 f 0000000015 00000 n 0000000264 00000 n @@ -57349,882 +57344,881 @@ xref 0000153599 00000 n 0000153642 00000 n 0000153691 00000 n -0000153837 00000 n -0000154010 00000 n -0000154065 00000 n -0000154240 00000 n -0000154284 00000 n -0000166489 00000 n -0000166750 00000 n -0000166793 00000 n -0000166848 00000 n -0000166891 00000 n -0000167063 00000 n -0000167118 00000 n -0000167293 00000 n -0000167349 00000 n -0000167404 00000 n -0000167459 00000 n -0000167515 00000 n -0000167570 00000 n -0000167735 00000 n -0000167790 00000 n -0000167846 00000 n -0000184321 00000 n -0000184602 00000 n -0000184645 00000 n -0000184801 00000 n -0000184856 00000 n -0000184911 00000 n -0000184966 00000 n -0000185121 00000 n -0000185176 00000 n -0000185334 00000 n -0000185389 00000 n -0000185444 00000 n -0000185746 00000 n -0000186056 00000 n -0000186112 00000 n -0000186168 00000 n -0000204453 00000 n -0000204734 00000 n -0000204777 00000 n -0000204832 00000 n -0000204887 00000 n -0000204942 00000 n -0000205099 00000 n -0000205154 00000 n -0000205209 00000 n -0000205265 00000 n -0000205421 00000 n -0000205477 00000 n -0000205635 00000 n -0000205691 00000 n -0000221419 00000 n -0000221669 00000 n -0000221712 00000 n -0000221767 00000 n -0000221822 00000 n -0000221877 00000 n -0000221932 00000 n -0000221988 00000 n -0000222044 00000 n -0000222099 00000 n -0000222346 00000 n -0000222402 00000 n -0000238505 00000 n -0000238772 00000 n -0000238815 00000 n -0000238870 00000 n -0000239188 00000 n -0000239244 00000 n -0000239405 00000 n -0000239460 00000 n -0000239516 00000 n -0000239572 00000 n -0000239628 00000 n -0000257524 00000 n -0000257799 00000 n -0000257950 00000 n -0000258006 00000 n -0000258062 00000 n -0000258118 00000 n -0000258174 00000 n -0000258230 00000 n -0000258286 00000 n -0000258342 00000 n -0000258399 00000 n -0000258561 00000 n -0000272218 00000 n -0000272488 00000 n -0000272533 00000 n -0000272590 00000 n -0000272647 00000 n -0000272704 00000 n -0000272762 00000 n -0000273070 00000 n -0000273127 00000 n -0000273185 00000 n -0000273347 00000 n -0000273405 00000 n -0000273463 00000 n -0000273520 00000 n -0000292667 00000 n -0000292945 00000 n -0000293002 00000 n -0000293144 00000 n -0000293190 00000 n -0000293248 00000 n -0000293306 00000 n -0000293364 00000 n -0000293528 00000 n -0000293585 00000 n -0000310891 00000 n -0000311161 00000 n -0000311206 00000 n -0000311263 00000 n -0000311320 00000 n -0000311484 00000 n -0000311541 00000 n -0000311598 00000 n -0000311655 00000 n -0000311713 00000 n -0000330841 00000 n -0000331127 00000 n -0000331279 00000 n -0000331336 00000 n -0000331393 00000 n -0000331450 00000 n -0000331508 00000 n -0000331671 00000 n -0000331728 00000 n -0000332028 00000 n -0000332086 00000 n -0000332144 00000 n -0000332468 00000 n -0000332526 00000 n -0000332689 00000 n -0000348961 00000 n -0000349231 00000 n -0000349276 00000 n -0000349333 00000 n -0000349390 00000 n -0000349447 00000 n -0000349504 00000 n -0000349561 00000 n -0000349619 00000 n -0000349677 00000 n -0000349841 00000 n -0000349898 00000 n -0000369597 00000 n -0000369891 00000 n -0000369936 00000 n -0000369982 00000 n -0000370137 00000 n -0000370194 00000 n -0000370357 00000 n -0000370414 00000 n -0000370471 00000 n -0000370529 00000 n -0000370799 00000 n -0000370856 00000 n -0000371021 00000 n -0000371078 00000 n -0000371389 00000 n -0000371566 00000 n -0000387074 00000 n -0000387352 00000 n -0000387397 00000 n -0000387454 00000 n -0000387511 00000 n -0000387568 00000 n -0000387726 00000 n -0000387783 00000 n -0000387946 00000 n -0000388004 00000 n -0000388061 00000 n -0000388119 00000 n -0000388176 00000 n -0000404637 00000 n -0000404923 00000 n -0000404968 00000 n -0000405130 00000 n -0000405187 00000 n -0000405244 00000 n -0000405301 00000 n -0000405358 00000 n -0000405519 00000 n -0000405576 00000 n -0000405633 00000 n -0000405691 00000 n -0000405749 00000 n -0000405910 00000 n -0000422352 00000 n -0000422604 00000 n -0000422649 00000 n -0000422706 00000 n -0000422763 00000 n -0000422821 00000 n -0000422879 00000 n -0000423323 00000 n -0000423381 00000 n -0000423439 00000 n -0000440145 00000 n -0000440423 00000 n -0000440468 00000 n -0000440627 00000 n -0000440684 00000 n -0000440741 00000 n -0000440798 00000 n -0000441170 00000 n -0000441227 00000 n -0000441388 00000 n -0000441446 00000 n -0000441504 00000 n -0000441562 00000 n -0000457923 00000 n -0000458201 00000 n -0000458246 00000 n -0000458416 00000 n -0000458473 00000 n -0000458530 00000 n -0000458587 00000 n -0000458644 00000 n -0000458701 00000 n -0000458759 00000 n -0000458817 00000 n -0000459172 00000 n -0000459344 00000 n -0000459402 00000 n -0000467356 00000 n -0000467608 00000 n -0000467653 00000 n -0000467710 00000 n -0000467767 00000 n -0000467825 00000 n -0000485023 00000 n -0000485280 00000 n -0000485325 00000 n -0000485382 00000 n -0000485428 00000 n -0000485486 00000 n -0000485664 00000 n -0000505572 00000 n -0000505829 00000 n -0000505875 00000 n -0000506029 00000 n -0000506087 00000 n -0000506393 00000 n -0000526939 00000 n -0000527212 00000 n -0000527373 00000 n -0000527430 00000 n -0000527487 00000 n -0000527657 00000 n -0000527824 00000 n -0000549229 00000 n -0000549502 00000 n -0000549651 00000 n -0000549822 00000 n -0000549981 00000 n -0000550038 00000 n -0000571867 00000 n -0000572156 00000 n -0000572324 00000 n -0000572471 00000 n -0000572620 00000 n -0000572771 00000 n -0000572931 00000 n -0000572989 00000 n -0000595951 00000 n -0000596240 00000 n -0000596409 00000 n -0000596577 00000 n -0000596747 00000 n -0000596919 00000 n -0000597079 00000 n -0000618726 00000 n -0000619015 00000 n -0000619060 00000 n -0000619219 00000 n -0000619377 00000 n -0000619537 00000 n -0000619688 00000 n -0000619838 00000 n -0000642638 00000 n -0000642927 00000 n -0000642984 00000 n -0000643154 00000 n -0000643325 00000 n -0000643492 00000 n -0000643664 00000 n -0000643839 00000 n -0000665516 00000 n -0000665789 00000 n -0000665929 00000 n -0000666105 00000 n -0000666163 00000 n -0000666334 00000 n -0000687378 00000 n -0000687651 00000 n -0000687818 00000 n -0000687875 00000 n -0000688040 00000 n -0000688097 00000 n -0000688286 00000 n -0000708815 00000 n -0000709096 00000 n -0000709236 00000 n -0000709294 00000 n -0000709726 00000 n -0000709892 00000 n -0000710054 00000 n -0000710100 00000 n -0000710271 00000 n -0000729133 00000 n -0000729414 00000 n -0000729563 00000 n -0000729738 00000 n -0000729903 00000 n -0000730067 00000 n -0000730125 00000 n -0000730183 00000 n -0000752034 00000 n -0000752323 00000 n -0000752472 00000 n -0000752621 00000 n -0000752764 00000 n -0000752919 00000 n -0000753084 00000 n -0000753142 00000 n -0000770210 00000 n -0000770491 00000 n -0000770640 00000 n -0000770815 00000 n -0000770860 00000 n -0000771155 00000 n -0000771315 00000 n -0000771485 00000 n -0000771629 00000 n -0000771774 00000 n -0000771939 00000 n -0000772095 00000 n -0000772253 00000 n -0000772400 00000 n -0000772562 00000 n -0000772704 00000 n -0000772869 00000 n -0000773013 00000 n -0000773170 00000 n -0000773316 00000 n -0000773472 00000 n -0000773617 00000 n -0000773772 00000 n -0000773916 00000 n -0000774075 00000 n -0000774223 00000 n -0000774381 00000 n -0000774528 00000 n -0000774694 00000 n -0000774839 00000 n -0000774999 00000 n -0000775148 00000 n -0000775306 00000 n -0000775453 00000 n -0000775608 00000 n -0000775753 00000 n -0000775913 00000 n -0000776062 00000 n -0000776222 00000 n -0000776371 00000 n -0000776526 00000 n -0000776671 00000 n -0000776839 00000 n -0000776986 00000 n -0000777145 00000 n -0000777293 00000 n -0000777449 00000 n -0000777595 00000 n -0000777755 00000 n -0000777904 00000 n -0000778070 00000 n -0000778215 00000 n -0000778375 00000 n -0000778524 00000 n -0000778682 00000 n -0000778829 00000 n -0000778996 00000 n -0000779142 00000 n -0000779314 00000 n -0000779465 00000 n -0000779624 00000 n -0000779772 00000 n -0000779930 00000 n -0000780077 00000 n -0000780231 00000 n -0000780375 00000 n -0000780547 00000 n -0000780698 00000 n -0000780859 00000 n -0000781009 00000 n -0000781168 00000 n -0000781317 00000 n -0000781477 00000 n -0000781626 00000 n -0000781792 00000 n -0000781937 00000 n -0000782107 00000 n -0000782256 00000 n -0000782415 00000 n -0000782563 00000 n -0000782709 00000 n -0000782844 00000 n -0000782998 00000 n -0000783131 00000 n -0000783290 00000 n -0000783428 00000 n -0000783576 00000 n -0000783714 00000 n -0000783883 00000 n -0000784031 00000 n -0000784195 00000 n -0000784339 00000 n -0000784509 00000 n -0000784658 00000 n -0000784817 00000 n -0000784966 00000 n -0000785135 00000 n -0000785283 00000 n -0000785446 00000 n -0000785590 00000 n -0000785760 00000 n -0000785909 00000 n -0000786068 00000 n -0000786217 00000 n -0000786375 00000 n -0000786522 00000 n -0000786691 00000 n -0000786839 00000 n -0000787005 00000 n -0000787150 00000 n -0000787321 00000 n -0000787471 00000 n -0000787631 00000 n -0000787781 00000 n -0000787944 00000 n -0000788088 00000 n -0000788258 00000 n -0000788407 00000 n -0000788567 00000 n -0000788717 00000 n -0000788888 00000 n -0000789038 00000 n -0000789194 00000 n -0000789339 00000 n -0000789498 00000 n -0000789647 00000 n -0000789816 00000 n -0000789964 00000 n -0000790119 00000 n -0000790264 00000 n -0000790436 00000 n -0000790587 00000 n -0000790747 00000 n -0000790897 00000 n -0000791066 00000 n -0000791214 00000 n -0000791380 00000 n -0000791526 00000 n -0000791699 00000 n -0000791851 00000 n -0000792012 00000 n -0000792163 00000 n -0000792334 00000 n -0000792484 00000 n -0000792650 00000 n -0000792796 00000 n -0000792969 00000 n -0000793121 00000 n -0000793282 00000 n -0000793433 00000 n -0000793603 00000 n -0000793752 00000 n -0000793915 00000 n -0000794076 00000 n -0000794216 00000 n -0000794357 00000 n -0000794517 00000 n -0000794655 00000 n -0000794803 00000 n -0000794940 00000 n -0000795098 00000 n -0000795234 00000 n -0000795399 00000 n -0000795542 00000 n -0000795713 00000 n -0000795862 00000 n -0000796021 00000 n -0000796169 00000 n -0000796338 00000 n -0000796485 00000 n -0000796639 00000 n -0000796782 00000 n -0000796953 00000 n -0000797102 00000 n -0000797261 00000 n -0000797409 00000 n -0000797578 00000 n -0000797725 00000 n -0000797890 00000 n -0000798033 00000 n -0000798204 00000 n -0000798353 00000 n -0000798513 00000 n -0000798662 00000 n -0000798832 00000 n -0000798980 00000 n -0000799135 00000 n -0000799279 00000 n -0000799450 00000 n -0000799599 00000 n -0000799758 00000 n -0000799906 00000 n -0000800076 00000 n -0000800224 00000 n -0000800389 00000 n -0000800534 00000 n -0000800706 00000 n -0000800856 00000 n -0000801015 00000 n -0000801163 00000 n -0000801332 00000 n -0000801479 00000 n -0000801643 00000 n -0000801787 00000 n -0000801959 00000 n -0000802109 00000 n -0000802269 00000 n -0000802418 00000 n -0000802576 00000 n -0000802722 00000 n -0000802893 00000 n -0000803042 00000 n -0000803209 00000 n -0000803354 00000 n -0000803527 00000 n -0000803678 00000 n -0000803839 00000 n -0000803989 00000 n -0000804149 00000 n -0000804297 00000 n -0000804468 00000 n -0000804617 00000 n -0000804781 00000 n -0000804926 00000 n -0000805098 00000 n -0000805248 00000 n -0000805405 00000 n -0000805551 00000 n -0000805709 00000 n -0000805855 00000 n -0000806012 00000 n -0000806147 00000 n -0000806291 00000 n -0000806423 00000 n -0000806583 00000 n -0000806721 00000 n -0000806869 00000 n -0000807006 00000 n -0000807175 00000 n -0000807322 00000 n -0000807484 00000 n -0000807627 00000 n -0000807798 00000 n -0000807947 00000 n -0000808106 00000 n -0000808254 00000 n -0000808412 00000 n -0000808558 00000 n -0000808727 00000 n -0000808874 00000 n -0000809037 00000 n -0000809180 00000 n -0000809339 00000 n -0000809487 00000 n -0000809656 00000 n -0000809803 00000 n -0000809968 00000 n -0000810111 00000 n -0000810283 00000 n -0000810433 00000 n -0000810593 00000 n -0000810742 00000 n -0000810912 00000 n -0000811060 00000 n -0000811225 00000 n -0000811368 00000 n -0000811539 00000 n -0000811688 00000 n -0000811848 00000 n -0000811997 00000 n -0000812168 00000 n -0000812317 00000 n -0000812483 00000 n -0000812627 00000 n -0000812798 00000 n -0000812947 00000 n -0000813106 00000 n -0000813254 00000 n -0000813413 00000 n -0000813560 00000 n -0000813730 00000 n -0000813878 00000 n -0000814034 00000 n -0000814178 00000 n -0000814337 00000 n -0000814485 00000 n -0000814656 00000 n -0000814805 00000 n -0000814961 00000 n -0000815106 00000 n -0000815267 00000 n -0000815417 00000 n -0000815588 00000 n -0000815737 00000 n -0000815904 00000 n -0000816049 00000 n -0000816222 00000 n -0000816373 00000 n -0000816534 00000 n -0000816684 00000 n -0000816854 00000 n -0000817002 00000 n -0000817165 00000 n -0000817306 00000 n -0000817477 00000 n -0000817626 00000 n -0000817773 00000 n -0000817909 00000 n -0000818067 00000 n -0000818203 00000 n -0000818361 00000 n -0000818497 00000 n -0000818660 00000 n -0000818801 00000 n -0000818974 00000 n -0000819125 00000 n -0000819283 00000 n -0000819429 00000 n -0000819594 00000 n -0000819747 00000 n -0000819911 00000 n -0000820064 00000 n -0000820244 00000 n -0000820402 00000 n -0000820569 00000 n -0000820714 00000 n -0000820880 00000 n -0000821024 00000 n -0000821192 00000 n -0000821338 00000 n -0000821509 00000 n -0000821658 00000 n -0000821820 00000 n -0000821960 00000 n -0000822124 00000 n -0000822277 00000 n -0000822443 00000 n -0000822587 00000 n -0000822758 00000 n -0000822907 00000 n -0000823091 00000 n -0000823255 00000 n -0000823431 00000 n -0000823585 00000 n -0000823750 00000 n -0000823893 00000 n -0000824070 00000 n -0000824225 00000 n -0000824395 00000 n -0000824543 00000 n -0000824708 00000 n -0000824851 00000 n -0000825136 00000 n -0000825215 00000 n -0000825379 00000 n -0000825570 00000 n -0000825798 00000 n -0000826015 00000 n -0000826185 00000 n -0000826403 00000 n -0000826649 00000 n -0000826822 00000 n -0000827003 00000 n -0000827268 00000 n -0000827453 00000 n -0000827634 00000 n -0000827915 00000 n -0000828100 00000 n -0000828281 00000 n -0000828538 00000 n -0000828711 00000 n -0000828892 00000 n -0000829148 00000 n -0000829337 00000 n -0000829536 00000 n -0000829731 00000 n -0000829912 00000 n -0000830233 00000 n -0000830419 00000 n -0000830588 00000 n -0000830912 00000 n -0000831101 00000 n -0000831300 00000 n -0000831481 00000 n -0000831765 00000 n -0000831955 00000 n -0000832155 00000 n -0000832351 00000 n -0000832520 00000 n -0000832816 00000 n -0000833005 00000 n -0000833204 00000 n -0000833385 00000 n -0000833770 00000 n -0000833964 00000 n -0000834167 00000 n -0000834353 00000 n -0000834865 00000 n -0000835058 00000 n -0000835262 00000 n -0000835447 00000 n -0000835872 00000 n -0000836066 00000 n -0000836270 00000 n -0000836469 00000 n -0000836654 00000 n -0000836962 00000 n -0000837155 00000 n -0000837344 00000 n -0000837652 00000 n -0000837845 00000 n -0000838049 00000 n -0000838223 00000 n -0000838508 00000 n -0000838698 00000 n -0000838884 00000 n -0000839206 00000 n -0000839400 00000 n -0000839605 00000 n -0000839792 00000 n -0000840318 00000 n -0000840512 00000 n -0000840716 00000 n -0000840891 00000 n -0000841409 00000 n -0000841604 00000 n -0000841809 00000 n -0000841995 00000 n -0000842572 00000 n -0000842766 00000 n -0000842970 00000 n -0000843156 00000 n -0000843469 00000 n -0000843663 00000 n -0000843868 00000 n -0000844054 00000 n -0000844355 00000 n -0000844549 00000 n -0000844754 00000 n -0000844940 00000 n -0000845250 00000 n -0000845445 00000 n -0000845650 00000 n -0000845824 00000 n -0000846177 00000 n -0000846371 00000 n -0000846575 00000 n -0000846761 00000 n -0000847078 00000 n -0000847273 00000 n -0000847478 00000 n -0000847664 00000 n -0000848029 00000 n -0000848212 00000 n -0000848416 00000 n -0000848616 00000 n -0000848802 00000 n -0000849188 00000 n -0000849382 00000 n -0000849586 00000 n -0000849774 00000 n -0000849960 00000 n -0000850349 00000 n -0000850543 00000 n -0000850747 00000 n -0000850948 00000 n -0000851134 00000 n -0000851416 00000 n -0000851610 00000 n -0000851802 00000 n -0000851988 00000 n -0000852281 00000 n -0000852475 00000 n -0000852679 00000 n -0000852879 00000 n -0000853065 00000 n -0000853355 00000 n -0000853546 00000 n -0000853720 00000 n -0000854185 00000 n -0000854379 00000 n -0000854584 00000 n -0000854771 00000 n -0000855217 00000 n -0000855412 00000 n -0000855604 00000 n -0000855790 00000 n -0000856235 00000 n -0000856429 00000 n -0000856633 00000 n -0000856834 00000 n -0000857021 00000 n -0000857279 00000 n -0000857457 00000 n -0000857643 00000 n -0000857924 00000 n -0000858114 00000 n -0000858300 00000 n -0000858617 00000 n -0000858812 00000 n -0000859017 00000 n -0000859204 00000 n -0000859567 00000 n -0000859761 00000 n -0000859965 00000 n -0000860152 00000 n -0000860380 00000 n -0000860586 00000 n -0000860791 00000 n -0000860988 00000 n -0000861201 00000 n -0000861426 00000 n -0000861670 00000 n -0000861862 00000 n -0000862050 00000 n -0000862247 00000 n -0000862447 00000 n -0000862623 00000 n -0000862848 00000 n -0000863036 00000 n -0000863244 00000 n -0000863517 00000 n -0000863738 00000 n -0000863923 00000 n -0000864152 00000 n -0000864357 00000 n -0000864519 00000 n -0000865176 00000 n -0000873184 00000 n -0000873400 00000 n -0000874763 00000 n -0000875830 00000 n -0000883582 00000 n -0000883803 00000 n -0000885166 00000 n -0000886243 00000 n -0000889504 00000 n -0000889730 00000 n -0000891093 00000 n -0000892209 00000 n -0000894412 00000 n -0000894626 00000 n -0000895989 00000 n +0000153829 00000 n +0000154002 00000 n +0000154057 00000 n +0000154232 00000 n +0000154276 00000 n +0000166481 00000 n +0000166742 00000 n +0000166785 00000 n +0000166840 00000 n +0000166883 00000 n +0000167055 00000 n +0000167110 00000 n +0000167285 00000 n +0000167341 00000 n +0000167396 00000 n +0000167451 00000 n +0000167507 00000 n +0000167562 00000 n +0000167727 00000 n +0000167782 00000 n +0000167838 00000 n +0000184313 00000 n +0000184594 00000 n +0000184637 00000 n +0000184793 00000 n +0000184848 00000 n +0000184903 00000 n +0000184958 00000 n +0000185113 00000 n +0000185168 00000 n +0000185326 00000 n +0000185381 00000 n +0000185436 00000 n +0000185738 00000 n +0000186048 00000 n +0000186104 00000 n +0000186160 00000 n +0000204445 00000 n +0000204726 00000 n +0000204769 00000 n +0000204824 00000 n +0000204879 00000 n +0000204934 00000 n +0000205091 00000 n +0000205146 00000 n +0000205201 00000 n +0000205257 00000 n +0000205413 00000 n +0000205469 00000 n +0000205627 00000 n +0000205683 00000 n +0000221411 00000 n +0000221661 00000 n +0000221704 00000 n +0000221759 00000 n +0000221814 00000 n +0000221869 00000 n +0000221924 00000 n +0000221980 00000 n +0000222036 00000 n +0000222091 00000 n +0000222449 00000 n +0000222505 00000 n +0000238608 00000 n +0000238875 00000 n +0000238918 00000 n +0000238973 00000 n +0000239291 00000 n +0000239347 00000 n +0000239508 00000 n +0000239563 00000 n +0000239619 00000 n +0000239675 00000 n +0000239731 00000 n +0000257627 00000 n +0000257902 00000 n +0000258053 00000 n +0000258109 00000 n +0000258165 00000 n +0000258221 00000 n +0000258277 00000 n +0000258333 00000 n +0000258389 00000 n +0000258445 00000 n +0000258502 00000 n +0000258664 00000 n +0000272321 00000 n +0000272591 00000 n +0000272636 00000 n +0000272693 00000 n +0000272750 00000 n +0000272807 00000 n +0000272865 00000 n +0000272922 00000 n +0000272980 00000 n +0000273142 00000 n +0000273200 00000 n +0000273258 00000 n +0000273315 00000 n +0000292462 00000 n +0000292740 00000 n +0000292797 00000 n +0000292939 00000 n +0000292985 00000 n +0000293043 00000 n +0000293101 00000 n +0000293159 00000 n +0000293323 00000 n +0000293380 00000 n +0000310686 00000 n +0000310956 00000 n +0000311001 00000 n +0000311058 00000 n +0000311115 00000 n +0000311279 00000 n +0000311336 00000 n +0000311393 00000 n +0000311723 00000 n +0000311780 00000 n +0000311838 00000 n +0000330966 00000 n +0000331252 00000 n +0000331404 00000 n +0000331461 00000 n +0000331518 00000 n +0000331575 00000 n +0000331633 00000 n +0000331944 00000 n +0000332107 00000 n +0000332164 00000 n +0000332464 00000 n +0000332522 00000 n +0000332580 00000 n +0000332904 00000 n +0000332962 00000 n +0000333125 00000 n +0000349397 00000 n +0000349667 00000 n +0000349712 00000 n +0000349769 00000 n +0000349826 00000 n +0000349883 00000 n +0000349940 00000 n +0000349997 00000 n +0000350055 00000 n +0000350113 00000 n +0000350277 00000 n +0000350334 00000 n +0000370033 00000 n +0000370327 00000 n +0000370372 00000 n +0000370418 00000 n +0000370573 00000 n +0000370630 00000 n +0000370793 00000 n +0000370850 00000 n +0000370907 00000 n +0000370965 00000 n +0000371022 00000 n +0000371187 00000 n +0000371244 00000 n +0000371421 00000 n +0000386929 00000 n +0000387207 00000 n +0000387252 00000 n +0000387309 00000 n +0000387366 00000 n +0000387423 00000 n +0000387581 00000 n +0000387638 00000 n +0000387801 00000 n +0000387859 00000 n +0000387916 00000 n +0000387974 00000 n +0000388031 00000 n +0000404492 00000 n +0000404778 00000 n +0000404823 00000 n +0000404985 00000 n +0000405042 00000 n +0000405099 00000 n +0000405156 00000 n +0000405213 00000 n +0000405374 00000 n +0000405431 00000 n +0000405488 00000 n +0000405546 00000 n +0000405604 00000 n +0000405765 00000 n +0000422207 00000 n +0000422459 00000 n +0000422504 00000 n +0000422561 00000 n +0000422618 00000 n +0000422676 00000 n +0000423135 00000 n +0000423193 00000 n +0000423637 00000 n +0000423695 00000 n +0000423968 00000 n +0000424026 00000 n +0000440732 00000 n +0000441010 00000 n +0000441055 00000 n +0000441214 00000 n +0000441271 00000 n +0000441328 00000 n +0000441385 00000 n +0000441757 00000 n +0000441814 00000 n +0000441975 00000 n +0000442033 00000 n +0000442091 00000 n +0000442149 00000 n +0000458510 00000 n +0000458788 00000 n +0000458833 00000 n +0000459003 00000 n +0000459060 00000 n +0000459117 00000 n +0000459174 00000 n +0000459231 00000 n +0000459288 00000 n +0000459346 00000 n +0000459404 00000 n +0000459576 00000 n +0000459634 00000 n +0000467588 00000 n +0000467840 00000 n +0000467885 00000 n +0000467942 00000 n +0000467999 00000 n +0000468057 00000 n +0000485255 00000 n +0000485512 00000 n +0000485557 00000 n +0000485614 00000 n +0000485660 00000 n +0000485718 00000 n +0000485896 00000 n +0000505804 00000 n +0000506061 00000 n +0000506107 00000 n +0000506261 00000 n +0000506319 00000 n +0000506625 00000 n +0000527171 00000 n +0000527444 00000 n +0000527605 00000 n +0000527662 00000 n +0000527719 00000 n +0000527889 00000 n +0000528056 00000 n +0000549461 00000 n +0000549734 00000 n +0000549883 00000 n +0000550054 00000 n +0000550213 00000 n +0000550270 00000 n +0000572099 00000 n +0000572388 00000 n +0000572556 00000 n +0000572703 00000 n +0000572852 00000 n +0000573003 00000 n +0000573163 00000 n +0000573221 00000 n +0000596183 00000 n +0000596472 00000 n +0000596641 00000 n +0000596809 00000 n +0000596979 00000 n +0000597151 00000 n +0000597311 00000 n +0000618958 00000 n +0000619247 00000 n +0000619292 00000 n +0000619451 00000 n +0000619609 00000 n +0000619769 00000 n +0000619920 00000 n +0000620070 00000 n +0000642870 00000 n +0000643159 00000 n +0000643216 00000 n +0000643386 00000 n +0000643557 00000 n +0000643724 00000 n +0000643896 00000 n +0000644071 00000 n +0000665748 00000 n +0000666021 00000 n +0000666161 00000 n +0000666337 00000 n +0000666395 00000 n +0000666566 00000 n +0000687610 00000 n +0000687883 00000 n +0000688050 00000 n +0000688107 00000 n +0000688272 00000 n +0000688329 00000 n +0000688518 00000 n +0000709047 00000 n +0000709328 00000 n +0000709468 00000 n +0000709526 00000 n +0000709958 00000 n +0000710124 00000 n +0000710286 00000 n +0000710332 00000 n +0000710503 00000 n +0000729365 00000 n +0000729646 00000 n +0000729795 00000 n +0000729970 00000 n +0000730135 00000 n +0000730299 00000 n +0000730357 00000 n +0000730415 00000 n +0000752266 00000 n +0000752555 00000 n +0000752704 00000 n +0000752853 00000 n +0000752996 00000 n +0000753151 00000 n +0000753316 00000 n +0000753374 00000 n +0000770442 00000 n +0000770723 00000 n +0000770872 00000 n +0000771047 00000 n +0000771092 00000 n +0000771252 00000 n +0000771422 00000 n +0000771566 00000 n +0000771711 00000 n +0000771876 00000 n +0000772032 00000 n +0000772190 00000 n +0000772337 00000 n +0000772499 00000 n +0000772641 00000 n +0000772807 00000 n +0000772952 00000 n +0000773109 00000 n +0000773255 00000 n +0000773411 00000 n +0000773556 00000 n +0000773712 00000 n +0000773857 00000 n +0000774016 00000 n +0000774164 00000 n +0000774322 00000 n +0000774469 00000 n +0000774636 00000 n +0000774782 00000 n +0000774942 00000 n +0000775091 00000 n +0000775249 00000 n +0000775396 00000 n +0000775551 00000 n +0000775696 00000 n +0000775856 00000 n +0000776005 00000 n +0000776165 00000 n +0000776314 00000 n +0000776469 00000 n +0000776614 00000 n +0000776782 00000 n +0000776929 00000 n +0000777088 00000 n +0000777236 00000 n +0000777392 00000 n +0000777538 00000 n +0000777698 00000 n +0000777847 00000 n +0000778013 00000 n +0000778158 00000 n +0000778318 00000 n +0000778467 00000 n +0000778625 00000 n +0000778772 00000 n +0000778939 00000 n +0000779085 00000 n +0000779257 00000 n +0000779408 00000 n +0000779567 00000 n +0000779715 00000 n +0000779873 00000 n +0000780020 00000 n +0000780175 00000 n +0000780320 00000 n +0000780492 00000 n +0000780643 00000 n +0000780804 00000 n +0000780954 00000 n +0000781113 00000 n +0000781262 00000 n +0000781422 00000 n +0000781571 00000 n +0000781738 00000 n +0000781884 00000 n +0000782054 00000 n +0000782203 00000 n +0000782362 00000 n +0000782510 00000 n +0000782656 00000 n +0000782791 00000 n +0000782946 00000 n +0000783080 00000 n +0000783239 00000 n +0000783377 00000 n +0000783525 00000 n +0000783663 00000 n +0000783832 00000 n +0000783980 00000 n +0000784144 00000 n +0000784288 00000 n +0000784458 00000 n +0000784607 00000 n +0000784766 00000 n +0000784915 00000 n +0000785084 00000 n +0000785232 00000 n +0000785395 00000 n +0000785539 00000 n +0000785709 00000 n +0000785858 00000 n +0000786017 00000 n +0000786166 00000 n +0000786324 00000 n +0000786471 00000 n +0000786640 00000 n +0000786788 00000 n +0000786954 00000 n +0000787099 00000 n +0000787270 00000 n +0000787420 00000 n +0000787580 00000 n +0000787730 00000 n +0000787893 00000 n +0000788037 00000 n +0000788207 00000 n +0000788356 00000 n +0000788516 00000 n +0000788666 00000 n +0000788837 00000 n +0000788987 00000 n +0000789143 00000 n +0000789288 00000 n +0000789447 00000 n +0000789596 00000 n +0000789765 00000 n +0000789913 00000 n +0000790068 00000 n +0000790213 00000 n +0000790385 00000 n +0000790536 00000 n +0000790696 00000 n +0000790846 00000 n +0000791015 00000 n +0000791163 00000 n +0000791329 00000 n +0000791475 00000 n +0000791648 00000 n +0000791800 00000 n +0000791961 00000 n +0000792112 00000 n +0000792283 00000 n +0000792433 00000 n +0000792599 00000 n +0000792745 00000 n +0000792918 00000 n +0000793070 00000 n +0000793231 00000 n +0000793382 00000 n +0000793552 00000 n +0000793701 00000 n +0000793864 00000 n +0000794025 00000 n +0000794165 00000 n +0000794306 00000 n +0000794466 00000 n +0000794604 00000 n +0000794752 00000 n +0000794889 00000 n +0000795047 00000 n +0000795183 00000 n +0000795348 00000 n +0000795491 00000 n +0000795662 00000 n +0000795811 00000 n +0000795970 00000 n +0000796118 00000 n +0000796287 00000 n +0000796434 00000 n +0000796588 00000 n +0000796731 00000 n +0000796902 00000 n +0000797051 00000 n +0000797210 00000 n +0000797358 00000 n +0000797527 00000 n +0000797674 00000 n +0000797839 00000 n +0000797982 00000 n +0000798153 00000 n +0000798302 00000 n +0000798462 00000 n +0000798611 00000 n +0000798781 00000 n +0000798929 00000 n +0000799084 00000 n +0000799228 00000 n +0000799399 00000 n +0000799548 00000 n +0000799707 00000 n +0000799855 00000 n +0000800025 00000 n +0000800173 00000 n +0000800338 00000 n +0000800483 00000 n +0000800655 00000 n +0000800805 00000 n +0000800964 00000 n +0000801112 00000 n +0000801281 00000 n +0000801428 00000 n +0000801592 00000 n +0000801736 00000 n +0000801908 00000 n +0000802058 00000 n +0000802218 00000 n +0000802367 00000 n +0000802525 00000 n +0000802671 00000 n +0000802842 00000 n +0000802991 00000 n +0000803158 00000 n +0000803303 00000 n +0000803476 00000 n +0000803627 00000 n +0000803788 00000 n +0000803938 00000 n +0000804098 00000 n +0000804246 00000 n +0000804417 00000 n +0000804566 00000 n +0000804730 00000 n +0000804875 00000 n +0000805047 00000 n +0000805197 00000 n +0000805354 00000 n +0000805500 00000 n +0000805658 00000 n +0000805804 00000 n +0000805961 00000 n +0000806096 00000 n +0000806240 00000 n +0000806372 00000 n +0000806532 00000 n +0000806670 00000 n +0000806818 00000 n +0000806955 00000 n +0000807124 00000 n +0000807271 00000 n +0000807434 00000 n +0000807578 00000 n +0000807749 00000 n +0000807898 00000 n +0000808057 00000 n +0000808205 00000 n +0000808363 00000 n +0000808509 00000 n +0000808678 00000 n +0000808825 00000 n +0000808989 00000 n +0000809133 00000 n +0000809292 00000 n +0000809440 00000 n +0000809609 00000 n +0000809756 00000 n +0000809922 00000 n +0000810066 00000 n +0000810238 00000 n +0000810388 00000 n +0000810548 00000 n +0000810697 00000 n +0000810867 00000 n +0000811015 00000 n +0000811181 00000 n +0000811325 00000 n +0000811496 00000 n +0000811645 00000 n +0000811805 00000 n +0000811954 00000 n +0000812125 00000 n +0000812274 00000 n +0000812441 00000 n +0000812586 00000 n +0000812757 00000 n +0000812906 00000 n +0000813065 00000 n +0000813213 00000 n +0000813372 00000 n +0000813519 00000 n +0000813689 00000 n +0000813837 00000 n +0000813994 00000 n +0000814139 00000 n +0000814298 00000 n +0000814446 00000 n +0000814617 00000 n +0000814766 00000 n +0000814923 00000 n +0000815069 00000 n +0000815230 00000 n +0000815380 00000 n +0000815551 00000 n +0000815700 00000 n +0000815868 00000 n +0000816014 00000 n +0000816187 00000 n +0000816338 00000 n +0000816499 00000 n +0000816649 00000 n +0000816819 00000 n +0000816967 00000 n +0000817131 00000 n +0000817273 00000 n +0000817444 00000 n +0000817593 00000 n +0000817740 00000 n +0000817876 00000 n +0000818034 00000 n +0000818170 00000 n +0000818328 00000 n +0000818464 00000 n +0000818627 00000 n +0000818768 00000 n +0000818941 00000 n +0000819092 00000 n +0000819250 00000 n +0000819396 00000 n +0000819561 00000 n +0000819714 00000 n +0000819878 00000 n +0000820031 00000 n +0000820211 00000 n +0000820369 00000 n +0000820536 00000 n +0000820681 00000 n +0000820847 00000 n +0000820991 00000 n +0000821159 00000 n +0000821305 00000 n +0000821476 00000 n +0000821625 00000 n +0000821787 00000 n +0000821927 00000 n +0000822091 00000 n +0000822244 00000 n +0000822410 00000 n +0000822554 00000 n +0000822725 00000 n +0000822874 00000 n +0000823058 00000 n +0000823222 00000 n +0000823398 00000 n +0000823552 00000 n +0000823717 00000 n +0000823860 00000 n +0000824037 00000 n +0000824192 00000 n +0000824362 00000 n +0000824510 00000 n +0000824675 00000 n +0000824818 00000 n +0000825103 00000 n +0000825182 00000 n +0000825346 00000 n +0000825537 00000 n +0000825765 00000 n +0000825982 00000 n +0000826152 00000 n +0000826370 00000 n +0000826616 00000 n +0000826789 00000 n +0000826970 00000 n +0000827235 00000 n +0000827420 00000 n +0000827601 00000 n +0000827882 00000 n +0000828067 00000 n +0000828248 00000 n +0000828505 00000 n +0000828678 00000 n +0000828859 00000 n +0000829115 00000 n +0000829304 00000 n +0000829503 00000 n +0000829698 00000 n +0000829879 00000 n +0000830200 00000 n +0000830386 00000 n +0000830555 00000 n +0000830879 00000 n +0000831068 00000 n +0000831267 00000 n +0000831448 00000 n +0000831732 00000 n +0000831922 00000 n +0000832122 00000 n +0000832318 00000 n +0000832487 00000 n +0000832783 00000 n +0000832972 00000 n +0000833171 00000 n +0000833352 00000 n +0000833737 00000 n +0000833931 00000 n +0000834134 00000 n +0000834320 00000 n +0000834832 00000 n +0000835025 00000 n +0000835229 00000 n +0000835414 00000 n +0000835839 00000 n +0000836033 00000 n +0000836237 00000 n +0000836436 00000 n +0000836621 00000 n +0000836929 00000 n +0000837122 00000 n +0000837311 00000 n +0000837619 00000 n +0000837812 00000 n +0000838016 00000 n +0000838190 00000 n +0000838475 00000 n +0000838665 00000 n +0000838851 00000 n +0000839173 00000 n +0000839367 00000 n +0000839572 00000 n +0000839759 00000 n +0000840285 00000 n +0000840479 00000 n +0000840683 00000 n +0000840858 00000 n +0000841376 00000 n +0000841571 00000 n +0000841776 00000 n +0000841962 00000 n +0000842539 00000 n +0000842733 00000 n +0000842937 00000 n +0000843123 00000 n +0000843436 00000 n +0000843630 00000 n +0000843835 00000 n +0000844021 00000 n +0000844322 00000 n +0000844516 00000 n +0000844721 00000 n +0000844907 00000 n +0000845217 00000 n +0000845412 00000 n +0000845617 00000 n +0000845791 00000 n +0000846144 00000 n +0000846338 00000 n +0000846542 00000 n +0000846728 00000 n +0000847045 00000 n +0000847240 00000 n +0000847445 00000 n +0000847631 00000 n +0000847996 00000 n +0000848179 00000 n +0000848383 00000 n +0000848583 00000 n +0000848769 00000 n +0000849155 00000 n +0000849349 00000 n +0000849553 00000 n +0000849741 00000 n +0000849927 00000 n +0000850316 00000 n +0000850510 00000 n +0000850714 00000 n +0000850915 00000 n +0000851101 00000 n +0000851383 00000 n +0000851577 00000 n +0000851769 00000 n +0000851955 00000 n +0000852248 00000 n +0000852442 00000 n +0000852646 00000 n +0000852846 00000 n +0000853032 00000 n +0000853322 00000 n +0000853513 00000 n +0000853687 00000 n +0000854152 00000 n +0000854346 00000 n +0000854551 00000 n +0000854738 00000 n +0000855184 00000 n +0000855379 00000 n +0000855571 00000 n +0000855757 00000 n +0000856202 00000 n +0000856396 00000 n +0000856600 00000 n +0000856801 00000 n +0000856988 00000 n +0000857246 00000 n +0000857424 00000 n +0000857610 00000 n +0000857891 00000 n +0000858081 00000 n +0000858267 00000 n +0000858584 00000 n +0000858779 00000 n +0000858984 00000 n +0000859171 00000 n +0000859534 00000 n +0000859728 00000 n +0000859932 00000 n +0000860119 00000 n +0000860347 00000 n +0000860553 00000 n +0000860758 00000 n +0000860955 00000 n +0000861168 00000 n +0000861393 00000 n +0000861637 00000 n +0000861829 00000 n +0000862017 00000 n +0000862214 00000 n +0000862414 00000 n +0000862590 00000 n +0000862815 00000 n +0000863003 00000 n +0000863211 00000 n +0000863484 00000 n +0000863705 00000 n +0000863890 00000 n +0000864119 00000 n +0000864324 00000 n +0000864486 00000 n +0000865143 00000 n +0000873151 00000 n +0000873367 00000 n +0000874730 00000 n +0000875797 00000 n +0000883549 00000 n +0000883770 00000 n +0000885133 00000 n +0000886210 00000 n +0000889471 00000 n +0000889697 00000 n +0000891060 00000 n +0000892176 00000 n +0000894379 00000 n +0000894593 00000 n +0000895956 00000 n trailer -<< /Size 895 +<< /Size 894 /Root 2 0 R /Info 1 0 R >> startxref -897114 +897081 %%EOF diff --git a/docs/user-guide.rst b/docs/user-guide.rst index bfac885dc..b3c1535b2 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -94,7 +94,10 @@ To configure operational policies, user has to click the corresponding operation |clamp-op-policy-box-policy| +Operations and payload for CDS actor is fetched from CDS. +Clamp receives CDS blueprint name and version information from sdnc_model_name and sdnc_model_version properties in CSAR distributed by SDC and queries CDS to get list of operations and payload for the corresponding CDS blueprint. +|clamp-cds-operation| Micro-service policy properties ------------------------------- @@ -151,3 +154,4 @@ Once deployed on DCAE the status of DCAE goes to *MICROSERVICE_INSTALLED_SUCCESS .. |clamp-policy-submitted| image:: images/user-guide/policy-submitted.png .. |clamp-deploy-params| image:: images/user-guide/deploy-params.png .. |blueprint-node| image:: images/user-guide/blueprint_node_type.png +.. |clamp-cds-operation| image:: images/user-guide/clamp-cds-operation.png diff --git a/extra/sql/dump/test-data.sql b/extra/sql/dump/test-data.sql index af1a58f38..636c52b7a 100644 --- a/extra/sql/dump/test-data.sql +++ b/extra/sql/dump/test-data.sql @@ -26,8 +26,8 @@ USE `cldsdb4`; LOCK TABLES `dictionary` WRITE; /*!40000 ALTER TABLE `dictionary` DISABLE KEYS */; -INSERT INTO `dictionary` VALUES ('DefaultActors','Not found','2020-04-28 15:51:14.783891','Not found','2020-04-28 15:51:14.783891',0,''); -INSERT INTO `dictionary` VALUES ('DefaultOperations','Not found','2020-04-28 15:51:14.851329','Not found','2020-04-28 15:51:14.851329',0,''); +INSERT INTO `dictionary` VALUES ('DefaultActors','Not found','2020-05-13 00:39:21.684583','Not found','2020-05-13 00:39:21.684583',0,''); +INSERT INTO `dictionary` VALUES ('DefaultOperations','Not found','2020-05-13 00:39:21.727475','Not found','2020-05-13 00:39:21.727475',0,''); /*!40000 ALTER TABLE `dictionary` ENABLE KEYS */; UNLOCK TABLES; @@ -37,20 +37,20 @@ UNLOCK TABLES; LOCK TABLES `dictionary_elements` WRITE; /*!40000 ALTER TABLE `dictionary_elements` DISABLE KEYS */; -INSERT INTO `dictionary_elements` VALUES ('APPC','Not found','2020-04-28 15:51:14.812945','Not found','2020-04-28 15:51:14.812945','APPC component','APPC',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2020-04-28 15:51:14.857398','Not found','2020-04-28 15:51:14.857398','SDNC operation','BandwidthOnDemand',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('Health-Check (APPC operation)','Not found','2020-04-28 15:51:14.894262','Not found','2020-04-28 15:51:14.894262','APPC operation','Health-Check',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('Migrate (APPC operation)','Not found','2020-04-28 15:51:14.889587','Not found','2020-04-28 15:51:14.889587','APPC operation','Migrate',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2020-04-28 15:51:14.879761','Not found','2020-04-28 15:51:14.879761','APPC/VFC operation','ModifyConfig',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('Rebuild (APPC operation)','Not found','2020-04-28 15:51:14.875550','Not found','2020-04-28 15:51:14.875550','APPC operation','Rebuild',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('Reroute (SDNC operation)','Not found','2020-04-28 15:51:14.869495','Not found','2020-04-28 15:51:14.869495','SDNC operation','Reroute',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('Restart (APPC operation)','Not found','2020-04-28 15:51:14.884744','Not found','2020-04-28 15:51:14.884744','APPC operation','Restart',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('SDNC','Not found','2020-04-28 15:51:14.800408','Not found','2020-04-28 15:51:14.800408','SDNC component','SDNC',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('SDNR','Not found','2020-04-28 15:51:14.795804','Not found','2020-04-28 15:51:14.795804','SDNR component','SDNR',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('SO','Not found','2020-04-28 15:51:14.807452','Not found','2020-04-28 15:51:14.807452','SO component','SO',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('VF Module Create (SO operation)','Not found','2020-04-28 15:51:14.872111','Not found','2020-04-28 15:51:14.872111','SO operation','VF Module Create',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('VF Module Delete (SO operation)','Not found','2020-04-28 15:51:14.866545','Not found','2020-04-28 15:51:14.866545','SO operation','VF Module Delete',NULL,'string'); -INSERT INTO `dictionary_elements` VALUES ('VFC','Not found','2020-04-28 15:51:14.804187','Not found','2020-04-28 15:51:14.804187','VFC component','VFC',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('APPC','Not found','2020-05-13 00:39:21.706160','Not found','2020-05-13 00:39:21.706160','APPC component','APPC',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2020-05-13 00:39:21.730457','Not found','2020-05-13 00:39:21.730457','SDNC operation','BandwidthOnDemand',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('Health-Check (APPC operation)','Not found','2020-05-13 00:39:21.750947','Not found','2020-05-13 00:39:21.750947','APPC operation','Health-Check',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('Migrate (APPC operation)','Not found','2020-05-13 00:39:21.748635','Not found','2020-05-13 00:39:21.748635','APPC operation','Migrate',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2020-05-13 00:39:21.742800','Not found','2020-05-13 00:39:21.742800','APPC/VFC operation','ModifyConfig',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('Rebuild (APPC operation)','Not found','2020-05-13 00:39:21.740789','Not found','2020-05-13 00:39:21.740789','APPC operation','Rebuild',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('Reroute (SDNC operation)','Not found','2020-05-13 00:39:21.735319','Not found','2020-05-13 00:39:21.735319','SDNC operation','Reroute',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('Restart (APPC operation)','Not found','2020-05-13 00:39:21.744961','Not found','2020-05-13 00:39:21.744961','APPC operation','Restart',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('SDNC','Not found','2020-05-13 00:39:21.698771','Not found','2020-05-13 00:39:21.698771','SDNC component','SDNC',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('SDNR','Not found','2020-05-13 00:39:21.696124','Not found','2020-05-13 00:39:21.696124','SDNR component','SDNR',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('SO','Not found','2020-05-13 00:39:21.703223','Not found','2020-05-13 00:39:21.703223','SO component','SO',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('VF Module Create (SO operation)','Not found','2020-05-13 00:39:21.737705','Not found','2020-05-13 00:39:21.737705','SO operation','VF Module Create',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('VF Module Delete (SO operation)','Not found','2020-05-13 00:39:21.733089','Not found','2020-05-13 00:39:21.733089','SO operation','VF Module Delete',NULL,'string'); +INSERT INTO `dictionary_elements` VALUES ('VFC','Not found','2020-05-13 00:39:21.701068','Not found','2020-05-13 00:39:21.701068','VFC component','VFC',NULL,'string'); /*!40000 ALTER TABLE `dictionary_elements` ENABLE KEYS */; UNLOCK TABLES; @@ -93,7 +93,7 @@ UNLOCK TABLES; LOCK TABLES `loop_element_models` WRITE; /*!40000 ALTER TABLE `loop_element_models` DISABLE KEYS */; -INSERT INTO `loop_element_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2020-04-28 15:50:26.227094','Not found','2020-04-28 15:50:26.445551',NULL,NULL,'MICRO_SERVICE_TYPE',NULL); +INSERT INTO `loop_element_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2020-05-13 00:38:22.973525','Not found','2020-05-13 00:38:23.546236',NULL,NULL,'MICRO_SERVICE_TYPE',NULL); /*!40000 ALTER TABLE `loop_element_models` ENABLE KEYS */; UNLOCK TABLES; @@ -112,9 +112,9 @@ UNLOCK TABLES; LOCK TABLES `loop_templates` WRITE; /*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */; -INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName1_tca','Not found','2020-04-28 15:50:26.415979','Not found','2020-04-28 15:50:26.415979','CLOSED','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-fd234f90-9591-49bd-b620-c5a7d339ba31',0,'<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-feaad164-a409-4f99-adf7-ad87680ede00\" 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=\"177.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-3d883646-6377-4efd-aa34-56486411f9b4\" 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=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-49eb852a-4e7d-42a3-8742-dd06e25f307f\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); -INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName1_tca_3','Not found','2020-04-28 15:50:26.325852','Not found','2020-04-28 15:50:26.325852','CLOSED','#\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 - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.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.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.2.2\"\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-service\"\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\":\"VM\",\"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 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: \"3904\"\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT: \"8443\"\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT: \"8500\"\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT: \"10000\"\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:\n get_input: policy_model_id\n','typeId-389e5c40-b666-4356-a815-2cb40c73f967',0,'<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-ad9e405d-1af5-4811-b697-d574e018d9e4\" 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=\"177.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-f2ece194-d756-48c9-8415-298c511ff38e\" 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=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-a99d9958-1546-479e-82e0-251ff0a7baa0\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); -INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName2_tca_2','Not found','2020-04-28 15:50:26.203641','Not found','2020-04-28 15:50:26.203641','CLOSED','#\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-5366391a-d367-4455-a3b6-808bf07d105c',0,'<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-cfc5770c-ca10-45c3-bde5-06b5864d3faf\" 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=\"177.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-bfe8d41e-2e26-47db-9ed4-eeebb49460d3\" 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=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-c69384aa-fba2-4773-adf4-cc0d27794aff\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); +INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName1_tca','Not found','2020-05-13 00:38:23.491855','Not found','2020-05-13 00:38:23.491855','CLOSED','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-4a9b8aa2-23f2-4d44-a654-94ffc6081287',0,'<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-7cd39446-5c59-459c-9217-56a37e7df158\" 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=\"177.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-5fcafdd6-d6cd-41bc-955e-11ec60feea99\" 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\" data-for-ui=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" font-weight=\"normal\" stroke-dasharray=\"none\" stroke-width=\"1\" data-grouping-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-619f502f-c85d-456c-9bdf-c417f6806dbd\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); +INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName1_tca_3','Not found','2020-05-13 00:38:23.288562','Not found','2020-05-13 00:38:23.288562','CLOSED','#\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 - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.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.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.2.2\"\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-service\"\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\":\"VM\",\"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 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: \"3904\"\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT: \"8443\"\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT: \"8500\"\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT: \"10000\"\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:\n get_input: policy_model_id\n','typeId-512c56ae-8082-4c62-8883-d3c5b5a46fa5',0,'<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-e2c88786-aa86-4daf-ab83-21f0af198168\" 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=\"177.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-9039a51d-2eaa-4536-b76b-45f5f5a193ef\" 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\" data-for-ui=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" font-weight=\"normal\" stroke-dasharray=\"none\" stroke-width=\"1\" data-grouping-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-2944b242-493b-4cc1-8f5e-ee1767accfbd\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); +INSERT INTO `loop_templates` VALUES ('LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName2_tca_2','Not found','2020-05-13 00:38:22.942798','Not found','2020-05-13 00:38:22.942798','CLOSED','#\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-6e215282-92bc-4523-b1b2-578ab51fb487',0,'<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-564e28db-8837-4a28-8cfe-77e9fa613b4e\" 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=\"177.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-f6bd4e96-fa6c-48b4-beca-407b6420a7af\" 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\" data-for-ui=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" stroke-miterlimit=\"10\" shape-rendering=\"auto\" stroke-opacity=\"1\" fill=\"black\" font-weight=\"normal\" stroke-dasharray=\"none\" stroke-width=\"1\" data-grouping-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" font-family=\"\'Dialog\'\" font-style=\"normal\" data-element-id=\"onap.policies.monitoring.cdap.tca.hi.lo.app\" 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=\"393\" xml:space=\"preserve\" y=\"46.5\" stroke=\"none\">app</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-5a11f419-090a-4bf2-ac4b-5f4fe0c779b0\" 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=\"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=\"574\" cy=\"41\"/></g></g></g></svg>',1,'63cac700-ab9a-4115-a74f-7eac85e3fce0'); /*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */; UNLOCK TABLES; @@ -152,9 +152,9 @@ UNLOCK TABLES; LOCK TABLES `looptemplates_to_loopelementmodels` WRITE; /*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` DISABLE KEYS */; -INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName1_tca',0); -INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName1_tca_3',0); -INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_jtKBD_v1_0_ResourceInstanceName2_tca_2',0); +INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName1_tca',0); +INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName1_tca_3',0); +INSERT INTO `looptemplates_to_loopelementmodels` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_dgY2q_v1_0_ResourceInstanceName2_tca_2',0); /*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` ENABLE KEYS */; UNLOCK TABLES; @@ -182,13 +182,13 @@ UNLOCK TABLES; LOCK TABLES `policy_models` WRITE; /*!40000 ALTER TABLE `policy_models` DISABLE KEYS */; -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2020-04-28 15:49:51.529358','Not found','2020-04-28 15:49:51.529358','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.Blacklist:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports blacklist of entity id\'s from performing control loop\n actions on.\n properties:\n blacklist:\n type: list\n description: List of entity id\'s\n required: true\n entry_schema:\n type: string\n',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2020-04-28 15:49:51.346087','Not found','2020-04-28 15:49:51.346087','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.FrequencyLimiter:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports limiting the frequency of actions being taken by a Actor.\n properties:\n timeWindow:\n type: integer\n description: The time window to count the actions against.\n required: true\n timeUnits:\n type: string\n description: The units of time the window is counting.\n constraints:\n - valid_values:\n - second\n - minute\n - hour\n - day\n - week\n - month\n - year\n limit:\n type: integer\n description: The limit\n required: true\n constraints:\n - greater_than: 0\n',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0','Not found','2020-04-28 15:49:51.711692','Not found','2020-04-28 15:49:51.711692','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.MinMax:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports Min/Max number of entity for scaling operations\n properties:\n min:\n type: integer\n required: true\n description: The minimum instances of this entity\n max:\n type: integer\n required: false\n description: The maximum instances of this entity\n',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.Operational','1.0.0','Not found','2020-04-28 15:50:08.255645','Not found','2020-04-28 15:50:08.255645','OperationalPolicyLegacy','',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0','Not found','2020-04-28 15:49:51.123594','Not found','2020-04-28 15:49:51.123594','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.Common:\n properties:\n abatement:\n name: abatement\n type: boolean\n typeVersion: 0.0.0\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n default: \'false\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n operations:\n name: operations\n type: list\n typeVersion: 0.0.0\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n constraints: [\n ]\n entry_schema:\n type: onap.datatype.controlloop.Operation\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata: {\n }\n trigger:\n name: trigger\n type: string\n typeVersion: 0.0.0\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: The unique control loop id.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.Common\n version: 1.0.0\n derived_from: tosca.policies.Root\n metadata: {\n }\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n onap.policies.controlloop.operational.common.Apex:\n properties:\n engineServiceParameters:\n name: engineServiceParameters\n type: string\n typeVersion: 0.0.0\n description: The engine parameters like name, instanceCount, policy\n implementation, parameters etc.\n required: true\n constraints: [\n ]\n metadata: {\n }\n eventOutputParameters:\n name: eventOutputParameters\n type: string\n typeVersion: 0.0.0\n description: The event output parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n javaProperties:\n name: javaProperties\n type: string\n typeVersion: 0.0.0\n description: Name/value pairs of properties to be set for APEX if\n needed.\n required: false\n constraints: [\n ]\n metadata: {\n }\n eventInputParameters:\n name: eventInputParameters\n type: string\n typeVersion: 0.0.0\n description: The event input parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.common.Apex\n version: 1.0.0\n derived_from: onap.policies.controlloop.operational.Common\n metadata: {\n }\n description: Operational policies for Apex PDP\ndata_types:\n onap.datatype.controlloop.Actor:\n constraints: [\n ]\n properties:\n payload:\n name: payload\n type: map\n typeVersion: 0.0.0\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n target:\n name: target\n type: onap.datatype.controlloop.Target\n typeVersion: 0.0.0\n description: The resource the operation should be performed on.\n required: true\n constraints: [\n ]\n metadata: {\n }\n actor:\n name: actor\n type: string\n typeVersion: 0.0.0\n description: The actor performing the operation.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n name: operation\n type: string\n typeVersion: 0.0.0\n description: The operation the actor is performing.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n name: onap.datatype.controlloop.Actor\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An actor/operation/target definition\n onap.datatype.controlloop.Operation:\n constraints: [\n ]\n properties:\n failure_retries:\n name: failure_retries\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n default: final_failure_retries\n required: false\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: Unique identifier for the operation\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_timeout:\n name: failure_timeout\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n default: final_failure_timeout\n required: false\n constraints: [\n ]\n metadata: {\n }\n failure:\n name: failure\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on Actor operation\n failure.\n default: final_failure\n required: false\n constraints: [\n ]\n metadata: {\n }\n operation:\n name: operation\n type: onap.datatype.controlloop.Actor\n typeVersion: 0.0.0\n description: The definition of the operation to be performed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_guard:\n name: failure_guard\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n default: final_failure_guard\n required: false\n constraints: [\n ]\n metadata: {\n }\n retries:\n name: retries\n type: integer\n typeVersion: 0.0.0\n description: The number of retries the actor should attempt to perform\n the operation.\n default: \'0\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: The amount of time for the actor to perform the operation.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_exception:\n name: failure_exception\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n causes an exception.\n default: final_failure_exception\n required: false\n constraints: [\n ]\n metadata: {\n }\n description:\n name: description\n type: string\n typeVersion: 0.0.0\n description: A user-friendly description of the intent for the operation\n required: false\n constraints: [\n ]\n metadata: {\n }\n success:\n name: success\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n default: final_success\n required: false\n constraints: [\n ]\n metadata: {\n }\n name: onap.datatype.controlloop.Operation\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An operation supported by an actor\n onap.datatype.controlloop.Target:\n constraints: [\n ]\n properties:\n entityIds:\n name: entityIds\n type: map\n typeVersion: 0.0.0\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n targetType:\n name: targetType\n type: string\n typeVersion: 0.0.0\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n metadata: {\n }\n name: onap.datatype.controlloop.Target\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: Definition for a entity in A&AI to perform a control loop operation\n on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n }\n',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0','Not found','2020-04-28 15:49:50.528540','Not found','2020-04-28 15:49:50.528540','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.common.Drools:\n derived_from: onap.policies.controlloop.operational.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Operational policies for Drools PDP\n properties:\n controllerName:\n type: string\n description: Drools controller properties\n required: false\n onap.policies.controlloop.operational.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n properties:\n id:\n type: string\n description: The unique control loop id.\n required: true\n timeout:\n type: integer\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n abatement:\n type: boolean\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n required: true\n default: false\n trigger:\n type: string\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n operations:\n type: list\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n entry_schema:\n type: onap.datatype.controlloop.Operation\ndata_types:\n onap.datatype.controlloop.Target:\n derived_from: tosca.datatypes.Root\n description: Definition for a entity in A&AI to perform a control loop operation\n on\n properties:\n targetType:\n type: string\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n entityIds:\n type: map\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n entry_schema:\n type: string\n onap.datatype.controlloop.Actor:\n derived_from: tosca.datatypes.Root\n description: An actor/operation/target definition\n properties:\n actor:\n type: string\n description: The actor performing the operation.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n type: string\n description: The operation the actor is performing.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n target:\n type: onap.datatype.controlloop.Target\n description: The resource the operation should be performed on.\n required: true\n payload:\n type: map\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n entry_schema:\n type: string\n onap.datatype.controlloop.Operation:\n derived_from: tosca.datatypes.Root\n description: An operation supported by an actor\n properties:\n id:\n type: string\n description: Unique identifier for the operation\n required: true\n description:\n type: string\n description: A user-friendly description of the intent for the operation\n required: false\n operation:\n type: onap.datatype.controlloop.Actor\n description: The definition of the operation to be performed.\n required: true\n timeout:\n type: integer\n description: The amount of time for the actor to perform the operation.\n required: true\n retries:\n type: integer\n description: The number of retries the actor should attempt to perform\n the operation.\n required: true\n default: 0\n success:\n type: string\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n required: false\n default: final_success\n failure:\n type: string\n description: Points to the operation to invoke on Actor operation\n failure.\n required: false\n default: final_failure\n failure_timeout:\n type: string\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n required: false\n default: final_failure_timeout\n failure_retries:\n type: string\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n required: false\n default: final_failure_retries\n failure_exception:\n type: string\n description: Points to the operation to invoke when the current operation\n causes an exception.\n required: false\n default: final_failure_exception\n failure_guard:\n type: string\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n required: false\n default: final_failure_guard\n',NULL); -INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2020-04-28 15:50:26.053687','Not found','2020-04-28 15:50:26.053687','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: a base policy type for all policies that govern 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: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\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\n 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\n 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\n 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); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2020-05-13 00:38:30.330076','Not found','2020-05-13 00:38:31.031970','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.Blacklist:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports blacklist of entity id\'s from performing control loop\n actions on.\n properties:\n blacklist:\n type: list\n description: List of entity id\'s\n required: true\n entry_schema:\n type: string\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}'); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2020-05-13 00:38:30.198655','Not found','2020-05-13 00:38:31.067646','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.FrequencyLimiter:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports limiting the frequency of actions being taken by a Actor.\n properties:\n timeWindow:\n type: integer\n description: The time window to count the actions against.\n required: true\n timeUnits:\n type: string\n description: The units of time the window is counting.\n constraints:\n - valid_values:\n - second\n - minute\n - hour\n - day\n - week\n - month\n - year\n limit:\n type: integer\n description: The limit\n required: true\n constraints:\n - greater_than: 0\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}'); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0','Not found','2020-05-13 00:38:30.512064','Not found','2020-05-13 00:38:30.512064','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.MinMax:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports Min/Max number of entity for scaling operations\n properties:\n min:\n type: integer\n required: true\n description: The minimum instances of this entity\n max:\n type: integer\n required: false\n description: The maximum instances of this entity\n',NULL); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.Operational','1.0.0','Not found','2020-05-13 00:37:31.959971','Not found','2020-05-13 00:38:31.098274','OperationalPolicyLegacy','','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"apex\",\n \"drools\"\n ]\n }\n ]\n}'); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0','Not found','2020-05-13 00:38:29.983627','Not found','2020-05-13 00:38:31.125210','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.Common:\n properties:\n abatement:\n name: abatement\n type: boolean\n typeVersion: 0.0.0\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n default: \'false\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n operations:\n name: operations\n type: list\n typeVersion: 0.0.0\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n constraints: [\n ]\n entry_schema:\n type: onap.datatype.controlloop.Operation\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata: {\n }\n trigger:\n name: trigger\n type: string\n typeVersion: 0.0.0\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: The unique control loop id.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.Common\n version: 1.0.0\n derived_from: tosca.policies.Root\n metadata: {\n }\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n onap.policies.controlloop.operational.common.Apex:\n properties:\n engineServiceParameters:\n name: engineServiceParameters\n type: string\n typeVersion: 0.0.0\n description: The engine parameters like name, instanceCount, policy\n implementation, parameters etc.\n required: true\n constraints: [\n ]\n metadata: {\n }\n eventOutputParameters:\n name: eventOutputParameters\n type: string\n typeVersion: 0.0.0\n description: The event output parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n javaProperties:\n name: javaProperties\n type: string\n typeVersion: 0.0.0\n description: Name/value pairs of properties to be set for APEX if\n needed.\n required: false\n constraints: [\n ]\n metadata: {\n }\n eventInputParameters:\n name: eventInputParameters\n type: string\n typeVersion: 0.0.0\n description: The event input parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.common.Apex\n version: 1.0.0\n derived_from: onap.policies.controlloop.operational.Common\n metadata: {\n }\n description: Operational policies for Apex PDP\ndata_types:\n onap.datatype.controlloop.Actor:\n constraints: [\n ]\n properties:\n payload:\n name: payload\n type: map\n typeVersion: 0.0.0\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n target:\n name: target\n type: onap.datatype.controlloop.Target\n typeVersion: 0.0.0\n description: The resource the operation should be performed on.\n required: true\n constraints: [\n ]\n metadata: {\n }\n actor:\n name: actor\n type: string\n typeVersion: 0.0.0\n description: The actor performing the operation.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n name: operation\n type: string\n typeVersion: 0.0.0\n description: The operation the actor is performing.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n name: onap.datatype.controlloop.Actor\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An actor/operation/target definition\n onap.datatype.controlloop.Operation:\n constraints: [\n ]\n properties:\n failure_retries:\n name: failure_retries\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n default: final_failure_retries\n required: false\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: Unique identifier for the operation\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_timeout:\n name: failure_timeout\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n default: final_failure_timeout\n required: false\n constraints: [\n ]\n metadata: {\n }\n failure:\n name: failure\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on Actor operation\n failure.\n default: final_failure\n required: false\n constraints: [\n ]\n metadata: {\n }\n operation:\n name: operation\n type: onap.datatype.controlloop.Actor\n typeVersion: 0.0.0\n description: The definition of the operation to be performed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_guard:\n name: failure_guard\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n default: final_failure_guard\n required: false\n constraints: [\n ]\n metadata: {\n }\n retries:\n name: retries\n type: integer\n typeVersion: 0.0.0\n description: The number of retries the actor should attempt to perform\n the operation.\n default: \'0\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: The amount of time for the actor to perform the operation.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_exception:\n name: failure_exception\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n causes an exception.\n default: final_failure_exception\n required: false\n constraints: [\n ]\n metadata: {\n }\n description:\n name: description\n type: string\n typeVersion: 0.0.0\n description: A user-friendly description of the intent for the operation\n required: false\n constraints: [\n ]\n metadata: {\n }\n success:\n name: success\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n default: final_success\n required: false\n constraints: [\n ]\n metadata: {\n }\n name: onap.datatype.controlloop.Operation\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An operation supported by an actor\n onap.datatype.controlloop.Target:\n constraints: [\n ]\n properties:\n entityIds:\n name: entityIds\n type: map\n typeVersion: 0.0.0\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n targetType:\n name: targetType\n type: string\n typeVersion: 0.0.0\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n metadata: {\n }\n name: onap.datatype.controlloop.Target\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: Definition for a entity in A&AI to perform a control loop operation\n on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n }\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"drools\"\n ]\n }\n ]\n}'); +INSERT INTO `policy_models` VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0','Not found','2020-05-13 00:38:29.673383','Not found','2020-05-13 00:38:31.172263','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.common.Drools:\n derived_from: onap.policies.controlloop.operational.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Operational policies for Drools PDP\n properties:\n controllerName:\n type: string\n description: Drools controller properties\n required: false\n onap.policies.controlloop.operational.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n properties:\n id:\n type: string\n description: The unique control loop id.\n required: true\n timeout:\n type: integer\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n abatement:\n type: boolean\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n required: true\n default: false\n trigger:\n type: string\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n operations:\n type: list\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n entry_schema:\n type: onap.datatype.controlloop.Operation\ndata_types:\n onap.datatype.controlloop.Target:\n derived_from: tosca.datatypes.Root\n description: Definition for a entity in A&AI to perform a control loop operation\n on\n properties:\n targetType:\n type: string\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n entityIds:\n type: map\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n entry_schema:\n type: string\n onap.datatype.controlloop.Actor:\n derived_from: tosca.datatypes.Root\n description: An actor/operation/target definition\n properties:\n actor:\n type: string\n description: The actor performing the operation.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n type: string\n description: The operation the actor is performing.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n target:\n type: onap.datatype.controlloop.Target\n description: The resource the operation should be performed on.\n required: true\n payload:\n type: map\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n entry_schema:\n type: string\n onap.datatype.controlloop.Operation:\n derived_from: tosca.datatypes.Root\n description: An operation supported by an actor\n properties:\n id:\n type: string\n description: Unique identifier for the operation\n required: true\n description:\n type: string\n description: A user-friendly description of the intent for the operation\n required: false\n operation:\n type: onap.datatype.controlloop.Actor\n description: The definition of the operation to be performed.\n required: true\n timeout:\n type: integer\n description: The amount of time for the actor to perform the operation.\n required: true\n retries:\n type: integer\n description: The number of retries the actor should attempt to perform\n the operation.\n required: true\n default: 0\n success:\n type: string\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n required: false\n default: final_success\n failure:\n type: string\n description: Points to the operation to invoke on Actor operation\n failure.\n required: false\n default: final_failure\n failure_timeout:\n type: string\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n required: false\n default: final_failure_timeout\n failure_retries:\n type: string\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n required: false\n default: final_failure_retries\n failure_exception:\n type: string\n description: Points to the operation to invoke when the current operation\n causes an exception.\n required: false\n default: final_failure_exception\n failure_guard:\n type: string\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n required: false\n default: final_failure_guard\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"drools\"\n ]\n }\n ]\n}'); +INSERT INTO `policy_models` VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2020-05-13 00:38:21.671851','Not found','2020-05-13 00:38:31.224392','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: a base policy type for all policies that govern 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: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\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\n 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\n 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\n 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','{\n \"supportedPdpGroups\": [\n {\n \"monitoring\": [\n \"xacml\"\n ]\n }\n ]\n}'); /*!40000 ALTER TABLE `policy_models` ENABLE KEYS */; UNLOCK TABLES; @@ -210,4 +210,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2020-04-28 13:52:13 +-- Dump completed on 2020-05-12 22:40:19 diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/DocumentBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/DocumentBuilder.java index f34eaf2ee..7c624be0f 100644 --- a/src/main/java/org/onap/clamp/clds/util/drawing/DocumentBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/DocumentBuilder.java @@ -33,6 +33,8 @@ public class DocumentBuilder { private final Document documentFactory; static final String DATA_ELEMENT_ID_ATTRIBUTE = "data-element-id"; + static final String DATA_ELEMENT_GROUPING_ATTRIBUTE = "data-grouping-id"; + static final String DATA_FOR_UI_ATTRIBUTE = "data-for-ui"; DocumentBuilder(Document groupingDocument, Document documentFactory) { this.groupingDocument = groupingDocument; @@ -40,10 +42,20 @@ public class DocumentBuilder { } void pushChangestoDocument(SVGGraphics2D g2d, String dataElementId) { + pushChangestoDocument(g2d, dataElementId,null,null); + } + + void pushChangestoDocument(SVGGraphics2D g2d, String dataElementId, String dataGroupingId, String dataForUI) { Element element = this.documentFactory.createElementNS(SVGGraphics2D.SVG_NAMESPACE_URI, SVGGraphics2D.SVG_G_TAG); element.setAttribute(DATA_ELEMENT_ID_ATTRIBUTE, dataElementId); + if (dataGroupingId != null) { + element.setAttribute(DATA_ELEMENT_GROUPING_ATTRIBUTE, dataGroupingId); + } + if (dataForUI != null) { + element.setAttribute(DATA_FOR_UI_ATTRIBUTE, dataForUI); + } g2d.getRoot(element); Node node = this.groupingDocument.importNode(element, true); this.groupingDocument.getDocumentElement().appendChild(node); diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java index f63ead8e7..72df90f2b 100644 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java @@ -49,7 +49,7 @@ public class ImageBuilder { private static final int CIRCLE_RADIUS = 17; ImageBuilder(SVGGraphics2D svgGraphics2D, DocumentBuilder documentBuilder, Point startingPoint, int baseLength, - int rectHeight) { + int rectHeight) { this.g2d = svgGraphics2D; this.documentBuilder = documentBuilder; this.currentPoint = new Point(startingPoint); @@ -57,13 +57,13 @@ public class ImageBuilder { this.rectHeight = rectHeight; } - ImageBuilder rectangle(String dataElementId, RectTypes rectType, String text) { + ImageBuilder rectangle(String dataElementId, RectTypes rectType, String boxText, String groupingId, String uiData) { Point next = new Point(currentPoint.x + baseLength, currentPoint.y); Point point = coordinatesForRectangle(currentPoint, next); - handleBasedOnRectType(rectType, text, point, baseLength, rectHeight); + handleBasedOnRectType(rectType, boxText, point, baseLength, rectHeight); - documentBuilder.pushChangestoDocument(g2d, dataElementId); + documentBuilder.pushChangestoDocument(g2d, dataElementId, groupingId, uiData); currentPoint = next; return this; } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java index 509d4e41c..ff7d2c215 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java @@ -79,14 +79,18 @@ public class Painter { private void doTheActualDrawing(String collector, Set<MicroServicePolicy> microServices, Set<OperationalPolicy> policies, ImageBuilder ib) { - ib.circle("start-circle", SLIM_LINE).arrow().rectangle(collector, RectTypes.COLECTOR, collector); + ib.circle("start-circle", SLIM_LINE).arrow().rectangle(collector, RectTypes.COLECTOR, collector, null, null); for (MicroServicePolicy ms : microServices) { ib.arrow().rectangle(ms.getName(), - RectTypes.MICROSERVICE, ms.getPolicyModel().getPolicyAcronym()); + RectTypes.MICROSERVICE, ms.getPolicyModel().getPolicyAcronym(), + ms.getLoopElementModel() != null ? ms.getLoopElementModel().getName() : null, + ms.getLoopElementModel() != null ? ms.getLoopElementModel().getName() : null); } for (OperationalPolicy policy : policies) { - ib.arrow().rectangle(policy.getName(), RectTypes.POLICY, policy.getPolicyModel().getPolicyAcronym()); + ib.arrow().rectangle(policy.getName(), RectTypes.POLICY, policy.getPolicyModel().getPolicyAcronym(), + policy.getLoopElementModel() != null ? policy.getLoopElementModel().getName() : null, + policy.getLoopElementModel() != null ? policy.getLoopElementModel().getName() : null); } ib.arrow().circle("stop-circle", THICK_LINE); } diff --git a/src/main/java/org/onap/clamp/loop/LoopService.java b/src/main/java/org/onap/clamp/loop/LoopService.java index 3f568a331..5f0822816 100644 --- a/src/main/java/org/onap/clamp/loop/LoopService.java +++ b/src/main/java/org/onap/clamp/loop/LoopService.java @@ -120,9 +120,10 @@ public class LoopService { PolicyModel policyModel = policyModelsService.getPolicyModel(policyType, policyVersion); Set<OperationalPolicy> opPolicySet = loop.getOperationalPolicies(); for (OperationalPolicy opPolicy : opPolicySet) { - if (opPolicy.getPolicyModel().equals(policyModel)) { - throw new IllegalArgumentException("This type of Operational Policy is already added to the loop. Please choose another one."); - } + if (opPolicy.getPolicyModel().equals(policyModel)) { + throw new IllegalArgumentException( + "This type of Operational Policy is already added to the loop. Please choose another one."); + } } if (policyModel == null) { return null; diff --git a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java index 35fdf43cd..70cdbe233 100644 --- a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java +++ b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java @@ -80,6 +80,7 @@ public class LoopElementModel extends AuditEntity implements Serializable { /** * The type of element. */ + @Expose @Column(nullable = false, name = "loop_element_type") private String loopElementType; diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html index 6bce83675..0c83b137e 100644 --- a/src/main/resources/META-INF/resources/swagger.html +++ b/src/main/resources/META-INF/resources/swagger.html @@ -444,31 +444,31 @@ 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="#_route75">2.1. GET /v1/healthcheck</a> +<li><a href="#_route113">2.1. GET /v1/healthcheck</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="#_route76">2.2. GET /v1/user/getUser</a> +<li><a href="#_route114">2.2. GET /v1/user/getUser</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="#_route74">2.3. GET /v2/clampInformation</a> +<li><a href="#_route112">2.3. GET /v2/clampInformation</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="#_route58">2.4. GET /v2/dictionary</a> +<li><a href="#_route96">2.4. GET /v2/dictionary</a> <ul class="sectlevel3"> <li><a href="#_responses_4">2.4.1. Responses</a></li> <li><a href="#_produces_4">2.4.2. Produces</a></li> </ul> </li> -<li><a href="#_route61">2.5. PUT /v2/dictionary</a> +<li><a href="#_route99">2.5. PUT /v2/dictionary</a> <ul class="sectlevel3"> <li><a href="#_parameters">2.5.1. Parameters</a></li> <li><a href="#_responses_5">2.5.2. Responses</a></li> @@ -476,20 +476,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_5">2.5.4. Produces</a></li> </ul> </li> -<li><a href="#_route59">2.6. GET /v2/dictionary/secondary/names</a> +<li><a href="#_route97">2.6. GET /v2/dictionary/secondary/names</a> <ul class="sectlevel3"> <li><a href="#_responses_6">2.6.1. Responses</a></li> <li><a href="#_produces_6">2.6.2. Produces</a></li> </ul> </li> -<li><a href="#_route60">2.7. GET /v2/dictionary/{dictionaryName}</a> +<li><a href="#_route98">2.7. GET /v2/dictionary/{dictionaryName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_2">2.7.1. Parameters</a></li> <li><a href="#_responses_7">2.7.2. Responses</a></li> <li><a href="#_produces_7">2.7.3. Produces</a></li> </ul> </li> -<li><a href="#_route62">2.8. PUT /v2/dictionary/{name}</a> +<li><a href="#_route100">2.8. PUT /v2/dictionary/{name}</a> <ul class="sectlevel3"> <li><a href="#_parameters_3">2.8.1. Parameters</a></li> <li><a href="#_responses_8">2.8.2. Responses</a></li> @@ -497,28 +497,28 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_8">2.8.4. Produces</a></li> </ul> </li> -<li><a href="#_route63">2.9. DELETE /v2/dictionary/{name}</a> +<li><a href="#_route101">2.9. DELETE /v2/dictionary/{name}</a> <ul class="sectlevel3"> <li><a href="#_parameters_4">2.9.1. Parameters</a></li> <li><a href="#_responses_9">2.9.2. Responses</a></li> <li><a href="#_produces_9">2.9.3. Produces</a></li> </ul> </li> -<li><a href="#_route64">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a> +<li><a href="#_route102">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_5">2.10.1. Parameters</a></li> <li><a href="#_responses_10">2.10.2. Responses</a></li> <li><a href="#_produces_10">2.10.3. Produces</a></li> </ul> </li> -<li><a href="#_route55">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a> +<li><a href="#_route93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a> <ul class="sectlevel3"> <li><a href="#_parameters_6">2.11.1. Parameters</a></li> <li><a href="#_responses_11">2.11.2. Responses</a></li> <li><a href="#_produces_11">2.11.3. Produces</a></li> </ul> </li> -<li><a href="#_route57">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a> +<li><a href="#_route95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_7">2.12.1. Parameters</a></li> <li><a href="#_responses_12">2.12.2. Responses</a></li> @@ -526,89 +526,89 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_12">2.12.4. Produces</a></li> </ul> </li> -<li><a href="#_route53">2.13. PUT /v2/loop/delete/{loopName}</a> +<li><a href="#_route91">2.13. PUT /v2/loop/delete/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_8">2.13.1. Parameters</a></li> <li><a href="#_responses_13">2.13.2. Responses</a></li> </ul> </li> -<li><a href="#_route46">2.14. PUT /v2/loop/deploy/{loopName}</a> +<li><a href="#_route84">2.14. PUT /v2/loop/deploy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_9">2.14.1. Parameters</a></li> <li><a href="#_responses_14">2.14.2. Responses</a></li> <li><a href="#_produces_13">2.14.3. Produces</a></li> </ul> </li> -<li><a href="#_route40">2.15. GET /v2/loop/getAllNames</a> +<li><a href="#_route78">2.15. GET /v2/loop/getAllNames</a> <ul class="sectlevel3"> <li><a href="#_responses_15">2.15.1. Responses</a></li> <li><a href="#_produces_14">2.15.2. Produces</a></li> </ul> </li> -<li><a href="#_route54">2.16. GET /v2/loop/getstatus/{loopName}</a> +<li><a href="#_route92">2.16. GET /v2/loop/getstatus/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_10">2.16.1. Parameters</a></li> <li><a href="#_responses_16">2.16.2. Responses</a></li> <li><a href="#_produces_15">2.16.3. Produces</a></li> </ul> </li> -<li><a href="#_route47">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a> +<li><a href="#_route85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_11">2.17.1. Parameters</a></li> <li><a href="#_responses_17">2.17.2. Responses</a></li> <li><a href="#_produces_16">2.17.3. Produces</a></li> </ul> </li> -<li><a href="#_route48">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a> +<li><a href="#_route86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_12">2.18.1. Parameters</a></li> <li><a href="#_responses_18">2.18.2. Responses</a></li> <li><a href="#_produces_17">2.18.3. Produces</a></li> </ul> </li> -<li><a href="#_route56">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a> +<li><a href="#_route94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_13">2.19.1. Parameters</a></li> <li><a href="#_responses_19">2.19.2. Responses</a></li> <li><a href="#_produces_18">2.19.3. Produces</a></li> </ul> </li> -<li><a href="#_route51">2.20. PUT /v2/loop/restart/{loopName}</a> +<li><a href="#_route89">2.20. PUT /v2/loop/restart/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_14">2.20.1. Parameters</a></li> <li><a href="#_responses_20">2.20.2. Responses</a></li> <li><a href="#_produces_19">2.20.3. Produces</a></li> </ul> </li> -<li><a href="#_route50">2.21. PUT /v2/loop/stop/{loopName}</a> +<li><a href="#_route88">2.21. PUT /v2/loop/stop/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_15">2.21.1. Parameters</a></li> <li><a href="#_responses_21">2.21.2. Responses</a></li> <li><a href="#_produces_20">2.21.3. Produces</a></li> </ul> </li> -<li><a href="#_route52">2.22. PUT /v2/loop/submit/{loopName}</a> +<li><a href="#_route90">2.22. PUT /v2/loop/submit/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_16">2.22.1. Parameters</a></li> <li><a href="#_responses_22">2.22.2. Responses</a></li> <li><a href="#_produces_21">2.22.3. Produces</a></li> </ul> </li> -<li><a href="#_route42">2.23. GET /v2/loop/svgRepresentation/{loopName}</a> +<li><a href="#_route80">2.23. GET /v2/loop/svgRepresentation/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_17">2.23.1. Parameters</a></li> <li><a href="#_responses_23">2.23.2. Responses</a></li> <li><a href="#_produces_22">2.23.3. Produces</a></li> </ul> </li> -<li><a href="#_route49">2.24. PUT /v2/loop/undeploy/{loopName}</a> +<li><a href="#_route87">2.24. PUT /v2/loop/undeploy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_18">2.24.1. Parameters</a></li> <li><a href="#_responses_24">2.24.2. Responses</a></li> <li><a href="#_produces_23">2.24.3. Produces</a></li> </ul> </li> -<li><a href="#_route43">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a> +<li><a href="#_route81">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_19">2.25.1. Parameters</a></li> <li><a href="#_responses_25">2.25.2. Responses</a></li> @@ -616,7 +616,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_24">2.25.4. Produces</a></li> </ul> </li> -<li><a href="#_route45">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a> +<li><a href="#_route83">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_20">2.26.1. Parameters</a></li> <li><a href="#_responses_26">2.26.2. Responses</a></li> @@ -624,7 +624,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_25">2.26.4. Produces</a></li> </ul> </li> -<li><a href="#_route44">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a> +<li><a href="#_route82">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_21">2.27.1. Parameters</a></li> <li><a href="#_responses_27">2.27.2. Responses</a></li> @@ -632,14 +632,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_26">2.27.4. Produces</a></li> </ul> </li> -<li><a href="#_route41">2.28. GET /v2/loop/{loopName}</a> +<li><a href="#_route79">2.28. GET /v2/loop/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_22">2.28.1. Parameters</a></li> <li><a href="#_responses_28">2.28.2. Responses</a></li> <li><a href="#_produces_27">2.28.3. Produces</a></li> </ul> </li> -<li><a href="#_route68">2.29. POST /v2/policyToscaModels</a> +<li><a href="#_route106">2.29. POST /v2/policyToscaModels</a> <ul class="sectlevel3"> <li><a href="#_parameters_23">2.29.1. Parameters</a></li> <li><a href="#_responses_29">2.29.2. Responses</a></li> @@ -647,27 +647,27 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_28">2.29.4. Produces</a></li> </ul> </li> -<li><a href="#_route65">2.30. GET /v2/policyToscaModels</a> +<li><a href="#_route103">2.30. GET /v2/policyToscaModels</a> <ul class="sectlevel3"> <li><a href="#_responses_30">2.30.1. Responses</a></li> <li><a href="#_produces_29">2.30.2. Produces</a></li> </ul> </li> -<li><a href="#_route67">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a> +<li><a href="#_route105">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a> <ul class="sectlevel3"> <li><a href="#_parameters_24">2.31.1. Parameters</a></li> <li><a href="#_responses_31">2.31.2. Responses</a></li> <li><a href="#_produces_30">2.31.3. Produces</a></li> </ul> </li> -<li><a href="#_route66">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a> +<li><a href="#_route104">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a> <ul class="sectlevel3"> <li><a href="#_parameters_25">2.32.1. Parameters</a></li> <li><a href="#_responses_32">2.32.2. Responses</a></li> <li><a href="#_produces_31">2.32.3. Produces</a></li> </ul> </li> -<li><a href="#_route69">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a> +<li><a href="#_route107">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a> <ul class="sectlevel3"> <li><a href="#_parameters_26">2.33.1. Parameters</a></li> <li><a href="#_responses_33">2.33.2. Responses</a></li> @@ -675,26 +675,26 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_32">2.33.4. Produces</a></li> </ul> </li> -<li><a href="#_route70">2.34. GET /v2/templates</a> +<li><a href="#_route108">2.34. GET /v2/templates</a> <ul class="sectlevel3"> <li><a href="#_responses_34">2.34.1. Responses</a></li> <li><a href="#_produces_33">2.34.2. Produces</a></li> </ul> </li> -<li><a href="#_route72">2.35. GET /v2/templates/names</a> +<li><a href="#_route110">2.35. GET /v2/templates/names</a> <ul class="sectlevel3"> <li><a href="#_responses_35">2.35.1. Responses</a></li> <li><a href="#_produces_34">2.35.2. Produces</a></li> </ul> </li> -<li><a href="#_route71">2.36. GET /v2/templates/{templateName}</a> +<li><a href="#_route109">2.36. GET /v2/templates/{templateName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_27">2.36.1. Parameters</a></li> <li><a href="#_responses_36">2.36.2. Responses</a></li> <li><a href="#_produces_35">2.36.3. Produces</a></li> </ul> </li> -<li><a href="#_route73">2.37. GET /v2/templates/{templateName}/svgRepresentation</a> +<li><a href="#_route111">2.37. GET /v2/templates/{templateName}/svgRepresentation</a> <ul class="sectlevel3"> <li><a href="#_parameters_28">2.37.1. Parameters</a></li> <li><a href="#_responses_37">2.37.2. Responses</a></li> @@ -737,13 +737,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> : 5.0.5-SNAPSHOT</p> +<p><em>Version</em> : 5.1.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:40065<br> +<p><em>Host</em> : localhost:37033<br> <em>BasePath</em> : /restservices/clds/<br> <em>Schemes</em> : HTTP</p> </div> @@ -754,7 +754,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="_route75"><a class="anchor" href="#_route75"></a><a class="link" href="#_route75">2.1. GET /v1/healthcheck</a></h3> +<h3 id="_route113"><a class="anchor" href="#_route113"></a><a class="link" href="#_route113">2.1. GET /v1/healthcheck</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"> @@ -791,7 +791,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route76"><a class="anchor" href="#_route76"></a><a class="link" href="#_route76">2.2. GET /v1/user/getUser</a></h3> +<h3 id="_route114"><a class="anchor" href="#_route114"></a><a class="link" href="#_route114">2.2. GET /v1/user/getUser</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"> @@ -825,7 +825,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route74"><a class="anchor" href="#_route74"></a><a class="link" href="#_route74">2.3. GET /v2/clampInformation</a></h3> +<h3 id="_route112"><a class="anchor" href="#_route112"></a><a class="link" href="#_route112">2.3. GET /v2/clampInformation</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"> @@ -862,7 +862,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route58"><a class="anchor" href="#_route58"></a><a class="link" href="#_route58">2.4. GET /v2/dictionary</a></h3> +<h3 id="_route96"><a class="anchor" href="#_route96"></a><a class="link" href="#_route96">2.4. GET /v2/dictionary</a></h3> <div class="sect3"> <h4 id="_responses_4"><a class="anchor" href="#_responses_4"></a><a class="link" href="#_responses_4">2.4.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -899,7 +899,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route61"><a class="anchor" href="#_route61"></a><a class="link" href="#_route61">2.5. PUT /v2/dictionary</a></h3> +<h3 id="_route99"><a class="anchor" href="#_route99"></a><a class="link" href="#_route99">2.5. PUT /v2/dictionary</a></h3> <div class="sect3"> <h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.5.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -971,7 +971,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route59"><a class="anchor" href="#_route59"></a><a class="link" href="#_route59">2.6. GET /v2/dictionary/secondary/names</a></h3> +<h3 id="_route97"><a class="anchor" href="#_route97"></a><a class="link" href="#_route97">2.6. GET /v2/dictionary/secondary/names</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"> @@ -1008,7 +1008,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route60"><a class="anchor" href="#_route60"></a><a class="link" href="#_route60">2.7. GET /v2/dictionary/{dictionaryName}</a></h3> +<h3 id="_route98"><a class="anchor" href="#_route98"></a><a class="link" href="#_route98">2.7. GET /v2/dictionary/{dictionaryName}</a></h3> <div class="sect3"> <h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.7.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1070,7 +1070,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route62"><a class="anchor" href="#_route62"></a><a class="link" href="#_route62">2.8. PUT /v2/dictionary/{name}</a></h3> +<h3 id="_route100"><a class="anchor" href="#_route100"></a><a class="link" href="#_route100">2.8. PUT /v2/dictionary/{name}</a></h3> <div class="sect3"> <h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.8.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1148,7 +1148,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route63"><a class="anchor" href="#_route63"></a><a class="link" href="#_route63">2.9. DELETE /v2/dictionary/{name}</a></h3> +<h3 id="_route101"><a class="anchor" href="#_route101"></a><a class="link" href="#_route101">2.9. DELETE /v2/dictionary/{name}</a></h3> <div class="sect3"> <h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.9.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1207,7 +1207,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route64"><a class="anchor" href="#_route64"></a><a class="link" href="#_route64">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3> +<h3 id="_route102"><a class="anchor" href="#_route102"></a><a class="link" href="#_route102">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3> <div class="sect3"> <h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.10.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1272,7 +1272,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route55"><a class="anchor" href="#_route55"></a><a class="link" href="#_route55">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3> +<h3 id="_route93"><a class="anchor" href="#_route93"></a><a class="link" href="#_route93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3> <div class="sect3"> <h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.11.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1346,7 +1346,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route57"><a class="anchor" href="#_route57"></a><a class="link" href="#_route57">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3> +<h3 id="_route95"><a class="anchor" href="#_route95"></a><a class="link" href="#_route95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3> <div class="sect3"> <h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.12.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1418,7 +1418,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route53"><a class="anchor" href="#_route53"></a><a class="link" href="#_route53">2.13. PUT /v2/loop/delete/{loopName}</a></h3> +<h3 id="_route91"><a class="anchor" href="#_route91"></a><a class="link" href="#_route91">2.13. PUT /v2/loop/delete/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1467,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="_route46"><a class="anchor" href="#_route46"></a><a class="link" href="#_route46">2.14. PUT /v2/loop/deploy/{loopName}</a></h3> +<h3 id="_route84"><a class="anchor" href="#_route84"></a><a class="link" href="#_route84">2.14. PUT /v2/loop/deploy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1529,7 +1529,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route40"><a class="anchor" href="#_route40"></a><a class="link" href="#_route40">2.15. GET /v2/loop/getAllNames</a></h3> +<h3 id="_route78"><a class="anchor" href="#_route78"></a><a class="link" href="#_route78">2.15. GET /v2/loop/getAllNames</a></h3> <div class="sect3"> <h4 id="_responses_15"><a class="anchor" href="#_responses_15"></a><a class="link" href="#_responses_15">2.15.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1566,7 +1566,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route54"><a class="anchor" href="#_route54"></a><a class="link" href="#_route54">2.16. GET /v2/loop/getstatus/{loopName}</a></h3> +<h3 id="_route92"><a class="anchor" href="#_route92"></a><a class="link" href="#_route92">2.16. GET /v2/loop/getstatus/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.16.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1628,7 +1628,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route47"><a class="anchor" href="#_route47"></a><a class="link" href="#_route47">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3> +<h3 id="_route85"><a class="anchor" href="#_route85"></a><a class="link" href="#_route85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3> <div class="sect3"> <h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.17.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1696,7 +1696,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route48"><a class="anchor" href="#_route48"></a><a class="link" href="#_route48">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3> +<h3 id="_route86"><a class="anchor" href="#_route86"></a><a class="link" href="#_route86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3> <div class="sect3"> <h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.18.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1764,7 +1764,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route56"><a class="anchor" href="#_route56"></a><a class="link" href="#_route56">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3> +<h3 id="_route94"><a class="anchor" href="#_route94"></a><a class="link" href="#_route94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3> <div class="sect3"> <h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.19.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1844,7 +1844,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route51"><a class="anchor" href="#_route51"></a><a class="link" href="#_route51">2.20. PUT /v2/loop/restart/{loopName}</a></h3> +<h3 id="_route89"><a class="anchor" href="#_route89"></a><a class="link" href="#_route89">2.20. PUT /v2/loop/restart/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.20.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1906,7 +1906,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route50"><a class="anchor" href="#_route50"></a><a class="link" href="#_route50">2.21. PUT /v2/loop/stop/{loopName}</a></h3> +<h3 id="_route88"><a class="anchor" href="#_route88"></a><a class="link" href="#_route88">2.21. PUT /v2/loop/stop/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.21.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1968,7 +1968,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route52"><a class="anchor" href="#_route52"></a><a class="link" href="#_route52">2.22. PUT /v2/loop/submit/{loopName}</a></h3> +<h3 id="_route90"><a class="anchor" href="#_route90"></a><a class="link" href="#_route90">2.22. PUT /v2/loop/submit/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.22.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2030,7 +2030,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route42"><a class="anchor" href="#_route42"></a><a class="link" href="#_route42">2.23. GET /v2/loop/svgRepresentation/{loopName}</a></h3> +<h3 id="_route80"><a class="anchor" href="#_route80"></a><a class="link" href="#_route80">2.23. GET /v2/loop/svgRepresentation/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.23.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2092,7 +2092,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route49"><a class="anchor" href="#_route49"></a><a class="link" href="#_route49">2.24. PUT /v2/loop/undeploy/{loopName}</a></h3> +<h3 id="_route87"><a class="anchor" href="#_route87"></a><a class="link" href="#_route87">2.24. PUT /v2/loop/undeploy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.24.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2154,7 +2154,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route43"><a class="anchor" href="#_route43"></a><a class="link" href="#_route43">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3> +<h3 id="_route81"><a class="anchor" href="#_route81"></a><a class="link" href="#_route81">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_19"><a class="anchor" href="#_parameters_19"></a><a class="link" href="#_parameters_19">2.25.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2232,7 +2232,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route45"><a class="anchor" href="#_route45"></a><a class="link" href="#_route45">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3> +<h3 id="_route83"><a class="anchor" href="#_route83"></a><a class="link" href="#_route83">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_20"><a class="anchor" href="#_parameters_20"></a><a class="link" href="#_parameters_20">2.26.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2310,7 +2310,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route44"><a class="anchor" href="#_route44"></a><a class="link" href="#_route44">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3> +<h3 id="_route82"><a class="anchor" href="#_route82"></a><a class="link" href="#_route82">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2388,7 +2388,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route41"><a class="anchor" href="#_route41"></a><a class="link" href="#_route41">2.28. GET /v2/loop/{loopName}</a></h3> +<h3 id="_route79"><a class="anchor" href="#_route79"></a><a class="link" href="#_route79">2.28. GET /v2/loop/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_22"><a class="anchor" href="#_parameters_22"></a><a class="link" href="#_parameters_22">2.28.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2450,7 +2450,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route68"><a class="anchor" href="#_route68"></a><a class="link" href="#_route68">2.29. POST /v2/policyToscaModels</a></h3> +<h3 id="_route106"><a class="anchor" href="#_route106"></a><a class="link" href="#_route106">2.29. POST /v2/policyToscaModels</a></h3> <div class="sect3"> <h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.29.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2522,7 +2522,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route65"><a class="anchor" href="#_route65"></a><a class="link" href="#_route65">2.30. GET /v2/policyToscaModels</a></h3> +<h3 id="_route103"><a class="anchor" href="#_route103"></a><a class="link" href="#_route103">2.30. GET /v2/policyToscaModels</a></h3> <div class="sect3"> <h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2559,7 +2559,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route67"><a class="anchor" href="#_route67"></a><a class="link" href="#_route67">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3> +<h3 id="_route105"><a class="anchor" href="#_route105"></a><a class="link" href="#_route105">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3> <div class="sect3"> <h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.31.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2627,7 +2627,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route66"><a class="anchor" href="#_route66"></a><a class="link" href="#_route66">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3> +<h3 id="_route104"><a class="anchor" href="#_route104"></a><a class="link" href="#_route104">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3> <div class="sect3"> <h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.32.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2695,7 +2695,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route69"><a class="anchor" href="#_route69"></a><a class="link" href="#_route69">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3> +<h3 id="_route107"><a class="anchor" href="#_route107"></a><a class="link" href="#_route107">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3> <div class="sect3"> <h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.33.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2779,7 +2779,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route70"><a class="anchor" href="#_route70"></a><a class="link" href="#_route70">2.34. GET /v2/templates</a></h3> +<h3 id="_route108"><a class="anchor" href="#_route108"></a><a class="link" href="#_route108">2.34. GET /v2/templates</a></h3> <div class="sect3"> <h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2816,7 +2816,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route72"><a class="anchor" href="#_route72"></a><a class="link" href="#_route72">2.35. GET /v2/templates/names</a></h3> +<h3 id="_route110"><a class="anchor" href="#_route110"></a><a class="link" href="#_route110">2.35. GET /v2/templates/names</a></h3> <div class="sect3"> <h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2853,7 +2853,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route71"><a class="anchor" href="#_route71"></a><a class="link" href="#_route71">2.36. GET /v2/templates/{templateName}</a></h3> +<h3 id="_route109"><a class="anchor" href="#_route109"></a><a class="link" href="#_route109">2.36. GET /v2/templates/{templateName}</a></h3> <div class="sect3"> <h4 id="_parameters_27"><a class="anchor" href="#_parameters_27"></a><a class="link" href="#_parameters_27">2.36.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2915,7 +2915,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route73"><a class="anchor" href="#_route73"></a><a class="link" href="#_route73">2.37. GET /v2/templates/{templateName}/svgRepresentation</a></h3> +<h3 id="_route111"><a class="anchor" href="#_route111"></a><a class="link" href="#_route111">2.37. GET /v2/templates/{templateName}/svgRepresentation</a></h3> <div class="sect3"> <h4 id="_parameters_28"><a class="anchor" href="#_parameters_28"></a><a class="link" href="#_parameters_28">2.37.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateFieldTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateFieldTest.java new file mode 100644 index 000000000..29f5a1da8 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateFieldTest.java @@ -0,0 +1,69 @@ +/*- + * ============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.tosca.update; + +import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateField; + +public class JsonTemplateFieldTest extends TestCase { + + JsonTemplateField field1 = new JsonTemplateField("type", "testType", true, true); + JsonTemplateField field2 = new JsonTemplateField("type"); + JsonTemplateField field3 = new JsonTemplateField("type", "testType1", true, true); + JsonTemplateField field4 = new JsonTemplateField("type", "testType", false, true); + JsonTemplateField field5 = new JsonTemplateField("type", "testType", true, false); + JsonTemplateField field6 = new JsonTemplateField("type", "testType", true, true); + + /** + * Test fieldsEqual method. + */ + public void testFieldsEqualsMethod() { + assertFalse(JsonTemplateField.fieldsEquals(field1,field3)); + assertFalse(JsonTemplateField.fieldsEquals(field1,field4)); + assertFalse(JsonTemplateField.fieldsEquals(field1,field5)); + assertTrue(JsonTemplateField.fieldsEquals(field1,field6)); + } + + /** + * Test equals method. + */ + public void testEqualsMethod() { + assertTrue(field1.equals(field2)); + assertTrue(field1.equals(field3)); + assertTrue(field1.equals(field4)); + assertTrue(field1.equals(field5)); + assertTrue(field1.equals(field6)); + } + + /** + * Test compareWithField method. + */ + public void testCompareWithFieldMethod() { + assertFalse(field1.compareWithField(field2)); + assertFalse(field1.compareWithField(field3)); + assertFalse(field1.compareWithField(field4)); + assertFalse(field1.compareWithField(field5)); + assertTrue(field1.equals(field6)); + } +}
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java index fab3030ca..dc736a48b 100644 --- a/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java +++ b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java @@ -32,20 +32,38 @@ import org.onap.clamp.clds.tosca.update.templates.JsonTemplateField; public class JsonTemplateTest extends TestCase { + JsonTemplate toTest = new JsonTemplate("toTest"); + List<JsonTemplateField> + jsonTemplateFields = new ArrayList<>( + Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), + new JsonTemplateField( + "enum"))); + /** * Test check failed. */ public void testCheckFields() { - JsonTemplate toTest = new JsonTemplate("toTest"); - List<JsonTemplateField> - jsonTemplateFields = new ArrayList<>( - Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), - new JsonTemplateField( - "enum"))); toTest.setJsonTemplateFields(jsonTemplateFields); JsonTemplate reference = new JsonTemplate("toTest"); reference.setJsonTemplateFields(jsonTemplateFields); assertTrue(toTest.checkFields(reference)); } + /** + * Test other methods. + */ + public void testOtherFields() { + toTest.setJsonTemplateFields(jsonTemplateFields); + toTest.addField(new JsonTemplateField("moreField")); + toTest.setVisibility("moreField", true); + toTest.setStatic("moreField", true); + toTest.updateValueField("moreField", "testValue"); + + assertTrue(toTest.isVisible("moreField")); + assertTrue(toTest.getSpecificField("moreField").getValue().equals("testValue")); + assertTrue(toTest.fieldStaticStatus("moreField")); + assertTrue(toTest.toString() + .equals(" templateFields : [type null null null, description null null null, " + + "enum null null null, moreField testValue true true]")); + } }
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java index 9559fa17d..0150af025 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java @@ -24,12 +24,12 @@ package org.onap.clamp.clds.util.drawing; import static org.assertj.core.api.Assertions.assertThat; - import com.google.gson.JsonObject; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import org.junit.Test; import org.onap.clamp.loop.Loop; +import org.onap.clamp.loop.template.LoopElementModel; import org.onap.clamp.loop.template.PolicyModel; import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.clamp.policy.operational.OperationalPolicy; @@ -37,14 +37,17 @@ import org.xml.sax.SAXException; public class SvgLoopGeneratorTest { private Loop getLoop() { + + LoopElementModel msModel = new LoopElementModel("testMs", LoopElementModel.MICRO_SERVICE_TYPE, ""); MicroServicePolicy ms1 = new MicroServicePolicy("ms1", new PolicyModel("org.onap.ms1", "", "1.0.0", "short.ms1"), - false,null,null,null,null); + false,null,msModel,null,null); MicroServicePolicy ms2 = new MicroServicePolicy("ms2", new PolicyModel("org.onap.ms2", "", "1.0.0", "short.ms2"), - false, null,null,null,null); + false, null,msModel,null,null); + LoopElementModel opModel = new LoopElementModel("testOp", LoopElementModel.OPERATIONAL_POLICY_TYPE, ""); OperationalPolicy opPolicy = new OperationalPolicy("OperationalPolicy", new JsonObject(),new JsonObject(), - new PolicyModel("org.onap.opolicy", null, "1.0.0", "short.OperationalPolicy"), null, null, null); + new PolicyModel("org.onap.opolicy", null, "1.0.0", "short.OperationalPolicy"), opModel, null, null); Loop loop = new Loop(); loop.addMicroServicePolicy(ms1); loop.addMicroServicePolicy(ms2); @@ -66,6 +69,10 @@ public class SvgLoopGeneratorTest { assertThat(xml).contains(">VES<"); assertThat(xml).contains("data-element-id=\"ms1\""); assertThat(xml).contains("data-element-id=\"ms2\""); + assertThat(xml).contains("data-grouping-id=\"testMs\""); + assertThat(xml).contains("data-grouping-id=\"testOp\""); + assertThat(xml).contains("data-for-ui=\"testMs\""); + assertThat(xml).contains("data-for-ui=\"testOp\""); assertThat(xml).contains(">short.ms1<"); assertThat(xml).contains(">short.ms2<"); assertThat(xml).contains("data-element-id=\"OperationalPolicy\""); diff --git a/src/test/java/org/onap/clamp/loop/LoopTemplateLoopElementModelTest.java b/src/test/java/org/onap/clamp/loop/LoopTemplateLoopElementModelTest.java new file mode 100644 index 000000000..e5b64c99c --- /dev/null +++ b/src/test/java/org/onap/clamp/loop/LoopTemplateLoopElementModelTest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Modifications Copyright (c) 2019 Samsung + * ================================================================================ + * 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 org.junit.Test; +import org.onap.clamp.loop.template.LoopElementModel; +import org.onap.clamp.loop.template.LoopTemplate; +import org.onap.clamp.loop.template.LoopTemplateLoopElementModel; +import org.onap.clamp.loop.template.PolicyModel; + + +public class LoopTemplateLoopElementModelTest { + + private LoopElementModel loopElementModel = getLoopElementModel("yaml", "microService1", + getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools", "type1")); + private LoopTemplate loopTemplate = getLoopTemplate("templateName", "yaml", "svg", 1); + + private LoopElementModel getLoopElementModel(String yaml, String name, PolicyModel policyModel) { + LoopElementModel model = new LoopElementModel(); + model.setBlueprint(yaml); + model.setName(name); + model.addPolicyModel(policyModel); + model.setLoopElementType("OPERATIONAL_POLICY"); + return model; + } + + private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym, + String policyVariant) { + return new PolicyModel(policyType, policyModelTosca, version, policyAcronym); + } + + private LoopTemplate getLoopTemplate(String name, String blueprint, String svgRepresentation, + Integer maxInstancesAllowed) { + LoopTemplate template = new LoopTemplate(name, blueprint, svgRepresentation, maxInstancesAllowed, null); + template.addLoopElementModel(loopElementModel); + return template; + } + + /** + * This tests compareTo method. + */ + @Test + public void compareToTest() { + LoopTemplateLoopElementModel model1 = new LoopTemplateLoopElementModel(); + LoopTemplateLoopElementModel model2 = new LoopTemplateLoopElementModel(); + assertThat(model1.compareTo(model2)).isEqualTo(1); + + model1.setFlowOrder(2); + assertThat(model1.compareTo(model2)).isEqualTo(-1); + + model2.setFlowOrder(3); + assertThat(model1.compareTo(model2)).isEqualTo(1); + } + + /** + * This tests equals method. + */ + @Test + public void equalsTest() { + LoopTemplateLoopElementModel model1 = new LoopTemplateLoopElementModel(); + LoopTemplateLoopElementModel model2 = new LoopTemplateLoopElementModel(); + + assertThat(model1.equals(model2)).isTrue(); + + model1.setLoopTemplate(loopTemplate); + assertThat(model1.equals(model2)).isFalse(); + model2.setLoopTemplate(loopTemplate); + assertThat(model1.equals(model2)).isTrue(); + + model1.setLoopElementModel(loopElementModel); + assertThat(model1.equals(model2)).isFalse(); + model2.setLoopElementModel(loopElementModel); + assertThat(model1.equals(model2)).isTrue(); + + model1.setFlowOrder(1); + assertThat(model1.equals(model2)).isTrue(); + model2.setFlowOrder(2); + assertThat(model1.equals(model2)).isTrue(); + } + +} diff --git a/src/test/java/org/onap/clamp/policy/pdpgroup/PolicyModelKeyTest.java b/src/test/java/org/onap/clamp/policy/pdpgroup/PolicyModelKeyTest.java new file mode 100644 index 000000000..413ce60ab --- /dev/null +++ b/src/test/java/org/onap/clamp/policy/pdpgroup/PolicyModelKeyTest.java @@ -0,0 +1,55 @@ +/*- + * ============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.policy.pdpgroup; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.IOException; +import org.junit.Test; + +public class PolicyModelKeyTest { + + @Test + public void testEqualsMethod() throws IOException { + PolicyModelKey key1 = new PolicyModelKey("name1","1.0.0"); + PolicyModelKey key2 = new PolicyModelKey(null,"1.0.0"); + PolicyModelKey key3 = new PolicyModelKey("name1",null); + + assertThat(key1.equals(null)).isFalse(); + assertThat(key1.equals("key2")).isFalse(); + + assertThat(key2.equals(key1)).isFalse(); + assertThat(key3.equals(key1)).isFalse(); + + PolicyModelKey key4 = new PolicyModelKey("name2","1.0.0"); + PolicyModelKey key5 = new PolicyModelKey("name1","2.0.0"); + assertThat(key1.equals(key4)).isFalse(); + assertThat(key1.equals(key5)).isFalse(); + + PolicyModelKey key6 = new PolicyModelKey("name(.*)","1.0.0"); + PolicyModelKey key7 = new PolicyModelKey("name1","1.0.0"); + assertThat(key1.equals(key6)).isTrue(); + assertThat(key1.equals(key7)).isTrue(); + } +} diff --git a/ui-react/src/LoopUI.js b/ui-react/src/LoopUI.js index efd02b41f..6522cc3dd 100644 --- a/ui-react/src/LoopUI.js +++ b/ui-react/src/LoopUI.js @@ -29,7 +29,7 @@ import logo from './logo.png'; import { GlobalClampStyle } from './theme/globalStyle.js'; import OnapConstants from './utils/OnapConstants'; -import LoopSvg from './components/loop_viewer/svg/LoopSvg'; +import SvgGenerator from './components/loop_viewer/svg/SvgGenerator'; import LoopLogs from './components/loop_viewer/logs/LoopLogs'; import LoopStatus from './components/loop_viewer/status/LoopStatus'; import UserService from './api/UserService'; @@ -203,7 +203,7 @@ export default class LoopUI extends React.Component { renderLoopViewBody() { return ( <LoopViewBodyDivStyled> - <LoopSvg loopCache={this.state.loopCache} /> + <SvgGenerator loopCache={this.state.loopCache} clickable={true} generatedFrom={SvgGenerator.GENERATED_FROM_INSTANCE}/> <LoopStatus loopCache={this.state.loopCache}/> <LoopLogs loopCache={this.state.loopCache} /> </LoopViewBodyDivStyled> diff --git a/ui-react/src/__snapshots__/LoopUI.test.js.snap b/ui-react/src/__snapshots__/LoopUI.test.js.snap index ff08f7afb..d8b2e7be5 100644 --- a/ui-react/src/__snapshots__/LoopUI.test.js.snap +++ b/ui-react/src/__snapshots__/LoopUI.test.js.snap @@ -180,7 +180,9 @@ exports[`Verify LoopUI Test the render method 1`] = ` ) </styled.div> <styled.div> - <withRouter(LoopViewSvg) + <withRouter(SvgGenerator) + clickable={true} + generatedFrom="INSTANCE" loopCache={ LoopCache { "loopJsonCache": Object {}, diff --git a/ui-react/src/__snapshots__/OnapClamp.test.js.snap b/ui-react/src/__snapshots__/OnapClamp.test.js.snap index 93dc44286..39b544556 100644 --- a/ui-react/src/__snapshots__/OnapClamp.test.js.snap +++ b/ui-react/src/__snapshots__/OnapClamp.test.js.snap @@ -205,7 +205,9 @@ exports[`Verify OnapClamp Test the render method 1`] = ` ) </styled.div> <styled.div> - <withRouter(LoopViewSvg) + <withRouter(SvgGenerator) + clickable={true} + generatedFrom="INSTANCE" loopCache={ LoopCache { "loopJsonCache": Object {}, diff --git a/ui-react/src/api/LoopCache.js b/ui-react/src/api/LoopCache.js index 4f22dc2bb..3e19b4fc7 100644 --- a/ui-react/src/api/LoopCache.js +++ b/ui-react/src/api/LoopCache.js @@ -221,9 +221,32 @@ export default class LoopCache { } getTemplateName() { - if (this.loopJsonCache["loopTemplate"] !== undefined) { - return this.loopJsonCache["loopTemplate"].name; + if (this.getLoopTemplate() !== undefined) { + return this.getLoopTemplate().name; } return null; } + + getLoopTemplate() { + return this.loopJsonCache["loopTemplate"]; + } + + isOpenLoopTemplate() { + var loopTemplate = this.getLoopTemplate(); + if(loopTemplate != null && loopTemplate["allowedLoopType"] === "OPEN") { + return true; + } + return false; + } + + getAllLoopElementModels() { + var loopTemplate = this.getLoopTemplate(); + var loopElementModels = []; + if(loopTemplate != null) { + for (var element of loopTemplate['loopElementModelsUsed']) { + loopElementModels.push(element['loopElementModel']) + } + } + return loopElementModels; + } } diff --git a/ui-react/src/api/LoopCache.test.js b/ui-react/src/api/LoopCache.test.js index b0eef755c..3ae081704 100644 --- a/ui-react/src/api/LoopCache.test.js +++ b/ui-react/src/api/LoopCache.test.js @@ -39,7 +39,9 @@ describe('Verify LoopCache functions', () => { "policies": [] } }, - "jsonRepresentation": { + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", + "jsonRepresentation": { "schema": {} } }]; @@ -54,7 +56,9 @@ describe('Verify LoopCache functions', () => { "controlLoop": {}, "policies": [] } - } + }, + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", }]; expect(loopCache.getOperationalPoliciesNoJsonSchema()).toStrictEqual(opPolicy); }); @@ -92,6 +96,9 @@ describe('Verify LoopCache functions', () => { "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app", "configurationsJson": {"domain": "measurementsForVfScaling"}, "shared": false, + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", + "policyModel": {"policyPdpGroup": {"supportedPdpGroups": "supportedPdpGroupsTest"}}, "jsonRepresentation": {"schema": {}} }; expect(loopCache.getMicroServiceForName("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(msJson); @@ -180,6 +187,84 @@ describe('Verify LoopCache functions', () => { expect(loopCache.getComponentStates()).toStrictEqual(component); }); + it('getOperationalPolicyForName', () => { + const opPolicy = { + "name": "OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca", + "configurationsJson": { + "operational_policy": { + "controlLoop": {}, + "policies": [] + } + }, + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", + "jsonRepresentation": { + "schema": {} + } + }; + expect(loopCache.getOperationalPolicyForName("OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(opPolicy); + expect(loopCache.getOperationalPolicyForName("Not_Exist")).toBeNull(); + }); + + it('getOperationalPolicyPropertiesForName', () => { + const opPolicyJson = { + "operational_policy": { + "controlLoop": {}, + "policies": [] + }}; + expect(loopCache.getOperationalPolicyPropertiesForName("OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(opPolicyJson); + expect(loopCache.getOperationalPolicyPropertiesForName("Not_Exist")).toBeNull(); + }); + + it('getOperationalPolicyJsonRepresentationForName', () => { + const opPolicySchema = { + "schema": {} + }; + expect(loopCache.getOperationalPolicyJsonRepresentationForName("OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(opPolicySchema); + expect(loopCache.getOperationalPolicyJsonRepresentationForName("Not_Exist")).toBeNull(); + }); + + it('getOperationalPolicySupportedPdpGroup', () => { + expect(loopCache.getOperationalPolicySupportedPdpGroup("Not_Exist")).toStrictEqual([]); + }); + + it('getOperationalPolicyPdpGroup', () => { + expect(loopCache.getOperationalPolicyPdpGroup("OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpGroupTest"); + expect(loopCache.getOperationalPolicyPdpGroup("Not_Exist")).toBeNull(); + }); + + it('getOperationalPolicyPdpSubgroup', () => { + expect(loopCache.getOperationalPolicyPdpSubgroup("OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpSubgroupTest"); + expect(loopCache.getOperationalPolicyPdpSubgroup("Not_Exist")).toBeNull(); + }); + + it('getMicroServiceSupportedPdpGroup', () => { + expect(loopCache.getMicroServiceSupportedPdpGroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("supportedPdpGroupsTest"); + expect(loopCache.getMicroServiceSupportedPdpGroup("Not_Exist")).toStrictEqual([]); + }); + + it('getMicroServicePdpGroup', () => { + expect(loopCache.getMicroServicePdpGroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpGroupTest"); + expect(loopCache.getMicroServicePdpGroup("Not_Exist")).toBeNull(); + }); + + it('getMicroServicePdpSubgroup', () => { + expect(loopCache.getMicroServicePdpSubgroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpSubgroupTest"); + expect(loopCache.getMicroServicePdpSubgroup("Not_Exist")).toBeNull(); + }); + + it('getMicroServiceJsonRepresentationForName', () => { + const msPolicySchema = { + "schema": {} + }; + expect(loopCache.getMicroServiceJsonRepresentationForName("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(msPolicySchema); + expect(loopCache.getMicroServiceJsonRepresentationForName("Not_Exist")).toBeNull(); + }); + + it('getTemplateName', () => { + expect(loopCache.getTemplateName()).toStrictEqual("loopTemplateTest"); + }); + it('updateGlobalProperties', () => { const newGlobalProps = { "dcaeDeployParameters": { @@ -208,4 +293,13 @@ describe('Verify LoopCache functions', () => { loopCache.updateMicroServiceProperties("TCA_h2NMX_v1_0_ResourceInstanceName1_tca", newMsPolicyProperties); expect(loopCache.getMicroServicePropertiesForName("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual(newMsPolicyProperties); }); + + it('updateMicroServicePdpGroup', () => { + const newMsPolicyProperties = {"domain": "measurementsForVfScalingNew"}; + loopCache.updateMicroServicePdpGroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca", "pdpGroupTest1", "pdpSubgroupTest1"); + expect(loopCache.getMicroServicePdpGroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpGroupTest1"); + expect(loopCache.getMicroServicePdpGroup("Not_Exist")).toBeNull(); + expect(loopCache.getMicroServicePdpSubgroup("TCA_h2NMX_v1_0_ResourceInstanceName1_tca")).toStrictEqual("pdpSubgroupTest1"); + expect(loopCache.getMicroServicePdpSubgroup("Not_Exist")).toBeNull(); + }); }); diff --git a/ui-react/src/api/LoopCache_mokeLoopJsonCache.json b/ui-react/src/api/LoopCache_mokeLoopJsonCache.json index 788306b8e..cb9ed87b0 100644 --- a/ui-react/src/api/LoopCache_mokeLoopJsonCache.json +++ b/ui-react/src/api/LoopCache_mokeLoopJsonCache.json @@ -8,6 +8,7 @@ "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" } }, + "loopTemplate": {"name": "loopTemplateTest"}, "modelService": { "serviceDetails": { "serviceType": "", @@ -93,6 +94,8 @@ "policies": [] } }, + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", "jsonRepresentation": { "schema": {} } @@ -104,6 +107,9 @@ "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app", "configurationsJson": {"domain": "measurementsForVfScaling"}, "shared": false, + "pdpGroup": "pdpGroupTest", + "pdpSubgroup": "pdpSubgroupTest", + "policyModel": {"policyPdpGroup": {"supportedPdpGroups": "supportedPdpGroupsTest"}}, "jsonRepresentation": {"schema": {}} } ], diff --git a/ui-react/src/api/TemplateService.js b/ui-react/src/api/TemplateService.js index eddd58dff..3a780dd65 100644 --- a/ui-react/src/api/TemplateService.js +++ b/ui-react/src/api/TemplateService.js @@ -21,57 +21,24 @@ */ export default class TemplateService { - static getTemplateNames() { - return fetch('/restservices/clds/v2/templates/names', { method: 'GET', credentials: 'same-origin' }) - .then(function (response) { - console.debug("GetTemplateNames response received: ", response.status); - if (response.ok) { - return response.json(); - } else { - console.error("GetTemplateNames query failed"); - return {}; - } - }) - .catch(function (error) { - console.error("GetTemplateNames error received", error); - return {}; - }); - } - static getBlueprintMicroServiceTemplates() { + static getAllLoopTemplates() { return fetch('restservices/clds/v2/templates', { method: 'GET', credentials: 'same-origin', }) .then(function (response) { - console.debug("getBlueprintMicroServiceTemplates response received: ", response.status); + console.debug("getAllLoopTemplates response received: ", response.status); if (response.ok) { return response.json(); } else { - console.error("getBlueprintMicroServiceTemplates query failed"); + console.error("getAllLoopTemplates query failed"); return {}; } }) .catch(function (error) { - console.error("getBlueprintMicroServiceTemplates error received", error); + console.error("getAllLoopTemplates error received", error); return {}; }); } - static getBlueprintMicroServiceTemplateSvg(templateName) { - return fetch('/restservices/clds/v2/templates/' + templateName + ' /svgRepresentation', { method: 'GET', credentials: 'same-origin', }) - .then(function (response) { - console.debug("getBlueprintMicroServiceTemplateSvg response received: ", response.status); - if (response.ok) { - return response.text(); - } else { - console.error("getBlueprintMicroServiceTemplateSvg query failed"); - return {}; - } - }) - .catch(function (error) { - console.error("getBlueprintMicroServiceTemplateSvg error received", error); - return {}; - }); - } - static getDictionary() { return fetch('restservices/clds/v2/dictionary/', { method: 'GET', credentials: 'same-origin', }) .then(function (response) { diff --git a/ui-react/src/components/dialogs/Loop/CreateLoopModal.js b/ui-react/src/components/dialogs/Loop/CreateLoopModal.js index e98b59566..a8e8dee1f 100644 --- a/ui-react/src/components/dialogs/Loop/CreateLoopModal.js +++ b/ui-react/src/components/dialogs/Loop/CreateLoopModal.js @@ -30,46 +30,33 @@ import Col from 'react-bootstrap/Col'; import styled from 'styled-components'; import LoopService from '../../../api/LoopService'; import TemplateService from '../../../api/TemplateService'; +import LoopCache from '../../../api/LoopCache'; +import SvgGenerator from '../../loop_viewer/svg/SvgGenerator'; const ModalStyled = styled(Modal)` background-color: transparent; ` -const LoopViewSvgDivStyled = styled.svg` - display: flex; - flex-direction: row; - overflow-x: scroll; - background-color: ${props => (props.theme.loopViewerBackgroundColor)}; - border-color: ${props => (props.theme.loopViewerHeaderColor)}; - margin-top: 3em; - margin-left: auto; - margin-right:auto; - margin-bottom: -1em; - text-align: center; - align-items: center; - height: 100%; - width: 100%; -` export default class CreateLoopModal extends React.Component { constructor(props, context) { super(props, context); - this.getTemplateNames = this.getTemplateNames.bind(this); + this.getAllLoopTemplates = this.getAllLoopTemplates.bind(this); this.handleCreate = this.handleCreate.bind(this); this.handleModelName = this.handleModelName.bind(this); this.handleClose = this.handleClose.bind(this); - this.handleDropdownListChange = this.handleDropdownListChange.bind(this); + this.handleDropDownListChange = this.handleDropDownListChange.bind(this); this.state = { show: true, - content: '', chosenTemplateName: '', modelName: '', - templateNames: [] + templateNames: [], + fakeLoopCacheWithTemplate: new LoopCache({}) }; } componentWillMount() { - this.getTemplateNames(); + this.getAllLoopTemplates(); } handleClose() { @@ -77,21 +64,26 @@ export default class CreateLoopModal extends React.Component { this.props.history.push('/'); } - handleDropdownListChange(e) { - this.setState({ chosenTemplateName: e.value }); - TemplateService.getBlueprintMicroServiceTemplateSvg(e.value).then(svgXml => { - if (svgXml.length !== 0) { - this.setState({ content: svgXml }) - } else { - this.setState({ content: 'Error1' }) - } - }) + handleDropDownListChange(e) { + if (typeof e.value !== "undefined") { + this.setState({ + fakeLoopCacheWithTemplate: + new LoopCache({ + "loopTemplate":e.templateObject, + "name": "fakeLoop" + }), + chosenTemplateName: e.value + }) + } else { + this.setState({ fakeLoopCacheWithTemplate: new LoopCache({}) }) + } } - getTemplateNames() { - TemplateService.getTemplateNames().then(templateNames => { - const templateOptions = templateNames.map((templateName) => { return { label: templateName, value: templateName } }); - this.setState({ templateNames: templateOptions }) + getAllLoopTemplates() { + TemplateService.getAllLoopTemplates().then(templatesData => { + const templateOptions = templatesData.map((templateData) => { return { label: templateData.name, value: templateData.name, templateObject: templateData } }); + this.setState({ + templateNames: templateOptions }) }); } @@ -133,17 +125,15 @@ export default class CreateLoopModal extends React.Component { <Form.Group as={Row} controlId="formPlaintextEmail"> <Form.Label column sm="2">Template Name:</Form.Label> <Col sm="10"> - <Select onChange={this.handleDropdownListChange} options={this.state.templateNames} /> + <Select onChange={this.handleDropDownListChange} options={this.state.templateNames} /> </Col> </Form.Group> - <Form.Group as={Row} style={{alignItems: 'center'}} controlId="formSvgPreview"> - <Form.Label column sm="2">Model Preview:</Form.Label> - <Col sm="10"> - <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }} - value={this.state.content} > - </LoopViewSvgDivStyled> - </Col> - </Form.Group> + <Form.Group as={Row} style={{alignItems: 'center'}} controlId="formSvgPreview"> + <Form.Label column sm="2">Model Preview:</Form.Label> + <Col sm="10"> + <SvgGenerator loopCache={this.state.fakeLoopCacheWithTemplate} clickable={false} generatedFrom={SvgGenerator.GENERATED_FROM_TEMPLATE}/> + </Col> + </Form.Group> <Form.Group as={Row} controlId="formPlaintextEmail"> <Form.Label column sm="2">Model Name:</Form.Label> <input type="text" style={{width: '50%', marginLeft: '1em' }} diff --git a/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js b/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js new file mode 100644 index 000000000..5b6ea9e62 --- /dev/null +++ b/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js @@ -0,0 +1,132 @@ +/*- + * ============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============================================ + * =================================================================== + * + */ +import React from 'react'; +import { shallow } from 'enzyme'; +import CreateLoopModal from './CreateLoopModal'; +import LoopService from '../../../api/LoopService'; +import TemplateService from '../../../api/TemplateService'; + +describe('Verify CreateLoopModal', () => { + + it('Test the render method', async () => { + const flushPromises = () => new Promise(setImmediate); + TemplateService.getAllLoopTemplates = jest.fn().mockImplementation(() => { + return Promise.resolve([{"name":"template1"},{"name":"template2"}]); + }); + + const component = shallow(<CreateLoopModal/>); + expect(component).toMatchSnapshot(); + await flushPromises(); + component.update(); + + expect(component.state('templateNames')).toStrictEqual([{"label": "template1", "value": "template1", "templateObject": {"name": "template1"}}, {"label": "template2", "value": "template2","templateObject": {"name": "template2"}}]); + }); + + it('handleDropdownListChange event', async () => { + const flushPromises = () => new Promise(setImmediate); + + const component = shallow(<CreateLoopModal/>); + component.find('StateManager').simulate('change', {value: 'template1', templateObject: {"name":"template1"} }); + await flushPromises(); + component.update(); + expect(component.state('chosenTemplateName')).toEqual("template1"); + expect(component.state('fakeLoopCacheWithTemplate').getLoopTemplate()['name']).toEqual("template1"); + expect(component.state('fakeLoopCacheWithTemplate').getLoopName()).toEqual("fakeLoop"); + + component.find('StateManager').simulate('change',{value: 'template2', templateObject: {"name":"template2"} }); + await flushPromises(); + component.update(); + expect(component.state('chosenTemplateName')).toEqual("template2"); + expect(component.state('fakeLoopCacheWithTemplate').getLoopTemplate()['name']).toEqual("template2"); + expect(component.state('fakeLoopCacheWithTemplate').getLoopName()).toEqual("fakeLoop"); + }); + + + + it('handleModelName event', () => { + const event = {target: {value : "model1"} }; + const component = shallow(<CreateLoopModal/>); + component.find('input').simulate('change', event); + component.update(); + expect(component.state('modelName')).toEqual("model1"); + }); + + + it('Test handleClose', () => { + const historyMock = { push: jest.fn() }; + const handleClose = jest.spyOn(CreateLoopModal.prototype,'handleClose'); + const component = shallow(<CreateLoopModal history={historyMock} />) + + component.find('[variant="secondary"]').prop('onClick')(); + + expect(handleClose).toHaveBeenCalledTimes(1); + expect(component.state('show')).toEqual(false); + expect(historyMock.push.mock.calls[0]).toEqual([ '/']); + + handleClose.mockClear(); + }); + + it('Test handleCreate Fail', () => { + const handleCreate = jest.spyOn(CreateLoopModal.prototype,'handleCreate'); + const component = shallow(<CreateLoopModal/>) + + component.find('[variant="primary"]').prop('onClick')(); + + expect(handleCreate).toHaveBeenCalledTimes(1); + expect(component.state('show')).toEqual(true); + + handleCreate.mockClear(); + }); + + it('Test handleCreate Suc', async () => { + const flushPromises = () => new Promise(setImmediate); + const historyMock = { push: jest.fn() }; + const loadLoopFunction = jest.fn(); + + LoopService.createLoop = jest.fn().mockImplementation(() => { + return Promise.resolve({ + ok: true, + status: 200, + json: () => {} + }); + }); + + const handleCreate = jest.spyOn(CreateLoopModal.prototype,'handleCreate'); + const component = shallow(<CreateLoopModal history={historyMock} loadLoopFunction={loadLoopFunction}/>) + component.setState({ + modelName: "modelNameTest", + chosenTemplateName: "template1" + }); + + component.find('[variant="primary"]').prop('onClick')(); + await flushPromises(); + component.update(); + + expect(handleCreate).toHaveBeenCalledTimes(1); + expect(component.state('show')).toEqual(false); + expect(historyMock.push.mock.calls[0]).toEqual([ '/']); + + handleCreate.mockClear(); + }); + +}); diff --git a/ui-react/src/components/dialogs/Loop/OpenLoopModal.js b/ui-react/src/components/dialogs/Loop/OpenLoopModal.js index c04883443..7ca90b493 100644 --- a/ui-react/src/components/dialogs/Loop/OpenLoopModal.js +++ b/ui-react/src/components/dialogs/Loop/OpenLoopModal.js @@ -30,6 +30,8 @@ import Col from 'react-bootstrap/Col'; import FormCheck from 'react-bootstrap/FormCheck' import styled from 'styled-components'; import LoopService from '../../../api/LoopService'; +import SvgGenerator from '../../loop_viewer/svg/SvgGenerator'; +import LoopCache from '../../../api/LoopCache'; const ModalStyled = styled(Modal)` background-color: transparent; @@ -37,21 +39,6 @@ const ModalStyled = styled(Modal)` const CheckBoxStyled = styled(FormCheck.Input)` margin-left:3rem; ` -const LoopViewSvgDivStyled = styled.svg` - overflow-x: scroll; - display: flex; - flex-direction: row; - background-color: ${props => (props.theme.loopViewerBackgroundColor)}; - border-color: ${props => (props.theme.loopViewerHeaderColor)}; - margin-top: 2em; - margin-left: auto; - margin-right:auto; - margin-bottom: -3em; - text-align: center; - align-items: center; - height: 100%; - width: 100%; -` export default class OpenLoopModal extends React.Component { constructor(props, context) { @@ -60,13 +47,13 @@ export default class OpenLoopModal extends React.Component { this.getLoopNames = this.getLoopNames.bind(this); this.handleOpen = this.handleOpen.bind(this); this.handleClose = this.handleClose.bind(this); - this.handleDropdownListChange = this.handleDropdownListChange.bind(this); + this.handleDropDownListChange = this.handleDropDownListChange.bind(this); this.showReadOnly = props.showReadOnly ? props.showReadOnly : true; this.state = { show: true, chosenLoopName: '', loopNames: [], - content:'' + loopCacheOpened: new LoopCache({}) }; } @@ -79,14 +66,12 @@ export default class OpenLoopModal extends React.Component { this.props.history.push('/'); } - handleDropdownListChange(e) { - this.setState({ chosenLoopName: e.value }); - LoopService.getSvg(e.value).then(svgXml => { - if (svgXml.length !== 0) { - this.setState({ content: svgXml }) - } else { - this.setState({ content: 'Error1' }) - } + handleDropDownListChange(e) { + LoopService.getLoop(e.value).then(loop => { + this.setState({ + chosenLoopName: e.value, + loopCacheOpened: new LoopCache(loop) + }); }); } @@ -95,9 +80,7 @@ export default class OpenLoopModal extends React.Component { if (Object.entries(loopNames).length !== 0) { const loopOptions = loopNames.filter(loopName => loopName!=='undefined').map((loopName) => { return { label: loopName, value: loopName } }); this.setState({ loopNames: loopOptions }) - } - }); } @@ -117,20 +100,18 @@ export default class OpenLoopModal extends React.Component { <Form.Group as={Row} controlId="formPlaintextEmail"> <Form.Label column sm="2">Model Name:</Form.Label> <Col sm="10"> - <Select onChange={this.handleDropdownListChange} + <Select onChange={this.handleDropDownListChange} options={this.state.loopNames} /> </Col> </Form.Group> <Form.Group as={Row} style={{alignItems: 'center'}} controlId="formSvgPreview"> <Form.Label column sm="2">Model Preview:</Form.Label> <Col sm="10"> - <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }} - value={this.state.content} > - </LoopViewSvgDivStyled> + <SvgGenerator loopCache={this.state.loopCacheOpened} clickable={false} generatedFrom={SvgGenerator.GENERATED_FROM_INSTANCE}/> </Col> </Form.Group> {this.showReadOnly === true ? - <Form.Group as={Row} controlId="formBasicChecbox"> + <Form.Group as={Row} controlId="formBasicCheckbox"> <Form.Check> <FormCheck.Label>Read Only Mode:</FormCheck.Label> <CheckBoxStyled style={{marginLeft: '3.5em'}} type="checkbox" /> diff --git a/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js b/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js index f362cfaa6..1865869df 100644 --- a/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js +++ b/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js @@ -23,6 +23,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import OpenLoopModal from './OpenLoopModal'; +import LoopService from '../../../api/LoopService'; describe('Verify OpenLoopModal', () => { @@ -41,10 +42,19 @@ describe('Verify OpenLoopModal', () => { expect(component).toMatchSnapshot(); }); - it('Onchange event', () => { + it('Onchange event', async () => { + const flushPromises = () => new Promise(setImmediate); + LoopService.getLoop = jest.fn().mockImplementation(() => { + return Promise.resolve({ + ok: true, + status: 200, + json: () => {} + }); + }); const event = {value: 'LOOP_gmtAS_v1_0_ResourceInstanceName1_tca_3'}; const component = shallow(<OpenLoopModal/>); component.find('StateManager').simulate('change', event); + await flushPromises(); component.update(); expect(component.state('chosenLoopName')).toEqual("LOOP_gmtAS_v1_0_ResourceInstanceName1_tca_3"); }); diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap b/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap new file mode 100644 index 000000000..e69b809c7 --- /dev/null +++ b/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap @@ -0,0 +1,142 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify CreateLoopModal Test the render method 1`] = ` +<Styled(Bootstrap(Modal)) + backdrop="static" + keyboard={false} + onHide={[Function]} + show={true} + size="xl" +> + <ModalHeader + closeButton={true} + closeLabel="Close" + > + <ModalTitle> + Create Model + </ModalTitle> + </ModalHeader> + <ModalBody> + <FormGroup + as={ + Object { + "$$typeof": Symbol(react.forward_ref), + "defaultProps": Object { + "noGutters": false, + }, + "render": [Function], + } + } + controlId="formPlaintextEmail" + > + <FormLabel + column={true} + sm="2" + srOnly={false} + > + Template Name: + </FormLabel> + <Col + sm="10" + > + <StateManager + defaultInputValue="" + defaultMenuIsOpen={false} + defaultValue={null} + onChange={[Function]} + options={Array []} + /> + </Col> + </FormGroup> + <FormGroup + as={ + Object { + "$$typeof": Symbol(react.forward_ref), + "defaultProps": Object { + "noGutters": false, + }, + "render": [Function], + } + } + controlId="formSvgPreview" + style={ + Object { + "alignItems": "center", + } + } + > + <FormLabel + column={true} + sm="2" + srOnly={false} + > + Model Preview: + </FormLabel> + <Col + sm="10" + > + <withRouter(SvgGenerator) + clickable={false} + generatedFrom="TEMPLATE" + loopCache={ + LoopCache { + "loopJsonCache": Object {}, + } + } + /> + </Col> + </FormGroup> + <FormGroup + as={ + Object { + "$$typeof": Symbol(react.forward_ref), + "defaultProps": Object { + "noGutters": false, + }, + "render": [Function], + } + } + controlId="formPlaintextEmail" + > + <FormLabel + column={true} + sm="2" + srOnly={false} + > + Model Name: + </FormLabel> + <input + onChange={[Function]} + style={ + Object { + "marginLeft": "1em", + "width": "50%", + } + } + type="text" + value="" + /> + </FormGroup> + </ModalBody> + <ModalFooter> + <Button + active={false} + disabled={false} + onClick={[Function]} + type="null" + variant="secondary" + > + Cancel + </Button> + <Button + active={false} + disabled={false} + onClick={[Function]} + type="submit" + variant="primary" + > + Create + </Button> + </ModalFooter> +</Styled(Bootstrap(Modal))> +`; diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap b/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap index 196854446..477260477 100644 --- a/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap +++ b/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap @@ -75,13 +75,14 @@ exports[`Verify OpenLoopModal Test the render method 1`] = ` <Col sm="10" > - <styled.svg - dangerouslySetInnerHTML={ - Object { - "__html": "", + <withRouter(SvgGenerator) + clickable={false} + generatedFrom="INSTANCE" + loopCache={ + LoopCache { + "loopJsonCache": Object {}, } } - value="" /> </Col> </FormGroup> @@ -95,7 +96,7 @@ exports[`Verify OpenLoopModal Test the render method 1`] = ` "render": [Function], } } - controlId="formBasicChecbox" + controlId="formBasicCheckbox" > <FormCheck disabled={false} diff --git a/ui-react/src/components/dialogs/Policy/PolicyModal.js b/ui-react/src/components/dialogs/Policy/PolicyModal.js index 5930386c2..d3b427396 100644 --- a/ui-react/src/components/dialogs/Policy/PolicyModal.js +++ b/ui-react/src/components/dialogs/Policy/PolicyModal.js @@ -33,6 +33,7 @@ import LoopService from '../../../api/LoopService'; import LoopCache from '../../../api/LoopCache'; import JSONEditor from '@json-editor/json-editor'; import Alert from 'react-bootstrap/Alert'; +import OnapConstant from '../../../utils/OnapConstants'; const ModalStyled = styled(Modal)` background-color: transparent; @@ -66,6 +67,9 @@ export default class PolicyModal extends React.Component { this.createJsonEditor = this.createJsonEditor.bind(this); this.handleRefresh = this.handleRefresh.bind(this); this.disableAlert = this.disableAlert.bind(this); + this.renderPdpGroupDropDown = this.renderPdpGroupDropDown.bind(this); + this.renderOpenLoopMessage = this.renderOpenLoopMessage.bind(this); + this.renderModalTitle = this.renderModalTitle.bind(this); } handleSave() { @@ -82,7 +86,7 @@ export default class PolicyModal extends React.Component { } else { console.info("NO validation errors found in policy data"); - if (this.state.policyInstanceType === 'MICRO-SERVICE-POLICY') { + if (this.state.policyInstanceType === OnapConstant.microServiceType) { this.state.loopCache.updateMicroServiceProperties(this.state.policyName, editorData); this.state.loopCache.updateMicroServicePdpGroup(this.state.policyName, this.state.chosenPdpGroup, this.state.chosenPdpSubgroup); LoopService.setMicroServiceProperties(this.state.loopCache.getLoopName(), this.state.loopCache.getMicroServiceForName(this.state.policyName)).then(resp => { @@ -90,7 +94,7 @@ export default class PolicyModal extends React.Component { this.props.history.push('/'); this.props.loadLoopFunction(this.state.loopCache.getLoopName()); }); - } else if (this.state.policyInstanceType === 'OPERATIONAL-POLICY') { + } else if (this.state.policyInstanceType === OnapConstant.operationalPolicyType) { this.state.loopCache.updateOperationalPolicyProperties(this.state.policyName, editorData); this.state.loopCache.updateOperationalPolicyPdpGroup(this.state.policyName, this.state.chosenPdpGroup, this.state.chosenPdpSubgroup); LoopService.setOperationalPolicyProperties(this.state.loopCache.getLoopName(), this.state.loopCache.getOperationalPolicies()).then(resp => { @@ -154,13 +158,13 @@ export default class PolicyModal extends React.Component { var editorData = {}; var pdpGroupValues = {}; var chosenPdpGroupValue, chosenPdpSubgroupValue; - if (this.state.policyInstanceType === 'MICRO-SERVICE-POLICY') { + if (this.state.policyInstanceType === OnapConstant.microServiceType) { toscaModel = this.state.loopCache.getMicroServiceJsonRepresentationForName(this.state.policyName); editorData = this.state.loopCache.getMicroServicePropertiesForName(this.state.policyName); pdpGroupValues = this.state.loopCache.getMicroServiceSupportedPdpGroup(this.state.policyName); chosenPdpGroupValue = this.state.loopCache.getMicroServicePdpGroup(this.state.policyName); chosenPdpSubgroupValue = this.state.loopCache.getMicroServicePdpSubgroup(this.state.policyName); - } else if (this.state.policyInstanceType === 'OPERATIONAL-POLICY') { + } else if (this.state.policyInstanceType === OnapConstant.operationalPolicyType) { toscaModel = this.state.loopCache.getOperationalPolicyJsonRepresentationForName(this.state.policyName); editorData = this.state.loopCache.getOperationalPolicyPropertiesForName(this.state.policyName); pdpGroupValues = this.state.loopCache.getOperationalPolicySupportedPdpGroup(this.state.policyName); @@ -207,7 +211,7 @@ export default class PolicyModal extends React.Component { handleRefresh() { var newLoopCache, toscaModel, editorData; - if (this.state.policyInstanceType === 'MICRO-SERVICE-POLICY') { + if (this.state.policyInstanceType === OnapConstant.microServiceType) { LoopService.refreshMicroServicePolicyJson(this.state.loopCache.getLoopName(),this.state.policyName).then(data => { newLoopCache = new LoopCache(data); toscaModel = newLoopCache.getMicroServiceJsonRepresentationForName(this.state.policyName); @@ -227,7 +231,7 @@ export default class PolicyModal extends React.Component { showMessage: "Refreshing of UI failed" }); }); - } else if (this.state.policyInstanceType === 'OPERATIONAL-POLICY') { + } else if (this.state.policyInstanceType === OnapConstant.operationalPolicyType) { LoopService.refreshOperationalPolicyJson(this.state.loopCache.getLoopName(),this.state.policyName).then(data => { var newLoopCache = new LoopCache(data); toscaModel = newLoopCache.getOperationalPolicyJsonRepresentationForName(this.state.policyName); @@ -254,11 +258,60 @@ export default class PolicyModal extends React.Component { this.setState ({ showSucAlert: false, showFailAlert: false }); } + renderPdpGroupDropDown() { + if(this.state.policyInstanceType !== OnapConstant.operationalPolicyType || !this.state.loopCache.isOpenLoopTemplate()) { + return ( + <Form.Group as={Row} controlId="formPlaintextEmail"> + <Form.Label column sm="2">Pdp Group Info</Form.Label> + <Col sm="3"> + <Select value={{ label: this.state.chosenPdpGroup, value: this.state.chosenPdpGroup }} onChange={this.handlePdpGroupChange} options={this.state.pdpGroupList} /> + </Col> + <Col sm="3"> + <Select value={{ label: this.state.chosenPdpSubgroup, value: this.state.chosenPdpSubgroup }} onChange={this.handlePdpSubgroupChange} options={this.state.pdpSubgroupList} /> + </Col> + </Form.Group> + ); + } + } + + renderOpenLoopMessage() { + if(this.state.policyInstanceType === OnapConstant.operationalPolicyType && this.state.loopCache.isOpenLoopTemplate()) { + return ( + "Operational Policy cannot be configured as only Open Loop is supported for this Template!" + ); + } + } + + renderModalTitle() { + return ( + <Modal.Title>Edit the policy</Modal.Title> + ); + } + + renderButton() { + var allElement = [(<Button variant="secondary" onClick={this.handleClose}> + Close + </Button>)]; + if(this.state.policyInstanceType !== OnapConstant.operationalPolicyType || !this.state.loopCache.isOpenLoopTemplate()) { + allElement.push(( + <Button variant="primary" disabled={this.readOnly} onClick={this.handleSave}> + Save Changes + </Button> + )); + allElement.push(( + <Button variant="primary" disabled={this.readOnly} onClick={this.handleRefresh}> + Refresh + </Button> + )); + } + return allElement; + } + render() { return ( - <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose } backdrop="static"> + <ModalStyled size="xl" backdrop="static" keyboard={false} show={this.state.show} onHide={this.handleClose}> <Modal.Header closeButton> - <Modal.Title>Edit the policy</Modal.Title> + {this.renderModalTitle()} </Modal.Header> <Alert variant="success" show={this.state.showSucAlert} onClose={this.disableAlert} dismissible> {this.state.showMessage} @@ -267,30 +320,14 @@ export default class PolicyModal extends React.Component { {this.state.showMessage} </Alert> <Modal.Body> + {this.renderOpenLoopMessage()} <div id="editor" /> - <Form.Group as={Row} controlId="formPlaintextEmail"> - <Form.Label column sm="2">Pdp Group Info</Form.Label> - <Col sm="3"> - <Select value={{ label: this.state.chosenPdpGroup, value: this.state.chosenPdpGroup }} onChange={this.handlePdpGroupChange} options={this.state.pdpGroupList} /> - </Col> - <Col sm="3"> - <Select value={{ label: this.state.chosenPdpSubgroup, value: this.state.chosenPdpSubgroup }} onChange={this.handlePdpSubgroupChange} options={this.state.pdpSubgroupList} /> - </Col> - </Form.Group> + {this.renderPdpGroupDropDown()} </Modal.Body> <Modal.Footer> - <Button variant="secondary" onClick={this.handleClose}> - Close - </Button> - <Button variant="primary" onClick={this.handleSave}> - Save Changes - </Button> - <Button variant="primary" onClick={this.handleRefresh}> - Refresh - </Button> + {this.renderButton()} </Modal.Footer> </ModalStyled> - ); } }
\ No newline at end of file diff --git a/ui-react/src/components/dialogs/Policy/PolicyModal.test.js b/ui-react/src/components/dialogs/Policy/PolicyModal.test.js index d4021c97c..cb0a32020 100644 --- a/ui-react/src/components/dialogs/Policy/PolicyModal.test.js +++ b/ui-react/src/components/dialogs/Policy/PolicyModal.test.js @@ -25,6 +25,7 @@ import { mount } from 'enzyme'; import PolicyModal from './PolicyModal'; import LoopCache from '../../../api/LoopCache'; import LoopService from '../../../api/LoopService'; +import OnapConstant from '../../../utils/OnapConstants'; describe('Verify PolicyModal', () => { beforeEach(() => { @@ -54,7 +55,7 @@ describe('Verify PolicyModal', () => { const loopCache = new LoopCache(loopCacheStr); const historyMock = { push: jest.fn() }; const flushPromises = () => new Promise(setImmediate); - const match = {params: {policyName:"OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca", policyInstanceType: "OPERATIONAL-POLICY"}} + const match = {params: {policyName:"OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca", policyInstanceType: OnapConstant.operationalPolicyType}} it('Test handleClose', () => { const handleClose = jest.spyOn(PolicyModal.prototype,'handleClose'); diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js index 7cf02f711..962ab4bda 100644 --- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js +++ b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js @@ -34,30 +34,12 @@ import FirstPage from '@material-ui/icons/FirstPage'; import LastPage from '@material-ui/icons/LastPage'; import Search from '@material-ui/icons/Search'; import MaterialTable from "material-table"; +import LoopCache from '../../../api/LoopCache'; +import SvgGenerator from '../../loop_viewer/svg/SvgGenerator'; const ModalStyled = styled(Modal)` background-color: transparent; ` -const LoopViewSvgDivStyled = styled.svg` - overflow-x: scroll; - background-color: ${props => (props.theme.loopViewerBackgroundColor)}; - border-color: ${props => (props.theme.loopViewerHeaderColor)}; - margin-top: 3em; - margin-left: 2em; - margin-right:auto; - text-align: center; - height: 100%; - width: 100%; - display: flex; - flex-direction: row; - align-items: center; - -` -const SvgContainerDivStyled = styled.div` - display: flex; - align-items: center; - border: 1px solid; -` const cellStyle = { border: '1px solid black' }; const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' }; @@ -68,7 +50,8 @@ export default class ViewLoopTemplatesModal extends React.Component { show: true, content: 'Please select a loop template to display it', selectedRow: -1, - loopTemplateData: [], + loopTemplatesData: [], + fakeLoopCacheWithTemplate: new LoopCache({}), loopTemplateColumnsDefinition: [ { title: "#", field: "index", render: rowData => rowData.tableData.id + 1, cellStyle: cellStyle, @@ -109,29 +92,27 @@ export default class ViewLoopTemplatesModal extends React.Component { constructor(props, context) { super(props, context); this.handleClose = this.handleClose.bind(this); - this.getBlueprintMicroServiceTemplate = this.getBlueprintMicroServiceTemplate.bind(this); - this.getBlueprintMicroServiceTemplates(); + this.getLoopTemplate = this.getLoopTemplate.bind(this); + this.getAllLoopTemplates(); } - getBlueprintMicroServiceTemplates() { - TemplateService.getBlueprintMicroServiceTemplates().then(loopTemplateData => { - this.setState({ loopTemplateData: loopTemplateData }) + getAllLoopTemplates() { + TemplateService.getAllLoopTemplates().then(templatesData => { + this.setState({ loopTemplatesData: templatesData }) }); } - getBlueprintMicroServiceTemplate(templateName) { - if (typeof templateName !== "undefined") { - TemplateService.getBlueprintMicroServiceTemplateSvg(templateName).then(svgXml => { - if (svgXml.length !== 0) { - this.setState({ content: svgXml }) - } else { - this.setState({ content: 'Please select a loop template to view the details' }) - - } - }); + getLoopTemplate(templateIdInDataArray) { + if (typeof templateIdInDataArray !== "undefined") { + this.setState({ fakeLoopCacheWithTemplate: + new LoopCache({ + "loopTemplate":this.state.loopTemplatesData[templateIdInDataArray], + "name": "fakeLoop" + }) + }) } else { - this.setState({ content: 'Please select a loop template to view the details' }) - } + this.setState({ fakeLoopCacheWithTemplate: new LoopCache({}) }) + } } handleClose() { @@ -147,21 +128,18 @@ export default class ViewLoopTemplatesModal extends React.Component { <Modal.Body> <MaterialTable title={"View Blueprint MicroService Templates"} - data={this.state.loopTemplateData} + data={this.state.loopTemplatesData} columns={this.state.loopTemplateColumnsDefinition} icons={this.state.tableIcons} - onRowClick={(event, rowData) => {this.getBlueprintMicroServiceTemplate(rowData.name);this.setState({selectedRow: rowData.tableData.id})}} + onRowClick={(event, rowData) => {this.getLoopTemplate(rowData.tableData.id);this.setState({selectedRow: rowData.tableData.id})}} options={{ headerStyle:rowHeaderStyle, rowStyle: rowData => ({ backgroundColor: (this.state.selectedRow !== -1 && this.state.selectedRow === rowData.tableData.id) ? '#EEE' : '#FFF' }) }} - /> - <SvgContainerDivStyled> - <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.content }} value={this.state.content} > - </LoopViewSvgDivStyled> - </SvgContainerDivStyled> + /> + <SvgGenerator loopCache={this.state.fakeLoopCacheWithTemplate} clickable={false} generatedFrom={SvgGenerator.GENERATED_FROM_TEMPLATE}/> </Modal.Body> <Modal.Footer> <Button variant="secondary" onClick={this.handleClose}>Close</Button> diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js index 1a6cc1959..7680ec4b9 100644 --- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js +++ b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js @@ -24,6 +24,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import ViewLoopTemplatesModal from './ViewLoopTemplatesModal'; import { mount } from 'enzyme'; +import { BrowserRouter as Router } from 'react-router-dom'; describe('Verify ViewLoopTemplatesModal', () => { beforeEach(() => { @@ -128,7 +129,7 @@ describe('Verify ViewLoopTemplatesModal', () => { } }); }); - const component = mount(<ViewLoopTemplatesModal/>); + const component = mount(<Router><ViewLoopTemplatesModal/></Router>); expect(component.find('[className="MuiSelect-icon MuiTablePagination-selectIcon"]')).toBeTruthy(); }); diff --git a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap index 3f6dc9482..ee7b679a5 100644 --- a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap +++ b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap @@ -86,16 +86,7 @@ exports[`Verify ViewLoopTemplatesModal Test the tosca model view render method 1 }, ] } - data={ - Object { - "allowedLoopType": "CLOSED", - "index": "1", - "maximumInstancesAllowed": 1, - "modelService.serviceDetails.name": "MTCA", - "name": "MTCA version 1", - "updatedDate": "2019-09-06 19:09:42", - } - } + data={Array []} icons={ Object { "FirstPage": Object { @@ -142,16 +133,15 @@ exports[`Verify ViewLoopTemplatesModal Test the tosca model view render method 1 } title="View Blueprint MicroService Templates" /> - <styled.div> - <styled.svg - dangerouslySetInnerHTML={ - Object { - "__html": "Please select a loop template to display it", - } + <withRouter(SvgGenerator) + clickable={false} + generatedFrom="TEMPLATE" + loopCache={ + LoopCache { + "loopJsonCache": Object {}, } - value="Please select a loop template to display it" - /> - </styled.div> + } + /> </ModalBody> <ModalFooter> <Button diff --git a/ui-react/src/components/loop_viewer/svg/LoopComponentConverter.js b/ui-react/src/components/loop_viewer/svg/LoopComponentConverter.js deleted file mode 100644 index 29422a1f5..000000000 --- a/ui-react/src/components/loop_viewer/svg/LoopComponentConverter.js +++ /dev/null @@ -1,17 +0,0 @@ -export default class LoopComponentConverter { - - static buildMapOfComponents(loopCache) { - var componentsMap = new Map([]); - if (typeof (loopCache.getMicroServicePolicies()) !== "undefined") { - loopCache.getMicroServicePolicies().forEach(ms => { - componentsMap.set(ms.name, "/policyModal/MICRO-SERVICE-POLICY/"+ms.name); - }) - } - if (typeof (loopCache.getOperationalPolicies()) !== "undefined") { - loopCache.getOperationalPolicies().forEach(op => { - componentsMap.set(op.name, "/policyModal/OPERATIONAL-POLICY/"+op.name); - }) - } - return componentsMap; - } -} diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.js deleted file mode 100644 index 048f63044..000000000 --- a/ui-react/src/components/loop_viewer/svg/LoopSvg.js +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============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============================================ - * =================================================================== - * - */ -import React from 'react'; -import styled from 'styled-components'; -import LoopCache from '../../../api/LoopCache'; -import { withRouter } from "react-router-dom"; -import LoopService from '../../../api/LoopService'; -import LoopComponentConverter from './LoopComponentConverter'; - -const LoopViewSvgDivStyled = styled.svg` - display: flex; - flex-direction: row; - overflow-x: scroll; - background-color: ${props => (props.theme.loopViewerBackgroundColor)}; - border: 1px solid; - border-color: ${props => (props.theme.loopViewerHeaderColor)}; - margin-top: 1em; - margin-left: auto; - margin-right:auto; - margin-bottom: -3em; - align-items: center; - height: 100%; - width: 100%; - -` - -class LoopViewSvg extends React.Component { - - static emptySvg = "<svg><text x=\"20\" y=\"40\">No LOOP (SVG)</text></svg>"; - - state = { - svgContent: LoopViewSvg.emptySvg, - loopCache: new LoopCache({}), - componentModalMapping: new Map([]) - } - - constructor(props) { - super(props); - this.handleSvgClick = this.handleSvgClick.bind(this); - this.getSvg = this.getSvg.bind(this); - this.state.loopCache = props.loopCache; - this.state.componentModalMapping = LoopComponentConverter.buildMapOfComponents(props.loopCache); - this.getSvg(props.loopCache.getLoopName()); - } - - shouldComponentUpdate(nextProps, nextState) { - return this.state.svgContent !== nextState.svgContent; - } - - componentWillReceiveProps(newProps) { - if (this.state.loopCache !== newProps.loopCache) { - this.setState({ - loopCache: newProps.loopCache, - componentModalMapping: LoopComponentConverter.buildMapOfComponents(newProps.loopCache) - }); - this.getSvg(newProps.loopCache.getLoopName()); - } - } - - getSvg(loopName) { - if (typeof loopName !== "undefined") { - LoopService.getSvg(loopName).then(svgXml => { - if (svgXml.length !== 0) { - this.setState({ svgContent: svgXml }) - } else { - this.setState({ svgContent: LoopViewSvg.emptySvg }) - } - }); - } else { - this.setState({ svgContent: LoopViewSvg.emptySvg }) - } - } - - handleSvgClick(event) { - console.debug("svg click event received"); - var elementName = event.target.parentNode.parentNode.parentNode.getAttribute('data-element-id'); - console.info("SVG element clicked", elementName); - this.props.history.push(this.state.componentModalMapping.get(elementName)); - } - - render() { - return ( - <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.svgContent }} onClick={this.handleSvgClick}> - - </LoopViewSvgDivStyled> - ); - } -} - -export default withRouter(LoopViewSvg); diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js deleted file mode 100644 index e54b500f5..000000000 --- a/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============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============================================ - * =================================================================== - * - */ -import React from 'react'; -import { shallow } from 'enzyme'; -import LoopSvg from './LoopSvg'; -import LoopCache from '../../../api/LoopCache'; -import LoopService from '../../../api/LoopService'; - -describe('Verify LoopSvg', () => { - const loopCache = new LoopCache({ - "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", - "microServicePolicies": [{ - "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca", - "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app", - "properties": {"domain": "measurementsForVfScaling"}, - "shared": false, - "jsonRepresentation": {"schema": {}} - }], - "operationalPolicies": [{ - "name": "OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca", - "configurationsJson": { - "operational_policy": { - "controlLoop": {}, - "policies": [] - } - } - }] - }); - - it('Test the render method no loopName', () => { - const localLoopCache = new LoopCache({ - "microServicePolicies": [{ - "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca", - "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app", - "properties": {"domain": "measurementsForVfScaling"}, - "shared": false, - "jsonRepresentation": {"schema": {}} - }] - }); - const component = shallow( - <LoopSvg.WrappedComponent loopCache={localLoopCache}/> - ); - - expect(component).toMatchSnapshot(); - }); - - it('Test the render method', () => { - const component = shallow( - <LoopSvg.WrappedComponent loopCache={loopCache}/> - ); - - expect(component).toMatchSnapshot(); - }); - - it('Test the render method svg not empty', async () => { - const flushPromises = () => new Promise(setImmediate); - LoopService.getSvg = jest.fn().mockImplementation(() => { - return Promise.resolve("<svg><text test</text></svg>"); - }); - const component = shallow( - <LoopSvg.WrappedComponent loopCache={loopCache}/> - ); - await flushPromises(); - expect(component).toMatchSnapshot(); - }); - - it('Test handleSvgClick', () => { - const historyMock = { push: jest.fn() }; - - const component = shallow( - <LoopSvg.WrappedComponent loopCache={loopCache} history={historyMock}/> - ); - let dummyElement = document.createElement('div'); - dummyElement.setAttribute("data-element-id","TCA_h2NMX_v1_0_ResourceInstanceName1_tca"); - - const event = { target: { parentNode: { parentNode:{ parentNode: dummyElement }}}}; - - component.simulate('click', event); - component.update(); - - expect(historyMock.push.mock.calls[0]).toEqual([ '/policyModal/MICRO-SERVICE-POLICY/TCA_h2NMX_v1_0_ResourceInstanceName1_tca']); - - //click operational policy - dummyElement.setAttribute("data-element-id","OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca"); - const event2 = { target: { parentNode: { parentNode:{ parentNode: dummyElement }}}}; - - component.simulate('click', event2); - component.update(); - - expect(historyMock.push.mock.calls[1]).toEqual([ '/policyModal/OPERATIONAL-POLICY/OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca']); - }); - - it('Test componentWillReceiveProps method', () => { - const localLoopCache = new LoopCache({ - "microServicePolicies": [{ - "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca", - "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app", - "properties": {"domain": "measurementsForVfScaling"}, - "shared": false, - "jsonRepresentation": {"schema": {}} - }] - }); - const component = shallow( - <LoopSvg.WrappedComponent loopCache={localLoopCache}/> - ); - - expect(component.state('componentModalMapping').size).toEqual(1); - - component.setProps({loopCache: loopCache}); - expect(component.state('componentModalMapping').size).toEqual(2); - }); -}); diff --git a/ui-react/src/components/loop_viewer/svg/SvgGenerator.js b/ui-react/src/components/loop_viewer/svg/SvgGenerator.js new file mode 100644 index 000000000..d718c2e44 --- /dev/null +++ b/ui-react/src/components/loop_viewer/svg/SvgGenerator.js @@ -0,0 +1,240 @@ +/*- + * ============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============================================ + * =================================================================== + * + */ + +import React from 'react' +import styled from 'styled-components'; +import { withRouter } from "react-router-dom"; +import LoopCache from '../../../api/LoopCache'; +import OnapConstant from '../../../utils/OnapConstants'; + +const DivStyled = styled.div` + overflow-x: scroll; + width: 100%; + height: 100%; +` + +const emptySvg = (<svg> <text x="20" y="40">No LOOP (SVG)</text> </svg>); + +class SvgGenerator extends React.Component { + boxWidth = 200; + boxHeight = 100; + boxSpace = 50; + + static GENERATED_FROM_INSTANCE = "INSTANCE"; + static GENERATED_FROM_TEMPLATE = "TEMPLATE"; + + state = { + loopCache: new LoopCache({}), + clickable: false, + generatedFrom: SvgGenerator.GENERATED_FROM_INSTANCE, // INSTANCE / TEMPLATE + } + + constructor(props) { + super(props); + this.state.loopCache = props.loopCache; + this.state.clickable = props.clickable; + this.state.generatedFrom = props.generatedFrom; + this.handleSvgClick = this.handleSvgClick.bind(this); + this.renderSvg = this.renderSvg.bind(this); + } + + shouldComponentUpdate(nextProps, nextState) { + return this.state.loopCache !== nextState.loopCache; + } + + componentWillReceiveProps(newProps) { + if (this.state.loopCache !== newProps.loopCache) { + this.setState({ + loopCache: newProps.loopCache, + }); + } + } + + handleSvgClick(event) { + if (this.state.clickable) { + console.debug("svg click event received"); + var elementName = event.target.parentNode.getAttribute('policyId'); + console.info("SVG element clicked", elementName); + if (elementName !== null) { + this.props.history.push("/policyModal/"+event.target.parentNode.getAttribute('policyType')+"/"+elementName); + } + } + } + + createVesBox (xPos) { + return this.createOneBox(xPos,null,null,'VES Collector','VES',null); + } + + createOneArrow(xPos) { + return ( + <svg width={this.boxSpace} height={this.boxHeight} x={xPos}> + <defs> + <marker viewBox="0 0 20 20" markerWidth="20" markerHeight="20" orient="auto" refX="8.5" refY="5" id="arrow"> + <path d="m 1 5 l 0 -3 l 7 3 l -7 3 z" + stroke-width= "1" stroke-linecap= "butt" stroke-dasharray= "10000, 1" + fill="#000000" stroke="#000000" /> + </marker> + </defs> + <line x1="0" y1="50%" x2="100%" y2="50%" stroke-width="2" color="black" stroke="black" marker-end="url(#arrow)"/> + </svg> + ); + } + + createBeginCircle(xPos, text) { + return ( + <svg width={this.boxWidth} height={this.boxHeight} x={xPos}> + <circle cx={this.boxWidth-30} cy="50%" r="30" stroke-width="1" color="black" stroke="black" fill="#27ae60"/> + <text x={this.boxWidth-30} y="50%" text-anchor="middle" dominant-baseline="middle" textLength="20%" lengthAdjust="spacingAndGlyphs" >{text}</text> + </svg> + ); + } + + createEndCircle(xPos, text) { + return ( + <svg width={this.boxWidth} height={this.boxHeight} x={xPos}> + <circle cx={30} cy="50%" r="30" stroke-width="2" color="black" stroke="black" fill="#27ae60"/> + <text x={30} y="50%" text-anchor="middle" dominant-baseline="middle" textLength="20%" lengthAdjust="spacingAndGlyphs" >{text}</text> + </svg> + ); + } + + createOneBox(xPos, policyId, loopElementModelId , name, title, policyType) { + return ( + <svg width={this.boxWidth} height={this.boxHeight} x={xPos} title="test"> + <g policyId={policyId} loopElementModelId={loopElementModelId} policyType={policyType}> + <rect width="100%" height="100%" stroke-width="2" color="black" stroke="black" fill="#1abc9c"/> + <text x="50%" y="15%" color="white" fill="white" dominant-baseline="middle" text-anchor="middle" textLength="50%" lengthAdjust="spacingAndGlyphs">{title}</text> + <text x="50%" y="50%" text-anchor="middle" dominant-baseline="middle" textLength="80%" lengthAdjust="spacingAndGlyphs" >{name}</text> + <text x="50%" y="80%" text-anchor="middle" dominant-baseline="middle" textLength="110%" lengthAdjust="spacingAndGlyphs" >{policyId}</text> + </g> + </svg> + ); + } + + createSvgFromTemplate() { + const allElements = []; + var xPos = 0; + + allElements.push(this.createBeginCircle(xPos,"Start")) + xPos+=(this.boxWidth+this.boxSpace); + + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + + allElements.push(this.createVesBox(xPos)); + xPos+=(this.boxWidth+this.boxSpace); + + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + //createOneBox(xPos, policyId, loopElementModelId , name, title, policyType) + for (var loopElement of this.state.loopCache.getAllLoopElementModels()) { + + allElements.push(this.createOneBox(xPos, + loopElement['name'], + loopElement['name'], + loopElement['shortName'], + loopElement['loopElementType'], + loopElement['loopElementType'])) + xPos+=(this.boxWidth+this.boxSpace); + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + } + + allElements.push(this.createEndCircle(xPos, "End")) + xPos+=(this.boxWidth+this.boxSpace); + + return allElements; + } + + createSvgFromInstance() { + const allElements = []; + var xPos = 0; + + allElements.push(this.createBeginCircle(xPos,"Start")) + xPos+=(this.boxWidth+this.boxSpace); + + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + + allElements.push(this.createVesBox(xPos)); + xPos+=(this.boxWidth+this.boxSpace); + + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + + for (var msPolicy in this.state.loopCache.getMicroServicePolicies()) { + var loopElementModelName = this.state.loopCache.getMicroServicePolicies()[msPolicy]['loopElementModel']; + if (loopElementModelName !== undefined) { + loopElementModelName = loopElementModelName['name']; + } + allElements.push(this.createOneBox(xPos, + this.state.loopCache.getMicroServicePolicies()[msPolicy]['name'], + loopElementModelName, + this.state.loopCache.getMicroServicePolicies()[msPolicy]['policyModel']['policyAcronym'], + 'microservice', + OnapConstant.microServiceType)) + xPos+=(this.boxWidth+this.boxSpace); + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + } + + for (var opPolicy in this.state.loopCache.getOperationalPolicies()) { + loopElementModelName = this.state.loopCache.getOperationalPolicies()[opPolicy]['loopElementModel']; + if (loopElementModelName !== undefined) { + loopElementModelName = loopElementModelName['name']; + } + allElements.push(this.createOneBox(xPos, + this.state.loopCache.getOperationalPolicies()[opPolicy]['name'], + loopElementModelName, + this.state.loopCache.getOperationalPolicies()[opPolicy]['policyModel']['policyAcronym'], + 'operational', + OnapConstant.operationalPolicyType)) + xPos+=(this.boxWidth+this.boxSpace); + allElements.push(this.createOneArrow(xPos-this.boxSpace)); + } + + allElements.push(this.createEndCircle(xPos, "End")) + xPos+=(this.boxWidth+this.boxSpace); + + return allElements; + } + + renderSvg() { + if (this.state.loopCache.getLoopName() === undefined) { + return [emptySvg]; + } + if (this.state.generatedFrom === SvgGenerator.GENERATED_FROM_INSTANCE) { + return this.createSvgFromInstance(); + } else if (this.state.generatedFrom === SvgGenerator.GENERATED_FROM_TEMPLATE) { + return this.createSvgFromTemplate(); + } + } + + render() { + var allTheElements = this.renderSvg(); + var svgWidth = this.boxWidth*allTheElements.length; + var svgHeight = this.boxHeight+100; + return ( + <DivStyled onClick={this.handleSvgClick} > + <svg height={svgHeight} width={svgWidth} preserveAspectRatio="none"> + {allTheElements} + </svg> + </DivStyled> + ); + } +} + +export default withRouter(SvgGenerator); diff --git a/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap b/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap deleted file mode 100644 index e05f1c794..000000000 --- a/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap +++ /dev/null @@ -1,34 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Verify LoopSvg Test the render method 1`] = ` -<styled.svg - dangerouslySetInnerHTML={ - Object { - "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>", - } - } - onClick={[Function]} -/> -`; - -exports[`Verify LoopSvg Test the render method no loopName 1`] = ` -<styled.svg - dangerouslySetInnerHTML={ - Object { - "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>", - } - } - onClick={[Function]} -/> -`; - -exports[`Verify LoopSvg Test the render method svg not empty 1`] = ` -<styled.svg - dangerouslySetInnerHTML={ - Object { - "__html": "<svg><text test</text></svg>", - } - } - onClick={[Function]} -/> -`; diff --git a/ui-react/src/components/loop_viewer/svg/example.svg b/ui-react/src/components/loop_viewer/svg/example.svg deleted file mode 100644 index a7c40ee27..000000000 --- a/ui-react/src/components/loop_viewer/svg/example.svg +++ /dev/null @@ -1 +0,0 @@ -<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-82c14603-02fc-4df7-8977-9b10e4c775d1" 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-dbbb2d5a-e9c4-446d-92b9-c71908854434" 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_Jbv1z_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-3892abbc-c49c-40df-984b-8959b6df44e6" 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-44a8b77e-d0eb-4c0d-82b6-0822ff35573f" 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>
\ No newline at end of file diff --git a/ui-react/src/theme/globalStyle.js b/ui-react/src/theme/globalStyle.js index 64fd7c5d9..43aa30f00 100644 --- a/ui-react/src/theme/globalStyle.js +++ b/ui-react/src/theme/globalStyle.js @@ -51,12 +51,6 @@ export const GlobalClampStyle = createGlobalStyle` margin-top: 1px; } - svg { - overflow: hidden; - width: 100%; - height: 100%; - } - label { font-family: ${props => props.theme.fontFamily}; font-size: ${props => props.theme.fontSize}; @@ -68,6 +62,7 @@ export const GlobalClampStyle = createGlobalStyle` font-size: ${props => props.theme.fontSize}; font-weight: bold; } + ` export const DefaultClampTheme = { diff --git a/ui-react/src/utils/OnapConstants.js b/ui-react/src/utils/OnapConstants.js index 22460c3d1..8460340d1 100644 --- a/ui-react/src/utils/OnapConstants.js +++ b/ui-react/src/utils/OnapConstants.js @@ -24,7 +24,9 @@ // Maintain a list of ONAP CLAMP UI "constants" that can be used by any componenet within CLAMP const OnapConstants = { - defaultLoopName: "Empty (NO loop loaded yet)" + defaultLoopName: "Empty (NO loop loaded yet)", + microServiceType: "MICRO-SERVICE-POLICY", + operationalPolicyType: "OPERATIONAL_POLICY_TYPE" }; export default OnapConstants; |