ScannerVision Web Server

<back to all web services

ResetScanSettingsRequest

Requires Authentication
The following routes are available for this service:
POST/{Brand}/resetscansettings/{TemplateGuid}
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


enum Brand : string
{
    case Desktop = 'Desktop';
    case Hp = 'Hp';
    case Kyocera = 'Kyocera';
    case NeaScan = 'NeaScan';
    case Samsung = 'Samsung';
    case FujiXerox = 'FujiXerox';
    case Ta = 'Ta';
    case Utax = 'Utax';
    case Epson = 'Epson';
    case ScanFront400 = 'ScanFront400';
    case Sharp = 'Sharp';
    case Ricoh = 'Ricoh';
    case FujiFilm = 'FujiFilm';
}

class DtoBase implements JsonSerializable
{
    public function __construct(
        /** @var Brand|null */
        public ?Brand $Brand=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Brand'])) $this->Brand = JsonConverters::from('Brand', $o['Brand']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Brand)) $o['Brand'] = JsonConverters::to('Brand', $this->Brand);
        return empty($o) ? new class(){} : $o;
    }
}

class RequestBase extends DtoBase implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     */
    public function __construct(
        ?Brand $Brand=null
    ) {
        parent::__construct($Brand);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        return empty($o) ? new class(){} : $o;
    }
}

class ResetScanSettingsRequest extends RequestBase implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     */
    public function __construct(
        ?Brand $Brand=null,
        /** @var string|null */
        public ?string $TemplateGuid=null
    ) {
        parent::__construct($Brand);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['TemplateGuid'])) $this->TemplateGuid = $o['TemplateGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->TemplateGuid)) $o['TemplateGuid'] = $this->TemplateGuid;
        return empty($o) ? new class(){} : $o;
    }
}

class ResponseBase extends DtoBase implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     */
    public function __construct(
        ?Brand $Brand=null,
        /** @var string|null */
        public ?string $SelectedUiLanguage=null,
        /** @var string|null */
        public ?string $svSession=null,
        /** @var string|null */
        public ?string $Title=null,
        /** @var string|null */
        public ?string $PageTip=null,
        /** @var bool|null */
        public ?bool $NewBrowser=null,
        /** @var bool|null */
        public ?bool $ScanFront400TA=null,
        /** @var bool|null */
        public ?bool $ScanFront400UTAX=null
    ) {
        parent::__construct($Brand);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['SelectedUiLanguage'])) $this->SelectedUiLanguage = $o['SelectedUiLanguage'];
        if (isset($o['svSession'])) $this->svSession = $o['svSession'];
        if (isset($o['Title'])) $this->Title = $o['Title'];
        if (isset($o['PageTip'])) $this->PageTip = $o['PageTip'];
        if (isset($o['NewBrowser'])) $this->NewBrowser = $o['NewBrowser'];
        if (isset($o['ScanFront400TA'])) $this->ScanFront400TA = $o['ScanFront400TA'];
        if (isset($o['ScanFront400UTAX'])) $this->ScanFront400UTAX = $o['ScanFront400UTAX'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->SelectedUiLanguage)) $o['SelectedUiLanguage'] = $this->SelectedUiLanguage;
        if (isset($this->svSession)) $o['svSession'] = $this->svSession;
        if (isset($this->Title)) $o['Title'] = $this->Title;
        if (isset($this->PageTip)) $o['PageTip'] = $this->PageTip;
        if (isset($this->NewBrowser)) $o['NewBrowser'] = $this->NewBrowser;
        if (isset($this->ScanFront400TA)) $o['ScanFront400TA'] = $this->ScanFront400TA;
        if (isset($this->ScanFront400UTAX)) $o['ScanFront400UTAX'] = $this->ScanFront400UTAX;
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @property string|null $Guid
 * @property DateTime $TemplateModificationDateTime
 * @property DateTime $IconModificationDateTime
 */
