ScannerVision Web Server

<back to all web services

GetTemplate

Requires Authentication
The following routes are available for this service:
GET/{Brand}/templates/{TemplateGuid}
GET/{Brand}/templates/{TemplateGuid}/{RetainMetadata}
import java.math.*
import java.util.*
import net.servicestack.client.*


open class GetTemplate : RequestBase()
{
    var TemplateGuid:String? = null
    var RetainMetadata:Boolean? = null
}

open class RequestBase : DtoBase()
{
}

open class DtoBase
{
    var Brand:Brand? = null
}

enum class Brand
{
    Desktop,
    Hp,
    Kyocera,
    NeaScan,
    Samsung,
    FujiXerox,
    Ta,
    Utax,
    Epson,
    ScanFront400,
    Sharp,
    Ricoh,
    FujiFilm,
}

open class GetTemplateResponse : ScanResponseBase()
{
    var ServerAddress:String? = null
    var ServerPort:Int? = null
}

open class ScanResponseBase : ResponseBase()
{
    var Template:IClientTemplate? = null
    var GlobalQuestions:ArrayList<IClientQuestion> = ArrayList<IClientQuestion>()
    var CanEnableScanButton:Boolean? = null
}

open class ResponseBase : DtoBase()
{
    var SelectedUiLanguage:String? = null
    var svSession:String? = null
    var Title:String? = null
    var PageTip:String? = null
    var NewBrowser:Boolean? = null
    var ScanFront400TA:Boolean? = null
    var ScanFront400UTAX:Boolean? = null
}

open interface IClientTemplate
{
    var Description:String?
    var Icon:ByteArray?
    var ModificationInfo:ITemplateModificationInfo?
    var Name:String?
    var Questions:ArrayList<IClientQuestion>?
    var Template:ITemplate?
    var TemplateGuid:String?
}

open interface ITemplateModificationInfo
{
    var Guid:String?
    var TemplateModificationDateTime:Date?
    var IconModificationDateTime:Date?
}

open interface IClientQuestion : ITemplateQuestion
{
    var QuestionGuid:String?
    var ValueDisplayed:String?
    var ValueReturned:String?
    var Answered:Boolean?
    var RegexMatches:Boolean?
    var RegexHint:String?
}

open interface ITemplate : IStatus
{
    var TemplateVersion:String?
    var ScannerVisionVersion:String?
    var Guid:String?
    var BeginScript:String?
    var EndScript:String?
    var TemplateType:TemplateType?
    var General:IGeneral?
    var Capture:ICapture?
    var XmlMetadataImport:IXmlMetadataImport?
    var Notifications:INotifications?
    var Validator:IValidator?
}

enum class TemplateType
{
    Workflow,
    FreeForm,
}

open interface IGeneral : IInterface
{
    var Name:String?
    var Description:String?
    var Icon:String?
    var Schedule:ITemplateSchedule?
    var Rejection:IRejection?
    var BadDocumentRejection:IBadDocumentRejection?
    var PdfLoadResolution:PdfLoadResolution?
}

open interface ITemplateSchedule : IInterface
{
    var Time:TimeSpan?
    var EndTime:TimeSpan?
    var NoEndTime:Boolean?
    var Type:TemplateScheduleType?
}

enum class TemplateScheduleType
{
    Interval,
    Fixed,
}

open interface IRejection
{
    var RejectAfter:Int?
    var RejectionPath:String?
    var ShareCredentials:ICredentials?
}

open interface ICredentials : IInterface
{
    var Username:String?
    var Password:String?
}

open interface IBadDocumentRejection : IStatus
{
    var RejectionPath:String?
    var ShareCredentials:ICredentials?
}

enum class PdfLoadResolution
{
    Default,
    Dpi100,
    Dpi150,
    Dpi200,
    Dpi300,
    Dpi400,
    Dpi500,
    Dpi600,
}

open interface ICapture : IInterface
{
    var CaptureSources:ReadOnlyCollection<ICaptureSource>?
}

open interface ICaptureSource : IStatus
{
}

open interface IXmlMetadataImport : IStatus
{
    var SampleDocumentName:String?
    var TagMappings:ReadOnlyCollection<IXmlMetadataImportTagMapping>?
    var NamespaceMappings:ReadOnlyCollection<IXmlMetadataImportNamespaceMapping>?
}

open interface IXmlMetadataImportTagMapping : IInterface
{
    var XPathExpression:String?
    var Metadata:IStringMetadata?
}

open interface IStringMetadata : IMetadata
{
    var IsSecure:Boolean?
    var SampleValue:String?
    var Value:String?
}

open interface IXmlMetadataImportNamespaceMapping : IInterface
{
    var Prefix:String?
    var Name:String?
}

open interface INotifications : IStatus
{
    var Notifications:ReadOnlyCollection<INotification>?
}

open interface INotification : IStatus
{
    var Description:String?
    var To:String?
    var Subject:String?
    var Body:String?
    var Cc:String?
    var Bcc:String?
    var NotificationType:NotificationType?
}

enum class NotificationType
{
    FailureOnly,
    SuccessOnly,
    Always,
}

open interface IValidator
{
    var ValidationErrors:IValidationErrors?
    var IsValid:Boolean?
}

open interface IValidationErrors
{
    var Errors:ReadOnlyCollection<IValidationError>?
}

open interface IValidationError
{
    var Property:String?
    var ErrorMessage:String?
}

Kotlin GetTemplate DTOs

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

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /{Brand}/templates/{TemplateGuid} HTTP/1.1 
Host: buildmax.org 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

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