aboutsummaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/api_serviceOrder/api.plantuml
blob: 9464f56603782ebf28744bd9bbe06fc552a2da83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
#
#     Copyright (c) 2018 Orange
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.
#

@startuml

enum ActionType {
   add
   modify
   delete
   noChange
}
enum StateType {
   acknowledged
   rejected
   pending
   held
   inProgress
   cancelled
   completed
   failed
   partial
}
enum RelationshipType {
   reliesOn
}
enum EventType {
   ServiceOrderCreationNotification
   ServiceOrderStateChangeNotification
   ServiceOrderItemStateChangeNotification
}
enum SeverityMessage {
   information
   error
}

class Error {
   code:int
   reason:string
   message:string
   status:string
   referenceError:string
}

class ServiceRelationship
   ServiceRelationship --> "1-1" RelationshipType : type
   ServiceRelationship --> "1-1" Service : service

class ServiceRef {
   id:string
   href:string
}

class ServiceCharacteristic {
   name:string
   valueType:string
}
   ServiceCharacteristic --> "0-1" Value : value

class RelatedParty {
   id:string
   href:string
   role:string
   name:string
   @referredType:string
}

class ServiceSpecificationRef {
   id:string
   href:string
   name:string
   version:string
   @type:string
   @schemaLocation:string
   @baseType:string
}
   ServiceSpecificationRef --> "0-1" TargetServiceSchema : targetServiceSchema

class Service {
   id:string
   href:string
   name:string
   serviceState:string
   @type:string
   @schemaLocation:string
}
   Service --> "0-*" ServiceCharacteristic : serviceCharacteristic
   Service --> "0-*" ServiceRelationship : serviceRelationship
   Service --> "0-*" RelatedParty : relatedParty
   Service --> "0-1" ServiceSpecificationRef : serviceSpecification

class OrderItemRelationship {
   id:string
}
   OrderItemRelationship --> "1-1" RelationshipType : type

class ServiceOrderItem {
   id:string
   percentProgress:string
   @type:string
   @schemaLocation:string
   @baseType:string
}
   ServiceOrderItem --> "0-1" ActionType : action
   ServiceOrderItem --> "0-1" StateType : state
   ServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship
   ServiceOrderItem --> "1-1" Service : service
   ServiceOrderItem --> "0-*" OrderMessage : orderItemMessage

class ServiceOrder {
   id:string
   href:string
   externalId:string
   priority:string
   description:string
   category:string
   orderDate:dateTime
   completionDateTime:dateTime
   requestedStartDate:dateTime
   requestedCompletionDate:dateTime
   expectedCompletionDate:dateTime
   startDate:dateTime
   @baseType:string
   @type:string
   @schemaLocation:string
}
   ServiceOrder --> "0-1" StateType : state
   ServiceOrder --> "0-*" RelatedParty : relatedParty
   ServiceOrder --> "0-*" OrderRelationship : orderRelationship
   ServiceOrder --> "0-*" ServiceOrderItem : orderItem
   ServiceOrder --> "0-*" OrderMessage : orderMessage

class OrderRelationship {
   type:string
   id:string
   href:string
   @referredType:string
}

class TargetServiceSchema {
   @type:string
   @schemaLocation:string
}

class Value {
   serviceCharacteristicValue:string
}

class CreateServiceOrderItem {
   id:string
}
   CreateServiceOrderItem --> "0-1" ActionType : action
   CreateServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship
   CreateServiceOrderItem --> "1-1" Service : service

class CreateServiceOrder {
   externalId:string
   priority:string
   description:string
   category:string
   requestedStartDate:dateTime
   requestedCompletionDate:dateTime
}
   CreateServiceOrder --> "0-*" RelatedParty : relatedParty
   CreateServiceOrder --> "0-*" OrderRelationship : orderRelationship
   CreateServiceOrder --> "0-*" CreateServiceOrderItem : orderItem

class ServiceOrderSummary {
   id:string
   href:string
   externalId:string
   orderDate:dateTime
   completionDateTime:dateTime
}
   ServiceOrderSummary --> "0-1" StateType : state

class Notification {
   eventId:string
   eventDate:dateTime
}
   Notification --> "1-1" EventType : eventType
   Notification --> "1-1" ServiceOrderSummaryWithItem : event

class ServiceOrderItemSummary {
   id:string
}
   ServiceOrderItemSummary --> "0-1" ActionType : action
   ServiceOrderItemSummary --> "0-1" StateType : state
   ServiceOrderItemSummary --> "1-1" Service : service

class ServiceOrderSummaryWithItem {
   id:string
   href:string
   externalId:string
   orderDate:dateTime
   completionDateTime:dateTime
}
   ServiceOrderSummaryWithItem --> "0-1" StateType : state
   ServiceOrderSummaryWithItem --> "0-*" ServiceOrderItemSummary : orderItem

class OrderMessage {
   code:string
   field:string
   messageInformation:string
   correctionRequired:boolean
}
   OrderMessage --> "1-1" SeverityMessage : severity

@enduml