""" Options: Date: 2026-04-05 19:50:01 Version: 8.52 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://monitoring.ox2.com/BazeField.Services/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GetAllocation.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ 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 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 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 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AllocationCategory: id: int = 0 name: Optional[str] = None color: Optional[str] = None uncategorized: bool = False available: bool = False priority: int = 0 performance: int = 0 excluded: int = 0 parent_category_id: Optional[int] = None type_id: int = 0 type_name: Optional[str] = None code: Optional[str] = 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 # @Route("/allocations/{Id}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetAllocation(IReturn[Allocation]): id: int = 0