aboutsummaryrefslogtreecommitdiffstats
path: root/docs/clamp/acm/plantuml
diff options
context:
space:
mode:
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