# # 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