interface ITemplateModificationInfo
{
}

/**
 * @property string|null $QuestionGuid
 * @property string|null $ValueDisplayed
 * @property string|null $ValueReturned
 * @property bool $Answered
 * @property bool $RegexMatches
 * @property string|null $RegexHint
 */
interface IClientQuestion extends ITemplateQuestion
{
}

enum TemplateType : string
{
    case Workflow = 'Workflow';
    case FreeForm = 'FreeForm';
}

enum TemplateScheduleType : string
{
    case Interval = 'Interval';
    case Fixed = 'Fixed';
}

/**
 * @property DateInterval|null $Time
 * @property DateInterval|null $EndTime
 * @property bool|null $NoEndTime
 * @property TemplateScheduleType|null $Type
 */
interface ITemplateSchedule extends IInterface
{
}

/**
 * @property string|null $Username
 * @property string|null $Password
 */
interface ICredentials extends IInterface
{
}

/**
 * @property int|null $RejectAfter
 * @property string|null $RejectionPath
 * @property ICredentials|null $ShareCredentials
 */
interface IRejection
{
}

/**
 * @property string|null $RejectionPath
 * @property ICredentials|null $ShareCredentials
 */
interface IBadDocumentRejection extends IStatus
{
}

enum PdfLoadResolution : string
{
    case Default = 'Default';
    case Dpi100 = 'Dpi100';
    case Dpi150 = 'Dpi150';
    case Dpi200 = 'Dpi200';
    case Dpi300 = 'Dpi300';
    case Dpi400 = 'Dpi400';
    case Dpi500 = 'Dpi500';
    case Dpi600 = 'Dpi600';
}

/**
 * @property string|null $Name
 * @property string|null $Description
 * @property string|null $Icon
 * @property ITemplateSchedule|null $Schedule
 * @property IRejection|null $Rejection
 * @property IBadDocumentRejection|null $BadDocumentRejection
 * @property PdfLoadResolution|null $PdfLoadResolution
 */
interface IGeneral extends IInterface
{
}

interface ICaptureSource extends IStatus
{
}

/**
 * @property ReadOnlyCollection<ICaptureSource>|null $CaptureSources
 */
interface ICapture extends IInterface
{
}

/**
 * @property bool|null $IsSecure
 * @property string|null $SampleValue
 * @property string|null $Value
 */
interface IStringMetadata extends IMetadata
{
}

/**
 * @property string|null $XPathExpression
 * @property IStringMetadata|null $Metadata
 */
interface IXmlMetadataImportTagMapping extends IInterface
{
}

/**
 * @property string|null $Prefix
 * @property string|null $Name
 */
interface IXmlMetadataImportNamespaceMapping extends IInterface
{
}

/**
 * @property string|null $SampleDocumentName
 * @property ReadOnlyCollection<IXmlMetadataImportTagMapping>|null $TagMappings
 * @property ReadOnlyCollection<IXmlMetadataImportNamespaceMapping>|null $NamespaceMappings
 */
interface IXmlMetadataImport extends IStatus
{
}

enum NotificationType : string
{
    case FailureOnly = 'FailureOnly';
    case SuccessOnly = 'SuccessOnly';
    case Always = 'Always';
}

/**
 * @property string|null $Description
 * @property string|null $To
 * @property string|null $Subject
 * @property string|null $Body
 * @property string|null $Cc
 * @property string|null $Bcc
 * @property NotificationType|null $NotificationType
 */
interface INotification extends IStatus
{
}

/**
 * @property ReadOnlyCollection<INotification>|null $Notifications
 */
interface INotifications extends IStatus
{
}

/**
 * @property string|null $Property
 * @property string|null $ErrorMessage
 */
interface IValidationError
{
}

/**
 * @property ReadOnlyCollection<IValidationError>|null $Errors
 */
interface IValidationErrors
{
}

