summaryrefslogtreecommitdiffstats
path: root/docs/clamp
diff options
context:
space:
mode:
authorFrancescoFioraEst <francesco.fiora@est.tech>2024-04-26 09:53:55 +0100
committerFrancesco Fiora <francesco.fiora@est.tech>2024-04-29 08:52:12 +0000
commitc78136bd23f96c2c79d66f8494f914a3405f2876 (patch)
tree4ef8f9b55a4336472462216f952a01244271f986 /docs/clamp
parent2816f402050037f1b525d5b37a2d057d90070057 (diff)
Update Participant Simulator docs
Issue-ID: POLICY-4971 Change-Id: I4bb4ff00414ec1de935ed2bed3b50b4f7a0212d3 Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'docs/clamp')
-rw-r--r--docs/clamp/acm/acm-participant-guide.rst104
-rw-r--r--docs/clamp/acm/acm-user-guide.rst6
-rw-r--r--docs/clamp/acm/design-impl/participants/participants.rst1
-rw-r--r--docs/clamp/acm/design-impl/participants/sim-participant.rst42
-rw-r--r--docs/clamp/acm/design-impl/participants/swagger/participant-sim.json1028
-rw-r--r--docs/clamp/acm/draw.io/acm-participant-sim.drawio305
-rw-r--r--docs/clamp/acm/images/participants/sim-participant.pngbin0 -> 98976 bytes
7 files changed, 1154 insertions, 332 deletions
diff --git a/docs/clamp/acm/acm-participant-guide.rst b/docs/clamp/acm/acm-participant-guide.rst
index a98e66b8..b4ca885d 100644
--- a/docs/clamp/acm/acm-participant-guide.rst
+++ b/docs/clamp/acm/acm-participant-guide.rst
@@ -194,6 +194,108 @@ Any new functionality in the future will be wrapped by this class.
Default implementation are supported for the methods: lock, unlock, update, migrate, delete, prime, deprime, handleRestartComposition and handleRestartInstance.
+Methods: deploy, undeploy, lock, unlock and delete
+ compositionElement:
+ ====================== =======================================
+ **field** **description**
+ ====================== =======================================
+ compositionId composition definition Id
+ elementDefinitionId composition definition element Id
+ inProperties composition definition in-properties
+ outProperties composition definition out-properties
+ ====================== =======================================
+ instanceElement:
+ ============================== ===========================
+ **field** **description**
+ ============================== ===========================
+ instanceId instance id
+ elementId instance element id
+ toscaServiceTemplateFragment policies and policy types
+ inProperties instance in-properties
+ outProperties instance out-properties
+ ============================== ===========================
+
+Method: update
+ compositionElement:
+ ====================== =======================================
+ **field** **description**
+ ====================== =======================================
+ compositionId composition definition Id
+ elementDefinitionId composition definition element Id
+ inProperties composition definition in-properties
+ outProperties composition definition out-properties
+ ====================== =======================================
+ instanceElement:
+ ============================== ================================================
+ **field** **description**
+ ============================== ================================================
+ instanceId instance id
+ elementId instance element id
+ toscaServiceTemplateFragment
+ inProperties instance in-properties **(before the update)**
+ outProperties instance out-properties
+ ============================== ================================================
+ instanceElementUpdated:
+ ============================== ======================================
+ **field** **description**
+ ============================== ======================================
+ instanceId instance id
+ elementId instance element id
+ toscaServiceTemplateFragment
+ inProperties instance in-properties **(updated)**
+ outProperties instance out-properties
+ ============================== ======================================
+
+Methods: prime, deprime
+ composition:
+ ====================== ===================================================================
+ **field** **description**
+ ====================== ===================================================================
+ compositionId composition definition Id
+ inProperties composition definition in-properties for each definition element
+ outProperties composition definition out-properties for each definition element
+ ====================== ===================================================================
+
+Method: migrate
+ compositionElement:
+ ====================== =======================================
+ **field** **description**
+ ====================== =======================================
+ compositionId composition definition Id
+ elementDefinitionId composition definition element Id
+ inProperties composition definition in-properties
+ outProperties composition definition out-properties
+ ====================== =======================================
+ compositionElementTarget:
+ ====================== ==============================================
+ **field** **description**
+ ====================== ==============================================
+ compositionId composition definition target Id
+ elementDefinitionId composition definition target element Id
+ inProperties composition definition target in-properties
+ outProperties composition definition target out-properties
+ ====================== ==============================================
+ instanceElement:
+ ============================== ===================================================
+ **field** **description**
+ ============================== ===================================================
+ instanceId instance id
+ elementId instance element id
+ toscaServiceTemplateFragment
+ inProperties instance in-properties **(before the migration)**
+ outProperties instance out-properties
+ ============================== ===================================================
+ instanceElementMigrate:
+ ============================== ======================================
+ **field** **description**
+ ============================== ======================================
+ instanceId instance id
+ elementId instance element id
+ toscaServiceTemplateFragment
+ inProperties instance in-properties **(updated)**
+ outProperties instance out-properties
+ ============================== ======================================
+
APIs to invoke
--------------
ParticipantIntermediaryApi:
@@ -665,4 +767,4 @@ error scenarios in the participant with the suitable approach.
Tips:
If the participant tries to undeploy an element which doesn’t exist in the system any more (due to various other external factors),
-it could update the element state to ‘undeployed’ using the Intermediary api. \ No newline at end of file
+it could update the element state to ‘undeployed’ using the Intermediary api.
diff --git a/docs/clamp/acm/acm-user-guide.rst b/docs/clamp/acm/acm-user-guide.rst
index faab7e61..3c56f906 100644
--- a/docs/clamp/acm/acm-user-guide.rst
+++ b/docs/clamp/acm/acm-user-guide.rst
@@ -418,7 +418,7 @@ The Json below is an example of configuration:
Update and send composition outProperites
-----------------------------------------
-Data like useState operationalState and outProperites could be updated any time using the following endpoint:
+Composition Definition outProperites could be updated any time using the following endpoint:
.. code-block:: bash
@@ -454,7 +454,7 @@ could be read using the following endpoint:
Update and send useState operationalState and instance outProperites
--------------------------------------------------------------------
-Data like useState operationalState and outProperites could be updated any time using the following endpoint:
+AC instance data like useState operationalState and outProperites could be updated any time using the following endpoint:
.. code-block:: bash
@@ -466,7 +466,7 @@ The Json below is an example of update, where {{instanceId}} is the UUID of the
{
"outProperties": {
- "Opresult": true,
+ "result": true,
"list": [
{"id": 1 },
{"id": 2 }
diff --git a/docs/clamp/acm/design-impl/participants/participants.rst b/docs/clamp/acm/design-impl/participants/participants.rst
index 6b12b7c4..254d80c7 100644
--- a/docs/clamp/acm/design-impl/participants/participants.rst
+++ b/docs/clamp/acm/design-impl/participants/participants.rst
@@ -38,3 +38,4 @@ The detailed implementation of the CLAMP Participant ecosystem is described on t
a1pms-participant
kserve-participant
policy-framework-participant
+ sim-participant
diff --git a/docs/clamp/acm/design-impl/participants/sim-participant.rst b/docs/clamp/acm/design-impl/participants/sim-participant.rst
new file mode 100644
index 00000000..96683a6a
--- /dev/null
+++ b/docs/clamp/acm/design-impl/participants/sim-participant.rst
@@ -0,0 +1,42 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. _clamp-acm-sim-participant:
+
+Simulator Participant
+#####################
+
+This can be used for simulation testing purpose when there are no actual frameworks or a full deployment.
+Typically the Simulator Participant can be used with other Simulator participants with different supported element types.
+Once the microservice is up, the Simulator participants can be used to test CLAMP runtime and intermediary library.
+It supports the message Broker Kafka.
+
+.. image:: ../../images/participants/sim-participant.png
+
+Supported Element Types
+-----------------------
+Supported Element Types for Simulator participant will be used to define a whatever participant Element Definition Types in tosca template.
+Participant Supported Element Types is defined in Simulator participant application.yaml.
+The example below shows how to mock the HTTP participant:
+
+.. code-block:: YAML
+
+ participantSupportedElementTypes:
+ -
+ typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
+ typeVersion: 1.0.0
+
+Supported participant Interactions:
+-----------------------------------
+The Simulator participant interacts with ACM Runtime on the northbound via Message Broker. It interacts with tester via Rest Api.
+
+The communication for the Automation Composition updates and state change requests are sent from the ACM Runtime to the participant via Message Broker.
+The tester can invoke the appropriate endpoint of the participant to change the behavior of how the participant should replay to ACM runtime.
+
+Participant Simulator API
+=========================
+
+This API allows a Participant Simulator to be started and run for test purposes.
+
+:download:`Download Policy Participant Simulator API Swagger <swagger/participant-sim.json>`
+
+.. swaggerv2doc:: swagger/participant-sim.json
diff --git a/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json b/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json
index b258f85a..3be2d348 100644
--- a/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json
+++ b/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json
@@ -1,117 +1,205 @@
{
- "swagger": "2.0",
+ "openapi": "3.0.1",
"info": {
- "description": "Api Documentation",
- "version": "1.0",
- "title": "Api Documentation",
- "termsOfService": "urn:tos",
- "contact": {},
+ "title": "ACM Mock Participant",
+ "description": "CLAMP Mock Participant API",
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0"
}
},
+ "externalDocs": {
+ "description": "CLAMP Automation Composition Management Documentation",
+ "url": "https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/clamp.html"
+ },
+ "servers": [
+ {
+ "url": "http://localhost:8084/onap/policy/clamp/acm/simparticipant",
+ "description": "Generated server url"
+ }
+ ],
"paths": {
- "/onap/participantsim/v2/elements": {
- "put": {
+ "/v2/parameters": {
+ "get": {
"tags": [
- "Clamp Automation Composition Participant Simulator API"
- ],
- "summary": "Updates simulated automation composition elements",
- "description": "Updates simulated automation composition elements, returning the updated automation composition definition IDs",
- "operationId": "updateUsingPUT",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json",
- "application/yaml"
+ "Simulator-participant-controller"
],
+ "summary": "Return all Parameters",
+ "description": "Return all the parameters configured in the Simulator Participant",
+ "operationId": "getConfig",
"parameters": [
{
- "in": "body",
- "name": "body",
- "description": "Body of a automation composition element",
- "required": true,
+ "name": "X-onap-RequestId",
+ "in": "header",
+ "description": "RequestID for http transaction",
+ "required": false,
"schema": {
- "$ref": "#/definitions/AutomationCompositionElementReq",
- "originalRef": "AutomationCompositionElementReq"
+ "type": "string",
+ "format": "uuid"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK, reutrns a serialised instance of [SimConfig](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/SimConfig.java)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ }
}
},
+ "401": {
+ "description": "Authorization Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "basicAuth": []
+ }
+ ]
+ },
+ "put": {
+ "tags": [
+ "Simulator-participant-controller"
+ ],
+ "summary": "change the parameters",
+ "description": "Change the parameters the behaviour of the Simulator Participant",
+ "operationId": "setConfig",
+ "parameters": [
{
"name": "X-ONAP-RequestID",
"in": "header",
"description": "RequestID for http transaction",
"required": false,
- "type": "string",
- "format": "uuid"
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/SimConfig"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
- "description": "OK",
- "schema": {
- "$ref": "#/definitions/TypedSimpleResponse«AutomationCompositionElement»",
- "originalRef": "TypedSimpleResponse«AutomationCompositionElement»"
- }
+ "description": "OK, the parameters has been saved"
},
- "201": {
- "description": "Created"
+ "400": {
+ "description": "Bad Request"
},
"401": {
- "description": "Authentication Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "description": "Authorization Error"
+ },
+ "500": {
+ "description": "Internal Server Error"
+ }
+ },
+ "security": [
+ {
+ "basicAuth": []
+ }
+ ]
+ }
+ },
+ "/v2/datas": {
+ "get": {
+ "tags": [
+ "Simulator-participant-controller"
+ ],
+ "summary": "Query details of the requested internal datas",
+ "description": "Query details of the requested internal datas",
+ "operationId": "getDatas",
+ "parameters": [
+ {
+ "name": "X-onap-RequestId",
+ "in": "header",
+ "description": "RequestID for http transaction",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Serialised instance of [InternalDatas](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/InternalDatas.java)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
},
- "403": {
+ "401": {
"description": "Authorization Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
},
- "404": {
- "description": "Not Found"
- },
"500": {
"description": "Internal Server Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
}
@@ -120,114 +208,121 @@
{
"basicAuth": []
}
+ ]
+ },
+ "put": {
+ "tags": [
+ "Simulator-participant-controller"
],
- "x-interface info": {
- "api-version": "1.0.0",
- "last-mod-release": "Dublin"
- }
+ "summary": "change the parameters",
+ "description": "Change the data of the Simulator Participant",
+ "operationId": "setData",
+ "parameters": [
+ {
+ "name": "X-ONAP-RequestID",
+ "in": "header",
+ "description": "RequestID for http transaction",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalData"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalData"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK, the data has been saved"
+ },
+ "400": {
+ "description": "Bad Request"
+ },
+ "401": {
+ "description": "Authorization Error"
+ },
+ "500": {
+ "description": "Internal Server Error"
+ }
+ },
+ "security": [
+ {
+ "basicAuth": []
+ }
+ ]
}
},
- "/onap/participantsim/v2/elements/{name}/{version}": {
+ "/v2/compositiondatas": {
"get": {
"tags": [
- "Clamp Automation Composition Participant Simulator API"
- ],
- "summary": "Query details of the requested simulated automation composition elements",
- "description": "Queries details of the requested simulated automation composition elements, returning all automation composition element details",
- "operationId": "elementsUsingGET",
- "produces": [
- "application/json",
- "application/yaml"
+ "Simulator-participant-controller"
],
+ "summary": "Query details of the requested internal composition datas",
+ "description": "Query details of the requested internal composition datas",
+ "operationId": "getCompositionDatas",
"parameters": [
{
- "name": "name",
- "in": "path",
- "description": "Automation Composition element name",
- "required": true,
- "type": "string"
- },
- {
- "name": "version",
- "in": "path",
- "description": "Automation Composition element version",
- "required": true,
- "type": "string"
- },
- {
- "name": "X-ONAP-RequestID",
+ "name": "X-onap-RequestId",
"in": "header",
"description": "RequestID for http transaction",
"required": false,
- "type": "string",
- "format": "uuid"
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
}
],
"responses": {
"200": {
- "description": "OK",
- "schema": {
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/AutomationCompositionElementRes",
- "originalRef": "AutomationCompositionElementRes"
+ "description": "Serialised instance of [InternalDatas](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/InternalDatas.java)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
},
"401": {
- "description": "Authentication Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
- }
- }
- },
- "403": {
"description": "Authorization Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
},
- "404": {
- "description": "Not Found"
- },
"500": {
"description": "Internal Server Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalDatas"
+ }
}
}
}
@@ -236,113 +331,121 @@
{
"basicAuth": []
}
- ],
- "x-interface info": {
- "api-version": "1.0.0",
- "last-mod-release": "Dublin"
- }
- }
- },
- "/onap/participantsim/v2/participants": {
+ ]
+ },
"put": {
"tags": [
- "Clamp Automation Composition Participant Simulator API"
- ],
- "summary": "Updates simulated participants",
- "description": "Updates simulated participants, returning the updated automation composition definition IDs",
- "operationId": "updateUsingPUT_1",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json",
- "application/yaml"
+ "Simulator-participant-controller"
],
+ "summary": "change the parameters",
+ "description": "Change the data of the Simulator Participant",
+ "operationId": "setCompositionData",
"parameters": [
{
- "in": "body",
- "name": "body",
- "description": "Body of a participant",
- "required": true,
- "schema": {
- "$ref": "#/definitions/ParticipantReq",
- "originalRef": "ParticipantReq"
- }
- },
- {
"name": "X-ONAP-RequestID",
"in": "header",
"description": "RequestID for http transaction",
"required": false,
- "type": "string",
- "format": "uuid"
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalData"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/InternalData"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
- "description": "OK",
- "schema": {
- "$ref": "#/definitions/TypedSimpleResponse«Participant»",
- "originalRef": "TypedSimpleResponse«Participant»"
- }
+ "description": "OK, the data has been saved"
},
- "201": {
- "description": "Created"
+ "400": {
+ "description": "Bad Request"
},
"401": {
- "description": "Authentication Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "description": "Authorization Error"
+ },
+ "500": {
+ "description": "Internal Server Error"
+ }
+ },
+ "security": [
+ {
+ "basicAuth": []
+ }
+ ]
+ }
+ },
+ "/v2/instances": {
+ "get": {
+ "tags": [
+ "Simulator-participant-controller"
+ ],
+ "summary": "Query details of the requested automation composition instances",
+ "description": "Query details of the requested automation composition instances for the given automation composition definition ID, returning details of all its automation composition instances",
+ "operationId": "getAutomationCompositions",
+ "parameters": [
+ {
+ "name": "X-onap-RequestId",
+ "in": "header",
+ "description": "RequestID for http transaction",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Serialised instance of [AutomationCompositions](https://github.com/onap/policy-clamp/blob/master/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositions.java) containing a list of automation composition instances found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationCompositions"
+ }
}
}
},
- "403": {
+ "401": {
"description": "Authorization Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationCompositions"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationCompositions"
+ }
}
}
},
- "404": {
- "description": "Not Found"
- },
"500": {
"description": "Internal Server Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationCompositions"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationCompositions"
+ }
}
}
}
@@ -351,114 +454,77 @@
{
"basicAuth": []
}
- ],
- "x-interface info": {
- "api-version": "1.0.0",
- "last-mod-release": "Dublin"
- }
+ ]
}
},
- "/onap/participantsim/v2/participants/{name}/{version}": {
+ "/v2/instances/{instanceId}": {
"get": {
"tags": [
- "Clamp Automation Composition Participant Simulator API"
- ],
- "summary": "Query details of the requested simulated participants",
- "description": "Queries details of the requested simulated participants, returning all participant details",
- "operationId": "participantsUsingGET",
- "produces": [
- "application/json",
- "application/yaml"
+ "Simulator-participant-controller"
],
+ "summary": "Get automation composition instance details.",
+ "description": "Get details of the requested automation composition instance.",
+ "operationId": "getAutomationComposition",
"parameters": [
{
- "name": "name",
+ "name": "instanceId",
"in": "path",
- "description": "Participant name",
+ "description": "The UUID of the automation composition instance to get",
"required": true,
- "type": "string"
- },
- {
- "name": "version",
- "in": "path",
- "description": "Participant version",
- "required": true,
- "type": "string"
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
},
{
- "name": "X-ONAP-RequestID",
+ "name": "X-onap-RequestId",
"in": "header",
"description": "RequestID for http transaction",
"required": false,
- "type": "string",
- "format": "uuid"
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
}
],
"responses": {
"200": {
- "description": "OK",
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ParticipantRes",
- "originalRef": "ParticipantRes"
+ "description": "Serialised instance of [AutomationComposition](https://github.com/onap/policy-clamp/blob/master/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/AutomationComposition.java) containing the automation composition instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
}
}
},
"401": {
- "description": "Authentication Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
- }
- }
- },
- "403": {
"description": "Authorization Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
}
}
},
- "404": {
- "description": "Not Found"
- },
"500": {
"description": "Internal Server Error",
- "headers": {
- "X-LatestVersion": {
- "type": "string"
- },
- "X-PatchVersion": {
- "type": "string"
- },
- "X-MinorVersion": {
- "type": "string"
- },
- "X-ONAP-RequestID": {
- "type": "string",
- "format": "uuid"
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
+ },
+ "application/yaml": {
+ "schema": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
}
}
}
@@ -467,12 +533,318 @@
{
"basicAuth": []
}
- ],
- "x-interface info": {
- "api-version": "1.0.0",
- "last-mod-release": "Dublin"
+ ]
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "SimConfig": {
+ "type": "object",
+ "properties": {
+ "deploySuccess": {
+ "type": "boolean"
+ },
+ "undeploySuccess": {
+ "type": "boolean"
+ },
+ "lockSuccess": {
+ "type": "boolean"
+ },
+ "unlockSuccess": {
+ "type": "boolean"
+ },
+ "deleteSuccess": {
+ "type": "boolean"
+ },
+ "updateSuccess": {
+ "type": "boolean"
+ },
+ "migrateSuccess": {
+ "type": "boolean"
+ },
+ "primeSuccess": {
+ "type": "boolean"
+ },
+ "deprimeSuccess": {
+ "type": "boolean"
+ },
+ "deployTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "undeployTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "lockTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "unlockTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "updateTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "migrateTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "deleteTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "primeTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "deprimeTimerMs": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "InternalData": {
+ "type": "object",
+ "properties": {
+ "intProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "outProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "compositionId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "compositionDefinitionElementId": {
+ "$ref": "#/components/schemas/ToscaConceptIdentifier"
+ },
+ "automationCompositionId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "automationCompositionElementId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "useState": {
+ "type": "string"
+ },
+ "operationalState": {
+ "type": "string"
+ }
+ }
+ },
+ "ToscaConceptIdentifier": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ }
+ },
+ "AutomationComposition": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "derivedFrom": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "instanceId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "compositionId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "compositionTargetId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "restarting": {
+ "type": "boolean"
+ },
+ "deployState": {
+ "type": "string",
+ "enum": [
+ "DEPLOYED",
+ "DEPLOYING",
+ "UNDEPLOYED",
+ "UNDEPLOYING",
+ "DELETING",
+ "DELETED",
+ "UPDATING",
+ "MIGRATING"
+ ]
+ },
+ "lockState": {
+ "type": "string",
+ "enum": [
+ "LOCKED",
+ "LOCKING",
+ "UNLOCKED",
+ "UNLOCKING",
+ "NONE"
+ ]
+ },
+ "elements": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/AutomationCompositionElement"
+ }
+ },
+ "stateChangeResult": {
+ "type": "string",
+ "enum": [
+ "NO_ERROR",
+ "FAILED",
+ "TIMEOUT"
+ ]
+ },
+ "definedName": {
+ "type": "string"
+ },
+ "definedVersion": {
+ "type": "string"
+ },
+ "typeVersion": {
+ "type": "string"
+ },
+ "key": {
+ "$ref": "#/components/schemas/ToscaEntityKey"
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ },
+ "AutomationCompositionElement": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "definition": {
+ "$ref": "#/components/schemas/ToscaConceptIdentifier"
+ },
+ "participantId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "restarting": {
+ "type": "boolean"
+ },
+ "deployState": {
+ "type": "string",
+ "enum": [
+ "DEPLOYED",
+ "DEPLOYING",
+ "UNDEPLOYED",
+ "UNDEPLOYING",
+ "DELETING",
+ "DELETED",
+ "UPDATING",
+ "MIGRATING"
+ ]
+ },
+ "lockState": {
+ "type": "string",
+ "enum": [
+ "LOCKED",
+ "LOCKING",
+ "UNLOCKED",
+ "UNLOCKING",
+ "NONE"
+ ]
+ },
+ "operationalState": {
+ "type": "string"
+ },
+ "useState": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "properties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "outProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "AutomationCompositions": {
+ "type": "object",
+ "properties": {
+ "automationCompositionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AutomationComposition"
+ }
+ }
+ }
+ },
+ "ToscaEntityKey": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ }
+ },
+ "InternalDatas": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/InternalData"
+ }
+ }
}
}
}
}
-} \ No newline at end of file
+}
diff --git a/docs/clamp/acm/draw.io/acm-participant-sim.drawio b/docs/clamp/acm/draw.io/acm-participant-sim.drawio
new file mode 100644
index 00000000..5bcab9c2
--- /dev/null
+++ b/docs/clamp/acm/draw.io/acm-participant-sim.drawio
@@ -0,0 +1,305 @@
+<mxfile host="app.diagrams.net" modified="2024-04-25T08:32:23.823Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" etag="aqt378V_5LFppGlvXt5Y" version="24.3.0" type="device" pages="2">
+ <diagram name="A1PMS" id="EQz7CeIsnqjb-CRsskzZ">
+ <mxGraphModel dx="2634" dy="738" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-2" value="ACM Runtime" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
+ <mxGeometry x="44" y="28" width="156" height="81" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-3" value="Kafka" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
+ <mxGeometry x="-175" y="201" width="602" height="39" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-4" value="Participant Simulator" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="12" y="333" width="243" height="183" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-5" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Automation Composition Element A&lt;/span&gt;&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;size=15;" parent="1" vertex="1">
+ <mxGeometry x="-558" y="257" width="220" height="53" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-10" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="BEZJXQmxWPO11OeoHs-X-5" target="BEZJXQmxWPO11OeoHs-X-8" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="-8" y="7" as="sourcePoint" />
+ <mxPoint x="37" y="-45.75" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-11" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.318;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.586;exitY=0.057;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-8" edge="1" source="TKIm4hqrSRE_Ot67SPcm-1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="-669" y="337" as="sourcePoint" />
+ <mxPoint x="-608.2950000000001" y="156.002" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-8" value="Tester (CSIT, Performance Test, User)" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
+ <mxGeometry x="-647" y="25" width="151" height="97" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-14" value="Automation Composition Element A" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+ <mxGeometry x="27" y="378" width="213" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-15" value="Automation Composition Element B" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
+ <mxGeometry x="27" y="450" width="213" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-37" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-39" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="154" y="109" as="sourcePoint" />
+ <mxPoint x="156" y="151" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-38" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-39" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="154" y="201" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-39" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="149" y="150" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-40" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-42" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="240" as="sourcePoint" />
+ <mxPoint x="87" y="282" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="85" y="273" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-41" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-42" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="332" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-42" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="80" y="281" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-43" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-45" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="157" y="240" as="sourcePoint" />
+ <mxPoint x="159" y="282" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-44" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-45" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="157" y="332" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-45" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="152" y="281" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-46" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-48" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="110" as="sourcePoint" />
+ <mxPoint x="87" y="152" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-47" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="BEZJXQmxWPO11OeoHs-X-48" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="202" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-48" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="80" y="151" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-50" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=-0.009;exitY=0.617;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.993;entryY=0.905;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="BEZJXQmxWPO11OeoHs-X-15" target="BEZJXQmxWPO11OeoHs-X-8" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" y="426" as="sourcePoint" />
+ <mxPoint x="413" y="416" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-51" value="REST" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="-461.5" y="105" width="61" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-52" value="Instantiation" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="-26" y="143" width="104" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-53" value="Instantiation" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="-26" y="274" width="104" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-54" value="Monitoring" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="159" y="139.5" width="93" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="BEZJXQmxWPO11OeoHs-X-55" value="Monitoring" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="162" y="270.5" width="93" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="rvGSiY4AJXrMUw3_xQ0a-1" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="BEZJXQmxWPO11OeoHs-X-14" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="250" y="484" as="sourcePoint" />
+ <mxPoint x="-497" y="111" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="TKIm4hqrSRE_Ot67SPcm-1" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Automation Composition Element B&lt;/span&gt;&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;size=14;" vertex="1" parent="1">
+ <mxGeometry x="-830" y="257" width="220" height="53" as="geometry" />
+ </mxCell>
+ <mxCell id="TKIm4hqrSRE_Ot67SPcm-3" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;" edge="1" parent="1" target="BEZJXQmxWPO11OeoHs-X-8">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="42" y="68" as="sourcePoint" />
+ <mxPoint x="-511" y="64" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="TKIm4hqrSRE_Ot67SPcm-4" value="REST" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
+ <mxGeometry x="-469.5" y="40" width="61" height="31" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="7EV7rOq7FkkVQS_sMw84" name="Kserve">
+ <mxGraphModel dx="2397" dy="1412" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-11" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;dashed=1;dashPattern=12 12;" vertex="1" parent="1">
+ <mxGeometry x="-261" y="-213" width="1024" height="778" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-1" value="CLAMP-ACM&lt;br&gt;GUI" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1">
+ <mxGeometry x="47" y="-103" width="153" height="81" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-2" value="Automation Composition Runtime (CLAMP-ACM)" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
+ <mxGeometry x="44" y="28" width="156" height="81" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-3" value="Kafka" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
+ <mxGeometry x="-232" y="201" width="760" height="39" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-5" value="Kserve Participant Automation Composition Element Configuration for Automation Composition A&lt;br&gt;&lt;br&gt;- Define Inference Service Entities&lt;br&gt;&amp;nbsp; + Sequence of Inference Services&lt;br&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Name&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Namespace&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Payload&lt;/span&gt;&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+ <mxGeometry x="-553" y="-227" width="273" height="224" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-6" value="Kserve Participant Automation Composition Element Configuration for Automation Composition B&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;- Define Inference Service Entities&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&amp;nbsp; + Sequence of Inference Services&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;div style=&quot;border-color: var(--border-color); text-align: left;&quot;&gt;- Name&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color); text-align: left;&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Namespace&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color); text-align: left;&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Payload&lt;/span&gt;&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
+ <mxGeometry x="-556" y="24" width="274" height="204" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-7" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.996;exitY=0.278;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-5" target="hDoWaCIZZ_nO79t9Hxqc-1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2" y="-30" as="sourcePoint" />
+ <mxPoint x="52" y="-80" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-8" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=1.022;exitY=0.288;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.015;entryY=0.632;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-6" target="hDoWaCIZZ_nO79t9Hxqc-1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="-293" y="-157" as="sourcePoint" />
+ <mxPoint x="54" y="-73" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-9" value="" style="endArrow=none;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-2" target="hDoWaCIZZ_nO79t9Hxqc-1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="67" y="28" as="sourcePoint" />
+ <mxPoint x="117" y="-22" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-11" value="Inference Service for Automation Composition A" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+ <mxGeometry x="430" y="352" width="141" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-12" value="Inference Service for Automation Composition B" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
+ <mxGeometry x="591" y="352" width="141" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-15" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-17" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="154" y="109" as="sourcePoint" />
+ <mxPoint x="156" y="151" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-16" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-17" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="154" y="201" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-17" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="149" y="150" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-18" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-20" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="240" as="sourcePoint" />
+ <mxPoint x="87" y="282" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="85" y="273" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-19" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-20" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="332" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-20" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="80" y="281" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-21" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-23" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="157" y="240" as="sourcePoint" />
+ <mxPoint x="159" y="282" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-22" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-23" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="157" y="332" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-23" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="152" y="281" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-24" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;sketch=0;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.262;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-26" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="110" as="sourcePoint" />
+ <mxPoint x="87" y="152" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-25" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=halfCircle;endFill=0;entryX=0.5;entryY=0.5;endSize=6;strokeWidth=1;sketch=0;fontSize=12;curved=1;exitX=0.416;exitY=0.012;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-26" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="85" y="202" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-26" value="" style="ellipse;whiteSpace=wrap;html=1;align=center;aspect=fixed;resizable=0;points=[];outlineConnect=0;sketch=0;fontSize=16;direction=south;fillColor=#B20000;fontColor=#ffffff;strokeColor=#B20000;strokeWidth=2;" parent="1" vertex="1">
+ <mxGeometry x="80" y="151" width="10" height="10" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-29" value="Instantiation" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="-26" y="143" width="104" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-30" value="Instantiation" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="-26" y="274" width="104" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-31" value="Monitoring" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="159" y="139.5" width="93" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-32" value="Monitoring" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="1" vertex="1">
+ <mxGeometry x="162" y="270.5" width="93" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-6" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;" edge="1" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-36" target="hDoWaCIZZ_nO79t9Hxqc-12">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-7" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.545;entryY=0.979;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=12;startSize=8;endSize=8;" edge="1" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-36" target="hDoWaCIZZ_nO79t9Hxqc-11">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-36" value="Kserve" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1">
+ <mxGeometry x="511" y="453" width="141" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-2" value="" style="group" vertex="1" connectable="0" parent="1">
+ <mxGeometry x="8" y="333" width="243" height="183" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="yh-L3AtmC00XoUG_2nvY-2" vertex="1">
+ <mxGeometry width="243" height="183" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-38" value="Kserve Paricipant" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" parent="yh-L3AtmC00XoUG_2nvY-2" vertex="1">
+ <mxGeometry x="45" width="143" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-13" value="Kserve Automation Composition Element for Automation Composition A" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" parent="yh-L3AtmC00XoUG_2nvY-2" vertex="1">
+ <mxGeometry x="15" y="31" width="213" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="hDoWaCIZZ_nO79t9Hxqc-14" value="Kserve Automation Composition Element for Automation Composition B" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" parent="yh-L3AtmC00XoUG_2nvY-2" vertex="1">
+ <mxGeometry x="15.5" y="103" width="210.5" height="62" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-5" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="hDoWaCIZZ_nO79t9Hxqc-36">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="388" y="423" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-3" value="K8s API" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=api;fontSize=16;" vertex="1" parent="1">
+ <mxGeometry x="299" y="377" width="122" height="83" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-9" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;" edge="1" parent="1" source="hDoWaCIZZ_nO79t9Hxqc-4">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="322" y="425" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-10" value="REST" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
+ <mxGeometry x="252" y="393" width="61" height="31" as="geometry" />
+ </mxCell>
+ <mxCell id="yh-L3AtmC00XoUG_2nvY-12" value="K8s Cluster" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=16;" vertex="1" parent="1">
+ <mxGeometry x="646" y="-200" width="101" height="31" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>
diff --git a/docs/clamp/acm/images/participants/sim-participant.png b/docs/clamp/acm/images/participants/sim-participant.png
new file mode 100644
index 00000000..8ceabb16
--- /dev/null
+++ b/docs/clamp/acm/images/participants/sim-participant.png
Binary files differ