BazeField Services

<back to all web services

GetAllocation

Allocations API
Requires Authentication
The following routes are available for this service:
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

Python GetAllocation DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + 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
}