@startuml enum ActionType { add modify delete noChange } enum StateType { acknowledged rejected pending held inProgress cancelled completed failed partial } enum RelationshipType { reliesOn } class ErrorRepresentation { code:int reason:string message:string status:string referenceError:string @type:string @schemaLocation: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 @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 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 class OrderRelationship { type:string id:string href:string @referredType:string } class TargetServiceSchema { @type:string @schemaLocation:string } class Value { @type:string @schemaLocation:string serviceCharacteristicValue:string } class CreateServiceOrderItem { id:string @type:string @schemaLocation:string @baseType: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 @baseType:string @type:string @schemaLocation:string } CreateServiceOrder --> "0-*" RelatedParty : relatedParty CreateServiceOrder --> "0-*" OrderRelationship : orderRelationship CreateServiceOrder --> "0-*" CreateServiceOrderItem : orderItem class Hub { id:string query:string callback:string } @enduml