| GET | /allocations/{Id} |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AlarmCode:
event_number: int = 0
parameter1: Optional[int] = None
vendor_event_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Alarm:
id: int = 0
code: int = 0
alarm_code: Optional[AlarmCode] = None
name: Optional[str] = None
brake_prg: int = 0
can_trigger_allocation: bool = False
description: Optional[str] = None
remarks: Optional[str] = None
reset_prg: Optional[str] = None
is_ok_alarm: bool = False
meta: Optional[Dict[str, str]] = None
alarm_type: int = 0
type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TriggerAlarm:
alarm: Optional[Alarm] = None
start: datetime.datetime = datetime.datetime(1, 1, 1)
end: Optional[datetime.datetime] = None
log_id: int = 0
sf_id: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllocationCategory:
id: int = 0
name: Optional[str] = None
acronym: Optional[str] = None
color: Optional[str] = None
uncategorized: bool = False
available: bool = False
type_id: int = 0
group: Optional[str] = None
sort_index: int = 0
priority: int = 0
enabled: bool = False
performance: int = 0
excluded: int = 0
parent_category_id: Optional[int] = None
parent_category_name: Optional[str] = None
code: Optional[str] = None
variant_alias: Optional[str] = None
attributes: Optional[Dict[str, str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllocationType:
id: int = 0
name: Optional[str] = None
acronym: Optional[str] = None
version: Optional[str] = None
description: Optional[str] = None
sort_order: int = 0
linked_type_id: Optional[int] = None
sub_type: Optional[bool] = None
group_name: Optional[str] = None
default_visible: bool = False
domain_id: Optional[int] = None
disabled: bool = False
matrix: Optional[str] = None
certified: Optional[bool] = None
allocation_type_class_id: int = 0
variant_of_abstract_type_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllocationCategoryWithType(AllocationCategory):
allocation_type: Optional[AllocationType] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllocationPropertyValue:
name: Optional[str] = None
display_name: Optional[str] = None
value: float = 0.0
limited_value: Optional[float] = None
unit: Optional[str] = None
is_override: bool = False
description: Optional[str] = None
class CommentType(str, Enum):
TURBINE = 'Turbine'
ALLOCATION = 'Allocation'
ALARM = 'Alarm'
class LabelType(IntEnum):
ALLOCATION = 1
OTHER = 2
ALARM = 3
CASE = 4
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Label:
id: int = 0
name: Optional[str] = None
color: Optional[str] = None
type: Optional[LabelType] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Comment:
id: int = 0
turbine_id: Optional[int] = None
turbine_name: Optional[str] = None
time_stamp: datetime.datetime = datetime.datetime(1, 1, 1)
text: Optional[str] = None
created_by: Optional[str] = None
created_by_id: Optional[Decimal] = None
last_modified: datetime.datetime = datetime.datetime(1, 1, 1)
type: Optional[CommentType] = None
external: Optional[bool] = None
sticky: Optional[bool] = None
allocation_id: Optional[int] = None
alarm_log_id: Optional[int] = None
alarm_id: Optional[int] = None
command_id: Optional[int] = None
related_info: Optional[str] = None
cleared: bool = False
labels: Optional[List[Label]] = None
object_id: Optional[str] = None
related_start: Optional[datetime.datetime] = None
related_end: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Allocation:
id: int = 0
turbine_id: int = 0
object_id: Optional[str] = None
turbine_name: Optional[str] = None
turbine_title: Optional[str] = None
source_id: int = 0
source_name: Optional[str] = None
root_cause: Optional[str] = None
triggered_by_alarm: Optional[TriggerAlarm] = None
category: Optional[AllocationCategoryWithType] = None
categories: Optional[List[AllocationCategoryWithType]] = None
start: datetime.datetime = datetime.datetime(1, 1, 1)
end: datetime.datetime = datetime.datetime(1, 1, 1)
start__local: datetime.datetime = datetime.datetime(1, 1, 1)
end__local: datetime.datetime = datetime.datetime(1, 1, 1)
duration: datetime.timedelta = datetime.timedelta()
last_modified: datetime.datetime = datetime.datetime(1, 1, 1)
is_unclassified: bool = False
manual_override_loss: Optional[bool] = None
response_time: Optional[datetime.datetime] = None
lost_production: Optional[float] = None
lost_prodution_filtered: Optional[float] = None
lost_money: Optional[float] = None
lost_money_filtered: Optional[float] = None
properties: Optional[List[AllocationPropertyValue]] = None
finished: bool = False
manual: bool = False
overridden: bool = False
reallocated: bool = False
pending: bool = False
change_log: Optional[str] = None
last_comment: Optional[Comment] = None
exported: Optional[str] = None
labels: Optional[List[Label]] = None
suspect: Optional[bool] = None
uncertain: bool = False
event_id: Optional[int] = None
has_event: bool = False
hold_category: bool = False
approved: bool = False
sf_id: Optional[str] = None
first_alarm_sf_id: Optional[str] = None
root_cause_alarm_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetAllocation:
id: int = 0
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /allocations/{Id} HTTP/1.1
Host: monitoring.ox2.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
id: 0,
turbineId: 0,
objectId: String,
turbineName: String,
turbineTitle: String,
sourceId: 0,
sourceName: String,
rootCause: String,
triggeredByAlarm:
{
alarm:
{
id: 0,
code: 0,
name: String,
brakePrg: 0,
canTriggerAllocation: False,
description: String,
remarks: String,
resetPrg: ,
isOkAlarm: False,
meta:
{
String: String
},
alarmType: 0,
type: Warning
},
start: 0001-01-01,
end: 0001-01-01,
logId: 0,
sfId: String
},
category:
{
allocationType:
{
id: 0,
name: String,
acronym: String,
version: String,
description: String,
sortOrder: 0,
linkedTypeId: 0,
subType: False,
groupName: String,
defaultVisible: False,
domainId: 0,
disabled: False,
matrix: String,
certified: False,
allocationTypeClassId: 0,
variantOfAbstractTypeId: 0
},
id: 0,
name: String,
acronym: String,
color: String,
uncategorized: False,
available: False,
typeId: 0,
group: String,
sortIndex: 0,
priority: 0,
enabled: False,
performance: 0,
excluded: 0,
parentCategoryId: 0,
parentCategoryName: String,
code: String,
variantAlias: String,
attributes:
{
String: String
}
},
categories:
[
{
allocationType:
{
id: 0,
name: String,
acronym: String,
version: String,
description: String,
sortOrder: 0,
linkedTypeId: 0,
subType: False,
groupName: String,
defaultVisible: False,
domainId: 0,
disabled: False,
matrix: String,
certified: False,
allocationTypeClassId: 0,
variantOfAbstractTypeId: 0
},
id: 0,
name: String,
acronym: String,
color: String,
uncategorized: False,
available: False,
typeId: 0,
group: String,
sortIndex: 0,
priority: 0,
enabled: False,
performance: 0,
excluded: 0,
parentCategoryId: 0,
parentCategoryName: String,
code: String,
variantAlias: String,
attributes:
{
String: String
}
}
],
start: 0001-01-01,
end: 0001-01-01,
start_Local: 0001-01-01T00:00:00.0000000+00:00,
end_Local: 0001-01-01T00:00:00.0000000+00:00,
duration: P739710DT15H35M59.4340591S,
lastModified: 0001-01-01,
isUnclassified: False,
manualOverrideLoss: False,
responseTime: 0001-01-01,
lostProduction: 0,
lostProdutionFiltered: 0,
lostMoney: 0,
lostMoneyFiltered: 0,
properties:
[
{
}
],
finished: False,
manual: False,
overridden: False,
reallocated: False,
pending: False,
changeLog: String,
lastComment:
{
id: 0,
turbineId: 0,
turbineName: String,
timeStamp: 0001-01-01,
text: String,
createdBy: String,
createdById: 0,
lastModified: 0001-01-01,
type: Turbine,
external: False,
sticky: False,
allocationId: 0,
alarmLogId: 0,
alarmId: 0,
commandId: 0,
relatedInfo: String,
cleared: False,
labels:
[
{
id: 0,
name: String,
color: String,
type: 0
}
],
objectId: String,
relatedStart: 0001-01-01,
relatedEnd: 0001-01-01
},
exported: String,
labels:
[
{
id: 0,
name: String,
color: String,
type: 0
}
],
suspect: False,
uncertain: False,
eventId: 0,
hasEvent: False,
holdCategory: False,
approved: False,
sfId: String,
firstAlarmSfId: String,
rootCauseAlarmId: 0
}