""" Options: Date: 2026-01-27 18:59:15 Version: 8.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://buildmax.org #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ResetScanSettingsRequest.* #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 class Brand(str, Enum): DESKTOP = 'Desktop' HP = 'Hp' KYOCERA = 'Kyocera' NEA_SCAN = 'NeaScan' SAMSUNG = 'Samsung' FUJI_XEROX = 'FujiXerox' TA = 'Ta' UTAX = 'Utax' EPSON = 'Epson' SCAN_FRONT400 = 'ScanFront400' SHARP = 'Sharp' RICOH = 'Ricoh' FUJI_FILM = 'FujiFilm' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DtoBase: brand: Optional[Brand] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RequestBase(DtoBase): pass class ScanColour(str, Enum): BLACK_AND_WHITE = 'BlackAndWhite' GREYSCALE = 'Greyscale' COLOUR = 'Colour' AUTO = 'Auto' class ScanOrientation(str, Enum): PORTRAIT = 'Portrait' LANDSCAPE = 'Landscape' class ScanResolution(str, Enum): DPI100 = 'Dpi100' DPI200 = 'Dpi200' DPI300 = 'Dpi300' DPI400 = 'Dpi400' DPI600 = 'Dpi600' class ScanSide(str, Enum): SIMPLEX = 'Simplex' DUPLEX = 'Duplex' class ScanSize(str, Enum): AUTO = 'Auto' A3 = 'A3' A4 = 'A4' A5 = 'A5' B4 = 'B4' B5 = 'B5' LETTER = 'Letter' LEGAL = 'Legal' EXECUTIVE = 'Executive' FOLIO = 'Folio' AUTO_LONG = 'AutoLong' A4_R = 'A4R' A5_R = 'A5R' A6_R = 'A6R' B6_R = 'B6R' class ScanSource(str, Enum): ADF = 'Adf' GLASS = 'Glass' AUTO = 'Auto' class ScanType(str, Enum): TEXT = 'Text' PHOTO = 'Photo' TEXT_AND_PHOTO = 'TextAndPhoto' class BoolSetting(str, Enum): TRUE = 'True' FALSE = 'False' class IScanSettings: colour: Optional[IScanSetting[ScanColour]] = None orientation: Optional[IScanSetting[ScanOrientation]] = None resolution: Optional[IScanSetting[ScanResolution]] = None sides: Optional[IScanSetting[ScanSide]] = None size: Optional[IScanSetting[ScanSize]] = None source: Optional[IScanSetting[ScanSource]] = None type: Optional[IScanSetting[ScanType]] = None scan_continuously: Optional[IScanSetting[BoolSetting]] = None mixed_sizes: Optional[IScanSetting[BoolSetting]] = None T = TypeVar('T') class IScanSetting(Generic[T]): is_locked: bool = False items: Optional[IList[IScanSettingItem[T]]] = None selected_item: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetTemplateResponse(ScanResponseBase): server_address: Optional[str] = None server_port: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetScanSettingsResponse(GetTemplateResponse): scan_settings: Optional[IScanSettings] = None colour_label: Optional[str] = None orientation_label: Optional[str] = None resolution_label: Optional[str] = None sides_label: Optional[str] = None size_label: Optional[str] = None source_label: Optional[str] = None type_label: Optional[str] = None scan_continuously_label: Optional[str] = None mixed_sizes_label: Optional[str] = None # @Route("/{Brand}/resetscansettings/{TemplateGuid}", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ResetScanSettingsRequest(RequestBase, IReturn[GetScanSettingsResponse]): template_guid: Optional[str] = None