summaryrefslogtreecommitdiffstats
path: root/docs/clamp/acm/plantuml
diff options
context:
space:
mode:
authorsaul.gill <saul.gill@est.tech>2023-03-27 14:31:00 +0100
committersaul.gill <saul.gill@est.tech>2023-03-27 15:17:35 +0100
commitd405151fb7af327892e86cd5673809a231d2879b (patch)
tree2e5a542044e07cf41d9c26ab8f19667af4bcac4b /docs/clamp/acm/plantuml
parent4e26b8883b250a91ae90deaf5657dc00fbf03bcc (diff)
Adding new state and system diagrams/pages
Added images for state diagrams Added images for system level dialogues diagrams Added puml for state diagrams Added puml for system level dialogues diagrams Added page content with diagrams Updated page links Issue-ID: POLICY-4598 Change-Id: Ife009a94f6b0b378fb565bdc097dba251ea74596 Signed-off-by: saul.gill <saul.gill@est.tech>
Diffstat (limited to 'docs/clamp/acm/plantuml')
-rw-r--r--docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnPpnt.puml14
-rw-r--r--docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnRuntime.puml22
-rw-r--r--docs/clamp/acm/plantuml/states/AcElementTypeStatesOnPpnt.puml7
-rw-r--r--docs/clamp/acm/plantuml/states/AcElementTypeStatesOnRuntime.puml12
-rw-r--r--docs/clamp/acm/plantuml/states/AcInstanceStates.puml22
-rw-r--r--docs/clamp/acm/plantuml/states/AcTypeStates.puml12
-rw-r--r--docs/clamp/acm/plantuml/states/DeregisterParticipant.puml20
-rw-r--r--docs/clamp/acm/plantuml/states/FullParticpantReport.puml11
-rw-r--r--docs/clamp/acm/plantuml/states/GetParticipantInformation.puml11
-rw-r--r--docs/clamp/acm/plantuml/states/ParticipantStates.puml10
-rw-r--r--docs/clamp/acm/plantuml/states/RegisterParticipant.puml16
-rw-r--r--docs/clamp/acm/plantuml/states/SuperviseParticipantsStatusUpdate.puml17
-rw-r--r--docs/clamp/acm/plantuml/states/SuperviseParticipantsTimeout.puml18
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/CommissionAcTypeSDC.puml11
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/CommissionUpdateAcType.puml15
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/CreateAcInstance.puml30
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DecommissionAcType.puml14
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeleteAcInstance.puml19
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeployAcInstance.puml22
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeployAcInstanceElements.puml31
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml17
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeprimeElements.puml27
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeprimeOnParticipants.puml21
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml20
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/FullParticipantReport.puml11
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/GetAcTypes.puml10
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/GetParticipantInformation.puml11
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/LockAcInstance.puml22
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/LockAcInstanceElements.puml32
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml17
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/OrderInstanceUnlock.puml22
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeMultiplePpnts.puml28
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml28
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml15
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/ReadAcInstances.puml10
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml16
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml17
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml18
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UndeployInstance.puml22
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UndeployInstanceElements.puml31
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml17
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UnlockInstanceElements.puml31
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml17
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml15
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml16
-rw-r--r--docs/clamp/acm/plantuml/system-dialogues/UpdateUsageState.puml16
46 files changed, 841 insertions, 0 deletions
diff --git a/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnPpnt.puml b/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnPpnt.puml
new file mode 100644
index 00000000..8c6e4302
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnPpnt.puml
@@ -0,0 +1,14 @@
+@startuml
+
+[*] --> DEPLOYED: Deploy from ACM Runtime
+DEPLOYED --> [*]: Undeploy from ACM Runtime
+
+
+state DEPLOYED {
+ [*] --> LOCKED: Deploy
+ LOCKED --> [*]: Undeploy from\nACM Runtime
+ LOCKED --> UNLOCKED: Unlock from\nACM Runtime
+ UNLOCKED --> LOCKED: Lock from\nACM Runtime
+}
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnRuntime.puml b/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnRuntime.puml
new file mode 100644
index 00000000..c27b320c
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcElementInstanceStatesOnRuntime.puml
@@ -0,0 +1,22 @@
+@startuml
+
+[*] --> UNDEPLOYED: Create
+UNDEPLOYED --> [*]: Delete
+UNDEPLOYED --> DEPLOYING: Deploy
+DEPLOYING --> DEPLOYED: AC Element\nInstance DEPLOYED
+DEPLOYING --> UNDEPLOYING: Undeploy
+DEPLOYED --> UNDEPLOYING: Undeploy
+UNDEPLOYING --> UNDEPLOYED: AC Element\nInstance UNDEPLOYED
+
+
+state DEPLOYED {
+ [*] --> LOCKED: Deploy
+ LOCKED --> [*]: Undeploy
+ LOCKED --> UNLOCKING: Unlock
+ UNLOCKING --> UNLOCKED: AC Element\nInstance UNLOCKED
+ UNLOCKED --> LOCKING: Lock
+ UNLOCKING --> LOCKING: Lock
+ LOCKING --> LOCKED: AC Element\nInstance LOCKED
+}
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnPpnt.puml b/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnPpnt.puml
new file mode 100644
index 00000000..f71da4cc
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnPpnt.puml
@@ -0,0 +1,7 @@
+@startuml
+
+[*] --> PRIMED: Prime from\nACM Runtime
+PRIMED --> PRIMED: Prime from ACM Runtime
+PRIMED --> [*]: Deprime from\nACM Runtime
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnRuntime.puml b/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnRuntime.puml
new file mode 100644
index 00000000..b5e093e0
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcElementTypeStatesOnRuntime.puml
@@ -0,0 +1,12 @@
+@startuml
+
+[*] --> COMMISSIONED: Commission
+COMMISSIONED --> [*]: Decommission
+COMMISSIONED --> PRIMING: Prime
+PRIMED --> PRIMING: Prime
+PRIMING --> PRIMED: AC Element Type Primed\nresponse from Participant
+PRIMING --> DEPRIMING: Deprime
+PRIMED --> DEPRIMING: Deprime
+DEPRIMING --> COMMISSIONED: AC Element Type Deprimed\nresponse from Participant
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/AcInstanceStates.puml b/docs/clamp/acm/plantuml/states/AcInstanceStates.puml
new file mode 100644
index 00000000..17958411
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcInstanceStates.puml
@@ -0,0 +1,22 @@
+@startuml
+
+[*] --> UNDEPLOYED: Create
+UNDEPLOYED --> [*]: Delete
+UNDEPLOYED --> DEPLOYING: Deploy
+DEPLOYING --> DEPLOYED: AC Element Instances\nall DEPLOYED
+DEPLOYING --> UNDEPLOYING: Undeploy
+DEPLOYED --> UNDEPLOYING: Undeploy
+UNDEPLOYING --> UNDEPLOYED: AC Element Types\nall UNDEPLOYED
+
+
+state DEPLOYED {
+ [*] --> LOCKED: Deploy
+ LOCKED --> [*]: Undeploy
+ LOCKED --> UNLOCKING: Unlock
+ UNLOCKING --> UNLOCKED: AC Element Types\nall UNLOCKED
+ UNLOCKED --> LOCKING: Lock
+ UNLOCKING --> LOCKING: Lock
+ LOCKING --> LOCKED: AC Element Types\nall LOCKED
+}
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/AcTypeStates.puml b/docs/clamp/acm/plantuml/states/AcTypeStates.puml
new file mode 100644
index 00000000..f255b040
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/AcTypeStates.puml
@@ -0,0 +1,12 @@
+@startuml
+
+[*] --> COMMISSIONED: Commission
+COMMISSIONED --> [*]: Decommission
+COMMISSIONED --> PRIMING: Prime
+PRIMED --> PRIMING: Prime
+PRIMING --> PRIMED: AC Element Types\nall PRIMED
+PRIMING --> DEPRIMING: Deprime
+PRIMED --> DEPRIMING: Deprime
+DEPRIMING --> COMMISSIONED: AC Element Types\nall DEPRIMED
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/DeregisterParticipant.puml b/docs/clamp/acm/plantuml/states/DeregisterParticipant.puml
new file mode 100644
index 00000000..061dbea1
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/DeregisterParticipant.puml
@@ -0,0 +1,20 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+Participant -> Participant: Uninitialize all ACM Element Instances running on Participant\n(See Instantiation Dialogues)
+activate Participant
+deactivate Participant
+
+Participant -> ACM_Runtime: [ASYNC] Deregister
+ACM_Runtime -> ACM_Database: Delete Participant Registration
+ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE
+Participant <- ACM_Runtime: [ASYNC] Deregistration Accepted
+
+ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE
+activate ACM_Runtime
+deactivate ACM_Runtime
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/FullParticpantReport.puml b/docs/clamp/acm/plantuml/states/FullParticpantReport.puml
new file mode 100644
index 00000000..50943c8b
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/FullParticpantReport.puml
@@ -0,0 +1,11 @@
+@startuml
+
+participant REST
+participant ACM_Runtime
+participant Participants
+
+REST -> ACM_Runtime: Order Participant Information
+ACM_Runtime -> Participants: Issue immediate Heartbeat Report\n(See §1.3)
+REST <- ACM_Runtime: Participant Information Ordered
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/GetParticipantInformation.puml b/docs/clamp/acm/plantuml/states/GetParticipantInformation.puml
new file mode 100644
index 00000000..b7e288bd
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/GetParticipantInformation.puml
@@ -0,0 +1,11 @@
+@startuml
+
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Get Participant Information
+ACM_Runtime -> ACM_Database: Read Participant Data
+REST <- ACM_Runtime: Return Participant Information including\nsupported AC Element Types,\nAC Element Instances and their states\nand Heartbeat Information
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/ParticipantStates.puml b/docs/clamp/acm/plantuml/states/ParticipantStates.puml
new file mode 100644
index 00000000..6bb77686
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/ParticipantStates.puml
@@ -0,0 +1,10 @@
+@startuml
+
+[*] --> ONLINE: Register
+ONLINE --> ONLINE: Heartbeat
+ONLINE --> OFFLINE: Timeout
+OFFLINE --> ONLINE: Heartbeat
+ONLINE --> [*]: Deregister
+OFFLINE --> [*]: Deregister
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/RegisterParticipant.puml b/docs/clamp/acm/plantuml/states/RegisterParticipant.puml
new file mode 100644
index 00000000..0cf091c0
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/RegisterParticipant.puml
@@ -0,0 +1,16 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+Participant -> ACM_Runtime: [ASYNC] Register
+ACM_Runtime -> ACM_Database: Create or Update Participant Registration\nand store supported ACM element types
+ACM_Runtime -> ACM_Database: Set Participant State as ONLINE
+Participant <- ACM_Runtime: Registration Accepted
+
+ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as ONLINE
+activate ACM_Runtime
+deactivate ACM_Runtime
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/SuperviseParticipantsStatusUpdate.puml b/docs/clamp/acm/plantuml/states/SuperviseParticipantsStatusUpdate.puml
new file mode 100644
index 00000000..e5748e86
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/SuperviseParticipantsStatusUpdate.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+loop Every Participant Supervision Interval
+ Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant
+ ACM_Runtime -> ACM_Database: Update Participant Heartbeat data
+ ACM_Runtime -> ACM_Database: Set Participant State as ONLINE
+
+ loop Every AC Element Instance in Heartbeat Message
+ ACM_Runtime -> ACM_Database: Mark AC Element Instance as ONLINE\nand Update AC Element Instance status
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/states/SuperviseParticipantsTimeout.puml b/docs/clamp/acm/plantuml/states/SuperviseParticipantsTimeout.puml
new file mode 100644
index 00000000..89a7d16a
--- /dev/null
+++ b/docs/clamp/acm/plantuml/states/SuperviseParticipantsTimeout.puml
@@ -0,0 +1,18 @@
+@startuml
+
+participant ACM_Runtime
+database ACM_Database
+
+loop Every ACM_Runtime Supervision Interval
+ loop Over all Participants
+ ACM_Runtime -> Database: Read Participant Heartbeat Information
+ alt Participant Heartbeat not received in Timeout Interval
+ ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE
+ ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE
+ activate ACM_Runtime
+ deactivate ACM_Runtime
+ end
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/CommissionAcTypeSDC.puml b/docs/clamp/acm/plantuml/system-dialogues/CommissionAcTypeSDC.puml
new file mode 100644
index 00000000..c789598d
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/CommissionAcTypeSDC.puml
@@ -0,0 +1,11 @@
+@startuml
+participant SDC
+participant Policy_Distribution
+participant ACM_Runtime
+
+SDC -> Policy_Distribution: [ASYNC] CSAR containing Automation Composition Type Definition
+Policy_Distribution -> ACM_Runtime: Commission Automation Composition Type\n(See Commissioning Sequence Diagram)
+Policy_Distribution <- ACM_Runtime: Result of Commissioning
+Policy_Distribution -> SDC: [ASYNC] Return result of Deployment
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/CommissionUpdateAcType.puml b/docs/clamp/acm/plantuml/system-dialogues/CommissionUpdateAcType.puml
new file mode 100644
index 00000000..014b76c8
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/CommissionUpdateAcType.puml
@@ -0,0 +1,15 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Commission Automation Composition Type
+alt Automation Composition Type exists and has Instances
+ ACM_Runtime -> REST: Automation Composition Type Commissioning Failed
+else
+ ACM_Runtime -> ACM_Database: Create and Store Automation Composition Type
+ ACM_Runtime -> ACM_Database: Set Automation Composition Type State to COMMISSIONED
+ ACM_Runtime -> REST: Automation Composition Type Commissioned
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/CreateAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/CreateAcInstance.puml
new file mode 100644
index 00000000..e2864b0a
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/CreateAcInstance.puml
@@ -0,0 +1,30 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Create Automation Composition Instance for\nspecified Automation Composition Type with\nspecified parameter values
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance is not in state UNDEPLOYED
+ ACM_Runtime -> REST: Automation Composition instance exists and is already deployed
+ else
+ note right of REST
+ Updates on "Not In Service" Automation Composition Instances are allowed
+ end note
+ end
+end
+
+alt Specified Automation Composition Type Exists
+ alt Specified Automation Composition Type is in state PRIMED
+ ACM_Runtime -> ACM_Database: Store Automation Composition Instance
+ ACM_Runtime -> ACM_Database: Set Automation Composition Instance State to UNDEPLOYED
+ ACM_Runtime -> REST: Automation Composition Instance Created
+ else
+ ACM_Runtime -> REST: Automation Composition Type is not in state PRIMED
+ end
+else
+ ACM_Runtime -> REST: Automation Composition Type is not found
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DecommissionAcType.puml b/docs/clamp/acm/plantuml/system-dialogues/DecommissionAcType.puml
new file mode 100644
index 00000000..a9c29b99
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DecommissionAcType.puml
@@ -0,0 +1,14 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Decommission Automation Composition Type
+alt Automation Composition Type is not in state COMMISSIONED
+ ACM_Runtime -> REST: Automation Composition Type Decommissioning Failed
+else
+ ACM_Runtime -> ACM_Database: Delete Automation Composition Type
+ ACM_Runtime -> REST: Automation Composition Type Decommissioned
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeleteAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/DeleteAcInstance.puml
new file mode 100644
index 00000000..50231ecf
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeleteAcInstance.puml
@@ -0,0 +1,19 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Delete Automation Composition Instance
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance is not in state UNDEPLOYED
+ ACM_Runtime -> REST: Automation Composition instance exists and is deployed
+ else
+ ACM_Runtime -> REST: Automation Composition instance does not exist
+ end
+else
+ ACM_Runtime -> ACM_Database: Delete Automation Composition Instance
+ ACM_Runtime -> REST: Automation Composition Instance Deleted
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstance.puml
new file mode 100644
index 00000000..21c61394
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstance.puml
@@ -0,0 +1,22 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participants
+database ACM_Database
+
+REST -> ACM_Runtime: Deploy Automation Composition Instance
+ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance is deployed
+ ACM_Runtime -> REST: Automation Composition instance is already deployed
+ else
+ ACM_Runtime -> Participants: [ASYNC] Deploy AC Element Instances for this AC Instance
+ ACM_Runtime -> ACM_Database: Set AC Instance and its AC Element Instances to state DEPLOYING
+ ACM_Runtime -> REST: Deployment of Automation Composition Instance has been requested
+ end
+else
+ ACM_Runtime -> REST: Automation Composition instance does not exist
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstanceElements.puml
new file mode 100644
index 00000000..ab0f7755
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeployAcInstanceElements.puml
@@ -0,0 +1,31 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+participant Participant_API
+
+ACM_Runtime -> Participant: [ASYNC] Deploy AC Element Instances for this AC Instance
+
+loop over AC Element Instances in AC Instance
+ alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID?
+ alt Is this AC Element Instance already deployed
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element is already deployed
+ else
+ Participant -> Participant_API: Deploy AC Element Instance
+ activate Participant_API
+ Participant <- Participant_API: AC Element Instance Deploy Response
+ deactivate Participant_API
+ alt AC Element deployed successfully
+ Participant -> Participant: Set AC Element Instance administrative state to LOCKED
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element has been deployed
+ else
+ ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element was not deployed
+ end
+ end
+ else
+ note left of Participant
+ Ignore this AC Element instance as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml
new file mode 100644
index 00000000..939f87ce
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeployResponseStored.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Deploy Automation Composition Element Instance Response
+ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information
+
+alt Is AC Element Instance Deployed?
+ ACM_Runtime -> ACM_Database: Set AC Element Instance State as DEPLOYED
+ alt Are all the other AC Element Instances in this AC Instance in state DEPLOYED?
+ ACM_Runtime -> ACM_Runtime: Set AC Instance state as DEPLOYED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeprimeElements.puml b/docs/clamp/acm/plantuml/system-dialogues/DeprimeElements.puml
new file mode 100644
index 00000000..274b30ce
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeprimeElements.puml
@@ -0,0 +1,27 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+
+ACM_Runtime -> Participant: [ASYNC] Deprime AC Element Types for this AC Type
+
+loop over AC Element Types in AC Type
+ alt Does the deprimed Participant ID on this AC Element Type\nmatch my Participant ID
+ alt Does this AC Element Type Exist
+ Participant -> Participant: Delete AC Element Type
+ activate Participant
+ deactivate Participant
+ note left of Participant
+ Deletion of an AC Element Type always returns success
+ end note
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element successfully primed
+ else
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element Type is already deprimed
+ end
+ else
+ note left of Participant
+ ignore this AC Element Type as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeprimeOnParticipants.puml b/docs/clamp/acm/plantuml/system-dialogues/DeprimeOnParticipants.puml
new file mode 100644
index 00000000..07d5e934
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeprimeOnParticipants.puml
@@ -0,0 +1,21 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+alt Automation Composition Type has Instances
+ REST <- ACM_Runtime: Depriming of Automation Composition Type Failed
+else AC Type State is PRIMED or PRIMING
+ REST -> ACM_Runtime: Deprime Automation Composition Type
+
+ ACM_Runtime -> ACM_Database: Read Automation Composition Type
+ ACM_Runtime -> Participant: [ASYNC] Send Depriming Request to all Participants\nwith Automation Composition Type Definition
+ ACM_Runtime -> ACM_Database: Set Automation Composition Type State to DEPRIMING
+
+ REST <- ACM_Runtime: Depriming of Automation Composition Type Ordered
+else
+ REST <- ACM_Runtime: Depriming of Automation Composition Type Failed, invalid state
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml b/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml
new file mode 100644
index 00000000..061dbea1
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/DeregisterParticipant.puml
@@ -0,0 +1,20 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+Participant -> Participant: Uninitialize all ACM Element Instances running on Participant\n(See Instantiation Dialogues)
+activate Participant
+deactivate Participant
+
+Participant -> ACM_Runtime: [ASYNC] Deregister
+ACM_Runtime -> ACM_Database: Delete Participant Registration
+ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE
+Participant <- ACM_Runtime: [ASYNC] Deregistration Accepted
+
+ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE
+activate ACM_Runtime
+deactivate ACM_Runtime
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/FullParticipantReport.puml b/docs/clamp/acm/plantuml/system-dialogues/FullParticipantReport.puml
new file mode 100644
index 00000000..50943c8b
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/FullParticipantReport.puml
@@ -0,0 +1,11 @@
+@startuml
+
+participant REST
+participant ACM_Runtime
+participant Participants
+
+REST -> ACM_Runtime: Order Participant Information
+ACM_Runtime -> Participants: Issue immediate Heartbeat Report\n(See §1.3)
+REST <- ACM_Runtime: Participant Information Ordered
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/GetAcTypes.puml b/docs/clamp/acm/plantuml/system-dialogues/GetAcTypes.puml
new file mode 100644
index 00000000..ced33f7e
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/GetAcTypes.puml
@@ -0,0 +1,10 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Get Automation Composition Type Information
+ACM_Runtime -> ACM_Database: Read Automation Composition Type Information
+ACM_Runtime -> REST: Respond with Automation Composition Type information\nincluding ACM Element Type information and Priming Status
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/GetParticipantInformation.puml b/docs/clamp/acm/plantuml/system-dialogues/GetParticipantInformation.puml
new file mode 100644
index 00000000..b7e288bd
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/GetParticipantInformation.puml
@@ -0,0 +1,11 @@
+@startuml
+
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Get Participant Information
+ACM_Runtime -> ACM_Database: Read Participant Data
+REST <- ACM_Runtime: Return Participant Information including\nsupported AC Element Types,\nAC Element Instances and their states\nand Heartbeat Information
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/LockAcInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/LockAcInstance.puml
new file mode 100644
index 00000000..a742cbb5
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/LockAcInstance.puml
@@ -0,0 +1,22 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participants
+database ACM_Database
+
+REST -> ACM_Runtime: Lock Automation Composition Instance
+ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance administrative state is UNLOCKED
+ ACM_Runtime -> Participants: [ASYNC] Lock AC Element Instances for this AC Instance
+ ACM_Runtime -> ACM_Database: Mark AC Instance and its AC Element Instances as Locking
+ ACM_Runtime -> REST: Locking of Automation Composition Instance has been requested
+ else
+ ACM_Runtime -> REST: Automation Composition instance is not unlocked
+ end
+else
+ ACM_Runtime -> REST: Automation Composition instance does not exist
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/LockAcInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/LockAcInstanceElements.puml
new file mode 100644
index 00000000..4fbb9335
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/LockAcInstanceElements.puml
@@ -0,0 +1,32 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+participant Participant_API
+
+ACM_Runtime -> Participant: [ASYNC] Lock AC Element Instances for this AC Instance
+
+loop over AC Element Instances in AC Instance
+ alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID?
+ alt Is this AC Element Instance administrative state not UNLOCKED
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element is not UNLOCKED
+ else
+ Participant -> Participant: Set AC Element Instance administrative state to SHUTTING_DOWN
+ Participant -> Participant_API: Lock AC Element Instance
+ activate Participant_API
+ Participant <- Participant_API: Lock AC Element Instance Response
+ deactivate Participant_API
+ alt AC Element locked successfully
+ Participant -> Participant: Set AC Element Instance administrative state to LOCKED
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element has been locked
+ else
+ ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element was not locked
+ end
+ end
+ else
+ note left of participant
+ Ignore this AC Element instance as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml
new file mode 100644
index 00000000..0ffc51a6
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/LockResponseStored.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Lock Automation Composition Element Instance Response
+ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information
+
+alt Is AC Element Instance Locked?
+ ACM_Runtime -> ACM_Database: Set AC Element Instance administrative state as LOCKED
+ alt Have all the other AC Element Instances in this AC Instance been LOCKED?
+ ACM_Runtime -> ACM_Runtime: Set AC Instance administrative state as LOCKED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/OrderInstanceUnlock.puml b/docs/clamp/acm/plantuml/system-dialogues/OrderInstanceUnlock.puml
new file mode 100644
index 00000000..9075bbab
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/OrderInstanceUnlock.puml
@@ -0,0 +1,22 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participants
+database ACM_Database
+
+REST -> ACM_Runtime: Unlock Automation Composition Instance
+ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance administrative state is LOCKED
+ ACM_Runtime -> Participants: [ASYNC] Unlock AC Element Instances for this AC Instance
+ ACM_Runtime -> ACM_Database: Mark AC Instance and its AC Element Instances as Unlocking
+ ACM_Runtime -> REST: Unlocking of Automation Composition Instance has been requested
+ else
+ ACM_Runtime -> REST: Automation Composition instance is not locked
+ end
+else
+ ACM_Runtime -> REST: Automation Composition instance does not exist
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeMultiplePpnts.puml b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeMultiplePpnts.puml
new file mode 100644
index 00000000..6f091f65
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeMultiplePpnts.puml
@@ -0,0 +1,28 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+
+ACM_Runtime -> Participant: [ASYNC] Prime AC Element Types for this AC Type
+
+loop over AC Element Types in AC Type
+ alt Does the primed Participant ID on this AC Element Type\nmatch my Participant ID
+ alt Does this AC Element Type already exist
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element Type already exists
+ else
+ Participant -> Participant: Create AC Element Type
+ activate Participant
+ deactivate Participant
+ alt AC Element successfully created
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element successfully primed
+ else
+ ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element priming failed
+ end
+ end
+ else
+ note left of participant
+ ignore this AC Element Type as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml
new file mode 100644
index 00000000..0c36a18c
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/PrimeAcTypeOnPpnts.puml
@@ -0,0 +1,28 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+alt Automation Composition Type has Deployed Instances
+ REST <- ACM_Runtime: Priming of Automation Composition Type Failed, instances deployed
+else Automation Composition Type is in state COMMISSIONED or PRIMED
+ REST -> ACM_Runtime: Prime Automation Composition Type
+
+ ACM_Runtime -> ACM_Database: Read Automation Composition Type
+ ACM_Runtime -> ACM_Database: Read Participants
+ ACM_Runtime -> ACM_Runtime: Set suitable participant ID on each AC Element Type
+
+ alt Was a sutable participant ID found for each AC Element Type?
+ ACM_Runtime -> Participant: [ASYNC] Send Priming Request to all Participants\nwith Automation Composition Type Definition
+ ACM_Runtime -> ACM_Database: Set Automation Composition Type State to PRIMING
+
+ REST <- ACM_Runtime: Priming of Automation Composition Type Ordered
+ else
+ REST <- ACM_Runtime: Priming of Automation Composition Type Faield, no sutiable participant found
+ end
+else
+ REST <- ACM_Runtime: Priming of Automation Composition Type Failed, invalid state
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml b/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml
new file mode 100644
index 00000000..4a9f7d17
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/PrimeInfoUpdatedInDb.puml
@@ -0,0 +1,15 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Result of Priming of AC Element Type
+ACM_Runtime -> ACM_Database: Record result of AC Element Type Priming
+
+alt Is AC Element Type Primed?
+ alt Have all the other AC Element Types in this AC Type been Primed?
+ ACM_Runtime -> ACM_Runtime: Set AC Type state as PRIMED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/ReadAcInstances.puml b/docs/clamp/acm/plantuml/system-dialogues/ReadAcInstances.puml
new file mode 100644
index 00000000..3e188f10
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/ReadAcInstances.puml
@@ -0,0 +1,10 @@
+@startuml
+participant REST
+participant ACM_Runtime
+database ACM_Database
+
+REST -> ACM_Runtime: Get Automation Composition Instance Information
+ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information
+ACM_Runtime -> REST: Respond with Automation Composition Instance information\nincluding ACM Element Instance information\nand admin, operational, and usage state
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml b/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml
new file mode 100644
index 00000000..0cf091c0
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/RegisterParticipant.puml
@@ -0,0 +1,16 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+Participant -> ACM_Runtime: [ASYNC] Register
+ACM_Runtime -> ACM_Database: Create or Update Participant Registration\nand store supported ACM element types
+ACM_Runtime -> ACM_Database: Set Participant State as ONLINE
+Participant <- ACM_Runtime: Registration Accepted
+
+ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as ONLINE
+activate ACM_Runtime
+deactivate ACM_Runtime
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml
new file mode 100644
index 00000000..e5748e86
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsStatusUpdate.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant Participant
+participant ACM_Runtime
+database ACM_Database
+
+loop Every Participant Supervision Interval
+ Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant
+ ACM_Runtime -> ACM_Database: Update Participant Heartbeat data
+ ACM_Runtime -> ACM_Database: Set Participant State as ONLINE
+
+ loop Every AC Element Instance in Heartbeat Message
+ ACM_Runtime -> ACM_Database: Mark AC Element Instance as ONLINE\nand Update AC Element Instance status
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml
new file mode 100644
index 00000000..89a7d16a
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/SuperviseParticipantsTimeout.puml
@@ -0,0 +1,18 @@
+@startuml
+
+participant ACM_Runtime
+database ACM_Database
+
+loop Every ACM_Runtime Supervision Interval
+ loop Over all Participants
+ ACM_Runtime -> Database: Read Participant Heartbeat Information
+ alt Participant Heartbeat not received in Timeout Interval
+ ACM_Runtime -> ACM_Database: Set Participant State as OFFLINE
+ ACM_Runtime -> ACM_Runtime: Mark all ACM Element Instances\nrunning on Participant as OFFLINE
+ activate ACM_Runtime
+ deactivate ACM_Runtime
+ end
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UndeployInstance.puml b/docs/clamp/acm/plantuml/system-dialogues/UndeployInstance.puml
new file mode 100644
index 00000000..0066c69c
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UndeployInstance.puml
@@ -0,0 +1,22 @@
+@startuml
+participant REST
+participant ACM_Runtime
+participant Participants
+database ACM_Database
+
+REST -> ACM_Runtime: Undeploy Automation Composition Instance
+ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information
+
+alt Automation Composition Instance exists
+ alt Automation Composition Instance administrative state is not LOCKED
+ ACM_Runtime -> REST: Automation Composition instance exists and is not LOCKED
+ else
+ ACM_Runtime -> REST: Automation Composition instance does not exist
+ end
+else
+ ACM_Runtime -> Participants: [ASYNC] Undeploy AC Element Instances for this AC Instance
+ ACM_Runtime -> ACM_Database: Mark this AC Instance and its AC Element Instances as UNDEPLOYING
+ ACM_Runtime -> REST: Undeployment of Automation Composition Instance has been requested
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UndeployInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/UndeployInstanceElements.puml
new file mode 100644
index 00000000..43fa1bef
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UndeployInstanceElements.puml
@@ -0,0 +1,31 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+participant Participant_API
+
+ACM_Runtime -> Participant: [ASYNC] Undeploy AC Element Instances for this AC Instance
+
+loop over AC Element Instances in AC Instance
+ alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID?
+ alt Does this AC Element Instance exist?
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element does not exist
+ else Is this administrative state of this AC Element Instance LOCKED
+ Participant -> Participant_API: Undeploy AC Element Instance
+ activate Participant_API
+ Participant <- Participant_API: Undeploy AC Element Instance Response
+ deactivate Participant_API
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element undeployed successfully
+ note left of Participant
+ Undeploy always returns success
+ end note
+ else
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element is already undeployed
+ end
+ else
+ note left of Participant
+ Ignore this AC Element instance as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml
new file mode 100644
index 00000000..e44183d4
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UndeployResponseStored.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Undeploy Automation Composition Element Instance Response
+ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information
+
+alt Is AC Element Instance undeployed?
+ ACM_Runtime -> ACM_Database: Mark AC Element Instance as UNDEPLOYED
+ alt Are all the other AC Element Instances in this AC Instance in state UNDEPLOYED?
+ ACM_Runtime -> ACM_Runtime: Set AC Instance state as UNDEPLOYED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UnlockInstanceElements.puml b/docs/clamp/acm/plantuml/system-dialogues/UnlockInstanceElements.puml
new file mode 100644
index 00000000..fdcdc912
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UnlockInstanceElements.puml
@@ -0,0 +1,31 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+participant Participant_API
+
+ACM_Runtime -> Participant: [ASYNC] Unlock AC Element Instances for this AC Instance
+
+loop over AC Element Instances in AC Instance
+ alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID?
+ alt Is this AC Element Instance administrative state not LOCKED
+ ACM_Runtime <- Participant: [ASYNC] WARN: AC Element is not LOCKED
+ else
+ Participant -> Participant_API: Unlock AC Element Instance
+ activate Participant_API
+ Participant <- Participant_API: Unlock AC Element Instance Response
+ deactivate Participant_API
+ alt AC Element unlocked successfully
+ Participant -> Participant: Set AC Element Instance administrative state to UNLOCKED
+ ACM_Runtime <- Participant: [ASYNC] INFO: AC Element has been unlocked
+ else
+ ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element was not unlocked
+ end
+ end
+ else
+ note left of participant
+ Ignore this AC Element instance as its for another participant
+ end note
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml b/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml
new file mode 100644
index 00000000..44e7e906
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UnlockResponseStored.puml
@@ -0,0 +1,17 @@
+@startuml
+
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Unlock Automation Composition Element Instance Response
+ACM_Runtime -> ACM_Database: Store Automation Composition Element Instance Response Information
+
+alt Is AC Element Instance Unlocked?
+ ACM_Runtime -> ACM_Database: Set AC Element Instance administrative state as UNLOCKED
+ alt Have all the other AC Element Instances in this AC Instance been UNLOCKED?
+ ACM_Runtime -> ACM_Runtime: Set AC Instance administrative state as UNLOCKED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml
new file mode 100644
index 00000000..b52dc817
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateDeprimeInDb.puml
@@ -0,0 +1,15 @@
+@startuml
+participant ACM_Runtime
+participant Participant
+database ACM_Database
+
+ACM_Runtime <- Participant: [ASYNC] Result of Depriming of AC Element Type
+ACM_Runtime -> ACM_Database: Record result of AC Element Type Depriming
+
+alt Is AC Element Type Deprimed?
+ alt Have all the other AC Element Types in this AC Type been Deprimed?
+ ACM_Runtime -> ACM_Runtime: Set AC Type state as COMMISSIONED
+ end
+end
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml
new file mode 100644
index 00000000..538242ae
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateOperationalState.puml
@@ -0,0 +1,16 @@
+@startuml
+participant Participant_API
+participant Participant
+participant ACM_Runtime
+
+Participant_API -> Participant_API: Perform Operation that Updates Operational State
+activate Participant_API
+deactivate Participant_API
+
+Participant_API -> Participant: Operational State has been updated
+Participant -> Participant: Update Operational State in ACM Element Instance
+
+== Periodically with Heartbeat ==
+Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant
+
+@enduml
diff --git a/docs/clamp/acm/plantuml/system-dialogues/UpdateUsageState.puml b/docs/clamp/acm/plantuml/system-dialogues/UpdateUsageState.puml
new file mode 100644
index 00000000..b8f922d5
--- /dev/null
+++ b/docs/clamp/acm/plantuml/system-dialogues/UpdateUsageState.puml
@@ -0,0 +1,16 @@
+@startuml
+participant Participant_API
+participant Participant
+participant ACM_Runtime
+
+Participant_API -> Participant_API: Perform Operation that Updates Usage State
+activate Participant_API
+deactivate Participant_API
+
+Participant_API -> Participant: Usage State has been updated
+Participant -> Participant: Update Usage State in ACM Element Instance
+
+== Periodically with Heartbeat ==
+Participant -> ACM_Runtime: [ASYNC] Heartbeat message including\nstatus and states of AC Element Instances on Participant
+
+@enduml