/**
 * @property IValidationErrors|null $ValidationErrors
 * @property bool $IsValid
 */
interface IValidator
{
}

/**
 * @property string|null $TemplateVersion
 * @property string|null $ScannerVisionVersion
 * @property string|null $Guid
 * @property string|null $BeginScript
 * @property string|null $EndScript
 * @property TemplateType $TemplateType
 * @property IGeneral|null $General
 * @property ICapture|null $Capture
 * @property IXmlMetadataImport|null $XmlMetadataImport
 * @property INotifications|null $Notifications
 * @property IValidator|null $Validator
 */
interface ITemplate extends IStatus
{
}

/**
 * @property string|null $Description
 * @property ByteArray|null $Icon
 * @property ITemplateModificationInfo|null $ModificationInfo
 * @property string|null $Name
 * @property array<IClientQuestion>|null $Questions
 * @property ITemplate|null $Template
 * @property string|null $TemplateGuid
 */
interface IClientTemplate
{
}

class ScanResponseBase extends ResponseBase implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     * @param string|null $SelectedUiLanguage
     * @param string|null $svSession
     * @param string|null $Title
     * @param string|null $PageTip
     * @param bool|null $NewBrowser
     * @param bool|null $ScanFront400TA
     * @param bool|null $ScanFront400UTAX
     */
    public function __construct(
        ?Brand $Brand=null,
        ?string $SelectedUiLanguage=null,
        ?string $svSession=null,
        ?string $Title=null,
        ?string $PageTip=null,
        ?bool $NewBrowser=null,
        ?bool $ScanFront400TA=null,
        ?bool $ScanFront400UTAX=null,
        /** @var IClientTemplate|null */
        public ?IClientTemplate $Template=null,
        /** @var array<IClientQuestion>|null */
        public ?array $GlobalQuestions=null,
        /** @var bool|null */
        public ?bool $CanEnableScanButton=null
    ) {
        parent::__construct($Brand,$SelectedUiLanguage,$svSession,$Title,$PageTip,$NewBrowser,$ScanFront400TA,$ScanFront400UTAX);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Template'])) $this->Template = JsonConverters::from('IClientTemplate', $o['Template']);
        if (isset($o['GlobalQuestions'])) $this->GlobalQuestions = JsonConverters::fromArray('IClientQuestion', $o['GlobalQuestions']);
        if (isset($o['CanEnableScanButton'])) $this->CanEnableScanButton = $o['CanEnableScanButton'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Template)) $o['Template'] = JsonConverters::to('IClientTemplate', $this->Template);
        if (isset($this->GlobalQuestions)) $o['GlobalQuestions'] = JsonConverters::toArray('IClientQuestion', $this->GlobalQuestions);
        if (isset($this->CanEnableScanButton)) $o['CanEnableScanButton'] = $this->CanEnableScanButton;
        return empty($o) ? new class(){} : $o;
    }
}

class GetTemplateResponse extends ScanResponseBase implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     * @param string|null $SelectedUiLanguage
     * @param string|null $svSession
     * @param string|null $Title
     * @param string|null $PageTip
     * @param bool|null $NewBrowser
     * @param bool|null $ScanFront400TA
     * @param bool|null $ScanFront400UTAX
     * @param IClientTemplate|null $Template
     * @param array<IClientQuestion>|null $GlobalQuestions
     * @param bool|null $CanEnableScanButton
     */
    public function __construct(
        ?Brand $Brand=null,
        ?string $SelectedUiLanguage=null,
        ?string $svSession=null,
        ?string $Title=null,
        ?string $PageTip=null,
        ?bool $NewBrowser=null,
        ?bool $ScanFront400TA=null,
        ?bool $ScanFront400UTAX=null,
        ?IClientTemplate $Template=null,
        ?array $GlobalQuestions=null,
        ?bool $CanEnableScanButton=null,
        /** @var string|null */
        public ?string $ServerAddress=null,
        /** @var int */
        public int $ServerPort=0
    ) {
        parent::__construct($Brand,$SelectedUiLanguage,$svSession,$Title,$PageTip,$NewBrowser,$ScanFront400TA,$ScanFront400UTAX,$Template,$GlobalQuestions,$CanEnableScanButton);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['ServerAddress'])) $this->ServerAddress = $o['ServerAddress'];
        if (isset($o['ServerPort'])) $this->ServerPort = $o['ServerPort'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->ServerAddress)) $o['ServerAddress'] = $this->ServerAddress;
        if (isset($this->ServerPort)) $o['ServerPort'] = $this->ServerPort;
        return empty($o) ? new class(){} : $o;
    }
}

