| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid} | ||
|---|---|---|---|
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/page/{PageNumber} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/page/{PageNumber} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/search/{SearchTerm} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/search/{SearchTerm}/page/{PageNumber} |
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class GetQuestion : QuestionRequestDto()
{
open var ParsedRoot:String? = null
open var SearchTerm:String? = null
open var PageNumber:Int? = null
}
open class QuestionRequestDto : RequestBase()
{
open var TemplateGuid:String? = null
open var QuestionGuid:String? = null
open var Parent:String? = null
open var FolderBrowser:String? = null
}
open class RequestBase : DtoBase()
{
}
open class DtoBase
{
open var Brand:Brand? = null
}
enum class Brand
{
Desktop,
Hp,
Kyocera,
NeaScan,
Samsung,
FujiXerox,
Ta,
Utax,
Epson,
ScanFront400,
Sharp,
Ricoh,
FujiFilm,
Brother,
}
open class GetQuestionResponse : ScanResponseBase()
{
open var Question:IClientQuestion? = null
open var RegexMatches:Boolean? = null
open var RegexHint:String? = null
open var SelectedFolder:String? = null
open var LoggedInUser:IUser? = null
open var MetadataParser:IMetadataParserEx? = null
open var ParsedRoot:String? = null
open var FolderBrowser:String? = null
open var Parent:String? = null
open var SearchTerm:String? = null
open var PageNumber:Int? = null
}
open class ScanResponseBase : ResponseBase()
{
open var Template:IClientTemplate? = null
open var GlobalQuestions:ArrayList<IClientQuestion>? = null
open var CanEnableScanButton:Boolean? = null
}
open class ResponseBase : DtoBase()
{
open var SelectedUiLanguage:String? = null
open var svSession:String? = null
open var Title:String? = null
open var PageTip:String? = null
open var NewBrowser:Boolean? = null
open var ScanFront400TA:Boolean? = null
open var ScanFront400UTAX:Boolean? = null
}
interface IClientTemplate
{
var Description:String?
var Icon:ByteArray?
var ModificationInfo:ITemplateModificationInfo?
var Name:String?
var Questions:ArrayList<IClientQuestion>?
var Template:ITemplate?
var TemplateGuid:String?
}
interface ITemplateModificationInfo
{
var Guid:String?
var TemplateModificationDateTime:Date?
var IconModificationDateTime:Date?
}
interface IClientQuestion : ITemplateQuestion
{
var QuestionGuid:String?
var ValueDisplayed:String?
var ValueReturned:String?
var Answered:Boolean?
var RegexMatches:Boolean?
var RegexHint:String?
}
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,
}
interface IGeneral : IInterface
{
var Name:String?
var Description:String?
var Icon:String?
var Schedule:ITemplateSchedule?
var Rejection:IRejection?
var BadDocumentRejection:IBadDocumentRejection?
var PdfLoadResolution:PdfLoadResolution?
}
interface ITemplateSchedule : IInterface
{
var Time:TimeSpan?
var EndTime:TimeSpan?
var NoEndTime:Boolean?
var Type:TemplateScheduleType?
}
enum class TemplateScheduleType
{
Interval,
Fixed,
}
interface IRejection
{
var RejectAfter:Int?
var RejectionPath:String?
var ShareCredentials:ICredentials?
}
interface ICredentials : IInterface
{
var Username:String?
var Password:String?
}
interface IBadDocumentRejection : IStatus
{
var RejectionPath:String?
var ShareCredentials:ICredentials?
}
enum class PdfLoadResolution
{
Default,
Dpi100,
Dpi150,
Dpi200,
Dpi300,
Dpi400,
Dpi500,
Dpi600,
}
interface ICapture : IInterface
{
var CaptureSources:ReadOnlyCollection<ICaptureSource>?
}
interface ICaptureSource : IStatus
{
}
interface IXmlMetadataImport : IStatus
{
var SampleDocumentName:String?
var TagMappings:ReadOnlyCollection<IXmlMetadataImportTagMapping>?
var NamespaceMappings:ReadOnlyCollection<IXmlMetadataImportNamespaceMapping>?
}
interface IXmlMetadataImportTagMapping : IInterface
{
var XPathExpression:String?
var Metadata:IStringMetadata?
}
interface IStringMetadata : IMetadata
{
var IsSecure:Boolean?
var SampleValue:String?
var Value:String?
}
interface IXmlMetadataImportNamespaceMapping : IInterface
{
var Prefix:String?
var Name:String?
}
interface INotifications : IStatus
{
var Notifications:ReadOnlyCollection<INotification>?
}
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,
}
interface IValidator
{
var ValidationErrors:IValidationErrors?
var IsValid:Boolean?
}
interface IValidationErrors
{
var Errors:ReadOnlyCollection<IValidationError>?
}
interface IValidationError
{
var Property:String?
var ErrorMessage:String?
}
interface IUser : IIdTemplatesItem
{
var Groups:ReadOnlyCollection<IUserGroup>?
var EmailAddress:String?
var HasPassword:Boolean?
var HomeFolder:String?
var Password:String?
var SbcUser:Boolean?
var Language:String?
}
interface IUserGroup : IIdTemplatesItem, IGroup
{
var Users:ReadOnlyCollection<IUser>?
}
interface IMetadataParserEx : IMetadataParser
{
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /{Brand}/question/{TemplateGuid}/{QuestionGuid} HTTP/1.1
Host: dmsshow.kyocerasolutions.cz
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
RegexMatches: False,
RegexHint: String,
SelectedFolder: String,
ParsedRoot: String,
FolderBrowser: String,
Parent: String,
SearchTerm: String,
PageNumber: 0,
CanEnableScanButton: True,
SelectedUiLanguage: String,
svSession: String,
Title: String,
PageTip: String,
NewBrowser: False,
ScanFront400TA: False,
ScanFront400UTAX: False,
Brand: Desktop
}