| POST | /{Brand}/resetscansettings/{TemplateGuid} |
|---|
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
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResetScanSettingsRequest(RequestBase):
template_guid: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResponseBase(DtoBase):
selected_ui_language: Optional[str] = None
sv_session: Optional[str] = None
title: Optional[str] = None
page_tip: Optional[str] = None
new_browser: bool = False
scan_front400_t_a: bool = False
scan_front400_u_t_a_x: bool = False
class ITemplateModificationInfo:
guid: Optional[str] = None
template_modification_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
icon_modification_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
class IClientQuestion(ITemplateQuestion):
question_guid: Optional[str] = None
value_displayed: Optional[str] = None
value_returned: Optional[str] = None
answered: bool = False
regex_matches: bool = False
regex_hint: Optional[str] = None
class TemplateType(str, Enum):
WORKFLOW = 'Workflow'
FREE_FORM = 'FreeForm'
class TemplateScheduleType(str, Enum):
INTERVAL = 'Interval'
FIXED = 'Fixed'
class ITemplateSchedule(IInterface):
time: Optional[datetime.timedelta] = None
end_time: Optional[datetime.timedelta] = None
no_end_time: Optional[bool] = None
type: Optional[TemplateScheduleType] = None
class ICredentials(IInterface):
username: Optional[str] = None
password: Optional[str] = None
class IRejection:
reject_after: Optional[int] = None
rejection_path: Optional[str] = None
share_credentials: Optional[ICredentials] = None
class IBadDocumentRejection(IStatus):
rejection_path: Optional[str] = None
share_credentials: Optional[ICredentials] = None
class PdfLoadResolution(str, Enum):
DEFAULT = 'Default'
DPI100 = 'Dpi100'
DPI150 = 'Dpi150'
DPI200 = 'Dpi200'
DPI300 = 'Dpi300'
DPI400 = 'Dpi400'
DPI500 = 'Dpi500'
DPI600 = 'Dpi600'
class IGeneral(IInterface):
name: Optional[str] = None
description: Optional[str] = None
icon: Optional[str] = None
schedule: Optional[ITemplateSchedule] = None
rejection: Optional[IRejection] = None
bad_document_rejection: Optional[IBadDocumentRejection] = None
pdf_load_resolution: Optional[PdfLoadResolution] = None
class ICaptureSource(IStatus):
pass
class ICapture(IInterface):
capture_sources: Optional[ReadOnlyCollection[ICaptureSource]] = None
class IStringMetadata(IMetadata):
is_secure: Optional[bool] = None
sample_value: Optional[str] = None
value: Optional[str] = None
class IXmlMetadataImportTagMapping(IInterface):
x_path_expression: Optional[str] = None
metadata: Optional[IStringMetadata] = None
class IXmlMetadataImportNamespaceMapping(IInterface):
prefix: Optional[str] = None
name: Optional[str] = None
class IXmlMetadataImport(IStatus):
sample_document_name: Optional[str] = None
tag_mappings: Optional[ReadOnlyCollection[IXmlMetadataImportTagMapping]] = None
namespace_mappings: Optional[ReadOnlyCollection[IXmlMetadataImportNamespaceMapping]] = None
class NotificationType(str, Enum):
FAILURE_ONLY = 'FailureOnly'
SUCCESS_ONLY = 'SuccessOnly'
ALWAYS = 'Always'
class INotification(IStatus):
description: Optional[str] = None
to: Optional[str] = None
subject: Optional[str] = None
body: Optional[str] = None
cc: Optional[str] = None
bcc: Optional[str] = None
notification_type: Optional[NotificationType] = None
class INotifications(IStatus):
notifications: Optional[ReadOnlyCollection[INotification]] = None
class IValidationError:
property: Optional[str] = None
error_message: Optional[str] = None
class IValidationErrors:
errors: Optional[ReadOnlyCollection[IValidationError]] = None
class IValidator:
validation_errors: Optional[IValidationErrors] = None
is_valid: bool = False
class ITemplate(IStatus):
template_version: Optional[str] = None
scanner_vision_version: Optional[str] = None
guid: Optional[str] = None
begin_script: Optional[str] = None
end_script: Optional[str] = None
template_type: Optional[TemplateType] = None
general: Optional[IGeneral] = None
capture: Optional[ICapture] = None
xml_metadata_import: Optional[IXmlMetadataImport] = None
notifications: Optional[INotifications] = None
validator: Optional[IValidator] = None
class IClientTemplate:
description: Optional[str] = None
icon: Optional[bytes] = None
modification_info: Optional[ITemplateModificationInfo] = None
name: Optional[str] = None
questions: Optional[List[IClientQuestion]] = None
template: Optional[ITemplate] = None
template_guid: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ScanResponseBase(ResponseBase):
template: Optional[IClientTemplate] = None
global_questions: Optional[List[IClientQuestion]] = None
can_enable_scan_button: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetTemplateResponse(ScanResponseBase):
server_address: Optional[str] = None
server_port: int = 0
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
@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
T = TypeVar('T')
class IScanSetting(Generic[T]):
is_locked: bool = False
items: Optional[IList[IScanSettingItem[T]]] = None
selected_item: Optional[str] = None
Python ResetScanSettingsRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /{Brand}/resetscansettings/{TemplateGuid} HTTP/1.1
Host: buildmax.org
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"TemplateGuid":"String","Brand":"Desktop"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{Unable to show example output for type 'GetScanSettingsResponse' using the custom 'other' filter}No parameterless constructor defined for this object.