enum ScanColour : string
{
    case BlackAndWhite = 'BlackAndWhite';
    case Greyscale = 'Greyscale';
    case Colour = 'Colour';
    case Auto = 'Auto';
}

enum ScanOrientation : string
{
    case Portrait = 'Portrait';
    case Landscape = 'Landscape';
}

enum ScanResolution : string
{
    case Dpi100 = 'Dpi100';
    case Dpi200 = 'Dpi200';
    case Dpi300 = 'Dpi300';
    case Dpi400 = 'Dpi400';
    case Dpi600 = 'Dpi600';
}

enum ScanSide : string
{
    case Simplex = 'Simplex';
    case Duplex = 'Duplex';
}

enum ScanSize : string
{
    case Auto = 'Auto';
    case A3 = 'A3';
    case A4 = 'A4';
    case A5 = 'A5';
    case B4 = 'B4';
    case B5 = 'B5';
    case Letter = 'Letter';
    case Legal = 'Legal';
    case Executive = 'Executive';
    case Folio = 'Folio';
    case AutoLong = 'AutoLong';
    case A4R = 'A4R';
    case A5R = 'A5R';
    case A6R = 'A6R';
    case B6R = 'B6R';
}

enum ScanSource : string
{
    case Adf = 'Adf';
    case Glass = 'Glass';
    case Auto = 'Auto';
}

enum ScanType : string
{
    case Text = 'Text';
    case Photo = 'Photo';
    case TextAndPhoto = 'TextAndPhoto';
}

enum BoolSetting : string
{
    case True = 'True';
    case False = 'False';
}

/**
 * @property IScanSetting<ScanColour>|null $Colour
 * @property IScanSetting<ScanOrientation>|null $Orientation
 * @property IScanSetting<ScanResolution>|null $Resolution
 * @property IScanSetting<ScanSide>|null $Sides
 * @property IScanSetting<ScanSize>|null $Size
 * @property IScanSetting<ScanSource>|null $Source
 * @property IScanSetting<ScanType>|null $Type
 * @property IScanSetting<BoolSetting>|null $ScanContinuously
 * @property IScanSetting<BoolSetting>|null $MixedSizes
 */
interface IScanSettings
{
}

