@startuml
skinparam monochrome true
skinparam state {
	hide empty description
}

state STARTED
state STOPPED
state STOPPING
state RESTARTING
state STARTING

[*] -down-> STARTED
STARTED -down-> STOPPING : STOP\n(Graceful)
STOPPING -down-> STOPPED : <i>Managed entity is</i>\n <i>discharged from</i>\n <i>service</i>
STARTED -down-> STOPPED : STOP\n(Forceful)
STARTED -down-> RESTARTING : RESTART
RESTARTING -up-> STARTED : <i>Managed entity is</i>\n <i>discharged from</i>\n <i>service and</i>\n <i>completes restart</i>\n <i>process</i>
STOPPED -up-> STARTING : START
STARTING -up-> STARTED : <i>Managed entity</i>\n <i>completes start</i>\n <i>process</i>
[*] -down-> STOPPED : <u>only for</u>\n <u>interfaces</u>

@enduml