@startuml img/FileName_1.png
participant Alice
participant Bob
noe left of Alice #aqua 
	This is displayed 
	left of Alice. 
	end
en note 
 
note right of Alice: This is displayed right of Alice.

note over Alice: This is displayed over Alice.

note over Alice, Bob #FFAAAA: This is displayed\n over Bob and Alice.

note over Bob, Alice
	This is yet another
	example of
	a long note.
end note
@enduml






@startuml

' =======================================================
'            M A C R O
' =======================================================

!include List.iuml

!define module(x) component x <<module>>
module(ABC)
module(XYZ)
!ifdef XXX
	!define DOUBLE(x) x x
	!definelong AUTHEN(x,y)
		x -> y : DOUBLE(hello)
		y -> x : ok
	!enddefinelong
!endif

AUTHEN(Bob,Alice)


' =======================================================
'            E R R O R   A R R O W
' =======================================================
[[#green]-> Alice
[#green]-> Alice
-> Alice
...
Bob <-[#green]]
Bob <-[#green]
Bob <-

Bob <> Alice



Bob [[#green]-> Alice
Bob [#green]-> Alice
Bob <-[#green] Alice
Bob < -Alice : MSG
Bob - > Alice : MSG
Bob -- > Alice : MSG
[ -> Alice : MSG
Bob -> o Alice : MSG
Bob - ->o Alice : MSG

' =======================================================
'            R I G H T   A R R O W
' =======================================================
== RIGHT ARROW ( 2 ACTORS) ==
Bob -> Alice
Bob --> Alice
Bob -// Alice
Bob --// Alice
Bob -\\ Alice
Bob --\\ Alice
...
Bob -[#green]> Alice
Bob -[#green]-> Alice
Bob --[#green]> Alice
Bob -[#green]// Alice
Bob -[#green]-// Alice
Bob --[#green]// Alice
Bob -[#green]\\ Alice
Bob -[#green]-\\ Alice
Bob --[#green]\\ Alice
...
Bob ->x Alice
Bob -->x Alice
Bob -//x Alice
Bob --//x Alice
Bob -\\x Alice
Bob --\\x Alice
...
Bob o-> Alice
Bob o--> Alice
Bob o-// Alice
Bob o--// Alice
Bob o-\\ Alice
Bob o--\\ Alice
...
Bob o->o Alice
Bob o-->o Alice
Bob o-//o Alice
Bob o--//o Alice
Bob o-\\o Alice
Bob o--\\o Alice

== RIGHT ARROW  ( 1 ACTOR : right) ==

[-> Alice
[--> Alice
[-// Alice
[--// Alice
[-\\ Alice
[--\\ Alice
...
[-[#green]> Alice
[-[#green]-> Alice
[--[#green]> Alice
[-[#green]// Alice
[-[#green]-// Alice
[--[#green]// Alice
[-[#green]\\ Alice
[-[#green]-\\ Alice
[--[#green]\\ Alice
...
[->x Alice
[-->x Alice
[-//x Alice
[--//x Alice
[-\\x Alice
[--\\x Alice
...
[o-> Alice
[o--> Alice
[o-// Alice
[o--// Alice
[o-\\ Alice
[o--\\ Alice
...
[o->o Alice
[o-->o Alice
[o-//o Alice
[o--//o Alice
[o-\\o Alice
[o--\\o Alice
...

== RIGHT ARROW  ( 1 ACTOR : left) ==
Bob ->]
Bob -->]
Bob -//]
Bob --//]
Bob -\\]
Bob --\\]
...
Bob -[#green]>]
Bob -[#green]->]
Bob --[#green]>]
Bob -[#green]//]
Bob -[#green]-//]
Bob --[#green]//]
Bob -[#green]\\]
Bob -[#green]-\\]
Bob --[#green]\\]
...
Bob ->x]
Bob -->x]
Bob -//x]
Bob --//x]
Bob -\\x]
Bob --\\x]
...
Bob o->]
Bob o-->]
Bob o-//]
Bob o--//]
Bob o-\\]
Bob o--\\]
...
Bob o->o]
Bob o-->o]
Bob o-//o]
Bob o--//o]
Bob o-\\o]
Bob o--\\o]



' =======================================================
'            L E F T   A R R O W
' =======================================================

== LEFT ARROW  (2 ACTORS) ==
Bob <- Alice
Bob <-- Alice
Bob <<- Alice
Bob <<-- Alice
Bob \\- Alice
Bob //-- Alice
Bob \\- Alice
Bob \\-- Alice
...
Bob <[#green]- Alice
Bob <<[#green]-- Alice
Bob <<-[#green]- Alice
Bob //[#green]- Alice
Bob //[#green]-- Alice
Bob //-[#green]- Alice
Bob \\[#green]- Alice
Bob \\[#green]-- Alice
Bob \\-[#green]- Alice
...
Bob x<- Alice
Bob x<<-- Alice
Bob x\\- Alice
Bob x//-- Alice
Bob x\\- Alice
...
Bob o<- Alice
Bob o<<-- Alice
Bob o\\- Alice
Bob o//-- Alice
Bob o\\- Alice
...
Bob o<-o Alice
Bob o<<--o Alice
Bob o\\-o Alice
Bob o//--o Alice
Bob o\\-o Alice


== LEFT ARROW  ( 1 ACTOR : left) ==
Bob <-]
Bob <<--]
Bob \\-]
Bob //--]
Bob \\-]
...
Bob <[#red]-]
Bob <<[#red]--]
Bob <<-[#red]-]
Bob \\[#red]-]
Bob //[#red]--]
Bob //-[#red]-]
Bob \\[#red]-]
...
Bob x<-]
Bob x<<--]
Bob x\\-]
Bob x//--]
Bob x\\-]
...
Bob o<-]
Bob o<<--]
Bob o\\-]
Bob o//--]
Bob o\\-]
...
Bob o<-o]
Bob o<<--o]
Bob o\\-o]
Bob o//--o]
Bob o\\-o]


== LEFT ARROW  ( 1 ACTOR : right) ==

[<- Alice
[<<-- Alice
[\\- Alice
[//-- Alice
[\\- Alice
...
[<[#red]- Alice
[<<[#red]-- Alice
[<<-[#red]- Alice
[\\[#red]- Alice
[//[#red]-- Alice
[//-[#red]- Alice
[\\[#red]- Alice
...
[x<- Alice
[x<<-- Alice
[x\\- Alice
[x//-- Alice
[x\\- Alice
...
[o<- Alice
[o<<-- Alice
[o\\- Alice
[o//-- Alice
[o\\- Alice
...
[o<-o Alice
[o<<--o Alice
[o\\-o Alice
[o//--o Alice
[o\\-o Alice

' =======================================================
'            B I D I R   A R R O W
' =======================================================
Bob <-> Alice
Bob <->> Alice
Bob <->>o Alice
Bob o<->>o Alice


Bob <-> Alice
Bob <--> Alice
Bob <<->> Alice
Bob <<-->> Alice
Bob //-// Alice
Bob //--// Alice
Bob \\-\\ Alice
Bob \\--\\ Alice
...
Bob <[#green]-> Alice
Bob <-[#green]> Alice
...
Bob <<[#green]--> Alice
Bob <<-[#green]-> Alice
Bob <<--[#green]> Alice
...
Bob //[#green]-> Alice
Bob //-[#green]> Alice
...
Bob //[#green]--> Alice
Bob //-[#green]-> Alice
Bob //--[#green]> Alice
...
Bob \\-[#green]> Alice
Bob \\[#green]-> Alice
...
Bob \\[#green]--> Alice
Bob \\-[#green]-> Alice
Bob \\--[#green]> Alice
...
Bob x<-> Alice
Bob x<--> Alice
Bob x<<-> Alice
Bob x<<--> Alice
Bob x\\-> Alice
Bob x\\--> Alice
Bob x//-> Alice
Bob x//--> Alice
Bob x\\-> Alice
Bob x\\--> Alice
...
Bob o<-> Alice
Bob o<<--> Alice
Bob o\\-> Alice
Bob o//--> Alice
Bob o\\-> Alice
...
Bob o<->o Alice
Bob o<<-->o Alice
Bob o\\->o Alice
Bob o//-->o Alice
Bob o\\->o Alice

' =======================================================
'     A R R O W        M E S S A G E S
' =======================================================
== ARROW  MESSAGES ==

Bob ->o Alice : my message
Bob o\\-- Alice  : my multiline message \n line 2 \ line 3
@enduml


@startuml
Alice -> Bob: Authentication Request

alt successful case

	Bob -> Alice: Authentication Accepted
	
else some kind of failure

	Bob -> Alice: Authentication Failure
	group My own label
		Alice -> Log : Log attack start
	    loop 1000 times
	        Alice -> Bob: DNS Attack
	    end
		Alice -> Log : Log attack end
	end
	
else Another type of failure

   Bob -> Alice: Please repeat
   
end
@enduml


@startuml
Alice->Bob : hello
note left: this is a first note

Bob->Alice : ok
note right: this is another note

Bob->Bob : I am thinking
note left
	a note
	can also be defined
	on several lines
end note
@enduml


@startuml
participant Alice
participant Bob
note left of Alice #aqua 
	This is displayed 
	left of Alice. 
	end
end note 
 
note right of Alice: This is displayed right of Alice.

note over Alice: This is displayed over Alice.

note over Alice, Bob #FFAAAA: This is displayed\n over Bob and Alice.

note over Bob, Alice
	This is yet another
	example of
	a long note.
end note
@enduml



@startuml
participant Alice
participant "The **Famous** Bob" as Bob

Alice -> Bob : hello --there--
... Some ~~long delay~~ ...
Bob -> Alice : ok
note left
  This is **bold**
  This is //italics//
  This is ""monospaced""
  This is --stroked--
  This is __underlined__
  This is ~~waved~~
end note

Alice -> Bob : A //well formatted// message
note right of Alice 
 This is <back:cadetblue><size:18>displayed</size></back> 
 __left of__ Alice. 
end note
note left of Bob 
 <u:red>This</u> is <color #118888>displayed</color> 
 **<color purple>left of</color> <s:red>Alice</strike> Bob**. 
end note
note over Alice, Bob
 <w:#FF33FF>This is hosted</w> by <img sourceforge.jpg>
end note 
@enduml


@startuml
participant User

User -> A: DoWork
activate A #FFBBBB

A -> A: Internal call
activate A #DarkSalmon

A -> B: << createRequest >>
activate B

B --> A: RequestCreated
deactivate B
deactivate A
A -> User: Done
deactivate A

@enduml



@startuml

box "Internal Service" #LightBlue
	participant Bob
	participant Alice
end box
participant Other

Bob -> Alice : hello
Alice -> Other : hello

@enduml

@startuml
participant Last order 30
participant Middle order 20
participant First order 10
@enduml

@startuml
Alice -> "Bob()" : Hello
"Bob()" -> "This is very\nlong" as Long
' You can also declare:
' "Bob()" -> Long as "This is very\nlong"
Long --> "Bob()" : ok
@enduml


@startuml
autonumber
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response

autonumber 15
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response

autonumber 40 10
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response

autonumber "<b>[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response

autonumber 15 "<b>(<u>##</u>)"
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response

autonumber 40 10 "<font color=red><b>Message 0  "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response

autonumber 10 10 "<b>[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response

autonumber stop
Bob -> Alice : dummy

autonumber resume "<font color=red><b>Message 0  "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response

autonumber stop
Bob -> Alice : dummy

autonumber resume 1 "<font color=blue><b>Message 0  "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response

newpage

Alice -> Bob : message 3
Alice -> Bob : message 4

newpage A title for the\nlast page

@enduml


@startuml
caller -> server : conReq
hnote over caller : idle
caller <- server : conConf
rnote over server
 "r" as rectangle
 "h" as hexagon
endrnote
@enduml

@startuml

== Initialization ==

Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

== Repetition ==

Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

@startuml
participant Alice
actor Bob

ref over Alice, Bob : init
Alice -> Bob : hello
ref over Bob
  This can be on
  several lines
end ref
@enduml

@startuml
Alice -> Bob: Authentication Request
...
Bob --> Alice: Authentication Response
...5 minutes later...
Bob --> Alice: Bye !
@enduml


@startuml
Alice -> Bob: message 1
Bob --> Alice: ok
|||
Alice -> Bob: message 2
Bob --> Alice: ok
||45||
Alice -> Bob: message 3
Bob --> Alice: ok
@enduml

@startuml
participant User

User -> A: DoWork
activate A #FFBBBB

A -> A: Internal call
activate A #DarkSalmon

A -> B: << createRequest >>
activate B

B --> A: RequestCreated
deactivate B
deactivate A
A -> User: Done
deactivate A
destroy C
@enduml


@startuml
Bob -> Alice : hello
create Other
Alice -> Other : new
create control String
Alice -> String
note right : You can also put notes!
Alice --> Bob : ok
@enduml

@startuml

' =======================================================
'            E Y E   C A N D Y
' =======================================================

skinparam sequenceArrowThickness 2
skinparam roundcorner 20
skinparam maxmessagesize 60
skinparam sequenceParticipant underline
skinparam backgroundColor #EEEBDC
skinparam handwritten true
skinparam ParticipantPadding 20
skinparam BoxPadding 10

skinparam sequence {
	ArrowColor DeepSkyBlue
	ActorBorderColor DeepSkyBlue
	LifeLineBorderColor blue
	LifeLineBackgroundColor #A9DCDF
	
	ParticipantBorderColor DeepSkyBlue
	ParticipantBackgroundColor DodgerBlue
	ParticipantFontName Impact
	ParticipantFontSize 17
	ParticipantFontColor #A9DCDF
	
	ActorBackgroundColor aqua
	ActorFontColor DeepSkyBlue
	ActorFontSize 17
	ActorFontName Aapex
}



scale 180*90

caption figure 1

header
<font color=red>Warning:</font>
Do not use in production.
endheader

center footer Generated for demonstration

legend right
  Short
  legend
endlegend

hide footbox
title __Simple__ **communication** example

title
 <u>Simple</u> communication example
 on <i>several</i> lines and using <font color=red>html</font>
 This is hosted by <img:sourceforge.jpg>
end title

participant "Famous Bob" as Bob << Generated >>
participant Alice << (C,#ADD1B2) Testable >>
Bob->Alice: First message
@enduml