class GetScanSettingsResponse extends GetTemplateResponse implements JsonSerializable
{
    /**
     * @param Brand|null $Brand
     * @param string|null $SelectedUiLanguage
     * @param string|null $svSession
     * @param string|null $Title
     * @param string|null $PageTip
     * @param bool|null $NewBrowser
     * @param bool|null $ScanFront400TA
     * @param bool|null $ScanFront400UTAX
     * @param IClientTemplate|null $Template
     * @param array<IClientQuestion>|null $GlobalQuestions
     * @param bool|null $CanEnableScanButton
     * @param string|null $ServerAddress
     * @param int $ServerPort
     */
    public function __construct(
        ?Brand $Brand=null,
        ?string $SelectedUiLanguage=null,
        ?string $svSession=null,
        ?string $Title=null,
        ?string $PageTip=null,
        ?bool $NewBrowser=null,
        ?bool $ScanFront400TA=null,
        ?bool $ScanFront400UTAX=null,
        ?IClientTemplate $Template=null,
        ?array $GlobalQuestions=null,
        ?bool $CanEnableScanButton=null,
        ?string $ServerAddress=null,
        int $ServerPort=0,
        /** @var IScanSettings|null */
        public ?IScanSettings $ScanSettings=null,
        /** @var string|null */
        public ?string $ColourLabel=null,
        /** @var string|null */
        public ?string $OrientationLabel=null,
        /** @var string|null */
        public ?string $ResolutionLabel=null,
        /** @var string|null */
        public ?string $SidesLabel=null,
        /** @var string|null */
        public ?string $SizeLabel=null,
        /** @var string|null */
        public ?string $SourceLabel=null,
        /** @var string|null */
        public ?string $TypeLabel=null,
        /** @var string|null */
        public ?string $ScanContinuouslyLabel=null,
        /** @var string|null */
        public ?string $MixedSizesLabel=null
    ) {
        parent::__construct($Brand,$SelectedUiLanguage,$svSession,$Title,$PageTip,$NewBrowser,$ScanFront400TA,$ScanFront400UTAX,$Template,$GlobalQuestions,$CanEnableScanButton,$ServerAddress,$ServerPort);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['ScanSettings'])) $this->ScanSettings = JsonConverters::from('IScanSettings', $o['ScanSettings']);
        if (isset($o['ColourLabel'])) $this->ColourLabel = $o['ColourLabel'];
        if (isset($o['OrientationLabel'])) $this->OrientationLabel = $o['OrientationLabel'];
        if (isset($o['ResolutionLabel'])) $this->ResolutionLabel = $o['ResolutionLabel'];
        if (isset($o['SidesLabel'])) $this->SidesLabel = $o['SidesLabel'];
        if (isset($o['SizeLabel'])) $this->SizeLabel = $o['SizeLabel'];
        if (isset($o['SourceLabel'])) $this->SourceLabel = $o['SourceLabel'];
        if (isset($o['TypeLabel'])) $this->TypeLabel = $o['TypeLabel'];
        if (isset($o['ScanContinuouslyLabel'])) $this->ScanContinuouslyLabel = $o['ScanContinuouslyLabel'];
        if (isset($o['MixedSizesLabel'])) $this->MixedSizesLabel = $o['MixedSizesLabel'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->ScanSettings)) $o['ScanSettings'] = JsonConverters::to('IScanSettings', $this->ScanSettings);
        if (isset($this->ColourLabel)) $o['ColourLabel'] = $this->ColourLabel;
        if (isset($this->OrientationLabel)) $o['OrientationLabel'] = $this->OrientationLabel;
        if (isset($this->ResolutionLabel)) $o['ResolutionLabel'] = $this->ResolutionLabel;
        if (isset($this->SidesLabel)) $o['SidesLabel'] = $this->SidesLabel;
        if (isset($this->SizeLabel)) $o['SizeLabel'] = $this->SizeLabel;
        if (isset($this->SourceLabel)) $o['SourceLabel'] = $this->SourceLabel;
        if (isset($this->TypeLabel)) $o['TypeLabel'] = $this->TypeLabel;
        if (isset($this->ScanContinuouslyLabel)) $o['ScanContinuouslyLabel'] = $this->ScanContinuouslyLabel;
        if (isset($this->MixedSizesLabel)) $o['MixedSizesLabel'] = $this->MixedSizesLabel;
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @property bool $IsLocked
 * @property array<IScanSettingItem<T>>|null $Items
 * @property string $SelectedItem
 * @template T
 */
interface IScanSetting
{
}

PHP ResetScanSettingsRequest DTOs

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

HTTP + CSV

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/csv
Content-Type: text/csv
Content-Length: length

{"TemplateGuid":"String","Brand":"Desktop"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{Unable to show example output for type 'GetScanSettingsResponse' using the custom 'csv' filter}No parameterless constructor defined for this object.