POST | /codelock/accessy/callback |
---|
import Foundation
import ServiceStack
public class AccessyCodelockCallback : Codable
{
public var eventType:AccessyEvent
public var invitationId:String
public var userId:String
public var organizationId:String
required public init(){}
}
public enum AccessyEvent : String, Codable
{
case Unknown
case MEMBERSHIP_CREATED
case MEMBERSHIP_REMOVED
}
public class HttpResult : Codable
{
public var responseText:String
public var responseStream:Data
public var fileInfo:FileInfo
//virtualFile:IVirtualFile ignored. Swift doesn't support interface properties
public var contentType:String
public var headers:[String:String] = [:]
public var cookies:[Cookie] = []
public var eTag:String
@TimeSpan public var age:TimeInterval?
@TimeSpan public var maxAge:TimeInterval?
public var expires:Date?
public var lastModified:Date?
public var cacheControl:CacheControl
public var resultScope:Func<IDisposable>
public var allowsPartialResponse:Bool
public var options:[String:String] = [:]
public var status:Int
public var statusCode:HttpStatusCode
public var statusDescription:String
//response:Object ignored. Type could not be extended in Swift
//responseFilter:IContentTypeWriter ignored. Swift doesn't support interface properties
//requestContext:IRequest ignored. Swift doesn't support interface properties
public var view:String
public var template:String
public var paddingLength:Int
public var isPartialRequest:Bool
required public init(){}
}
public protocol IVirtualFile
{
//virtualPathProvider:IVirtualPathProvider ignored. Swift doesn't support interface properties
var `extension`:String { get set }
var length:Int { get set }
}
public protocol IVirtualPathProvider
{
//rootDirectory:IVirtualDirectory ignored. Swift doesn't support interface properties
var virtualPathSeparator:String { get set }
var realPathSeparator:String { get set }
}
public protocol IVirtualDirectory
{
}
// @Flags()
public enum CacheControl : Int, Codable
{
case None = 0
case Public = 1
case Private = 2
case MustRevalidate = 4
case NoCache = 8
case NoStore = 16
case NoTransform = 32
case ProxyRevalidate = 64
}
public protocol IContentTypeWriter
{
}
public protocol IRequest
{
//originalRequest:Object ignored. Type could not be extended in Swift
//response:IResponse ignored. Swift doesn't support interface properties
var operationName:String { get set }
var verb:String { get set }
var requestAttributes:RequestAttributes { get set }
//requestPreferences:IRequestPreferences ignored. Swift doesn't support interface properties
//dto:Object ignored. Type could not be extended in Swift
var contentType:String { get set }
var isLocal:Bool { get set }
var userAgent:String { get set }
var cookies:[String:Cookie] { get set }
var responseContentType:String { get set }
var hasExplicitResponseContentType:Bool { get set }
var items:[String:Object] { get set }
var headers:NameValueCollection { get set }
var queryString:NameValueCollection { get set }
var formData:NameValueCollection { get set }
var useBufferedStream:Bool { get set }
var rawUrl:String { get set }
var absoluteUri:String { get set }
var userHostAddress:String { get set }
var remoteIp:String { get set }
var authorization:String { get set }
var isSecureConnection:Bool { get set }
var acceptTypes:[String] { get set }
var pathInfo:String { get set }
var originalPathInfo:String { get set }
var inputStream:Data { get set }
var contentLength:Int { get set }
var files:[IHttpFile] { get set }
var urlReferrer:Uri { get set }
}
public protocol IResponse
{
//originalResponse:Object ignored. Type could not be extended in Swift
//request:IRequest ignored. Swift doesn't support interface properties
var statusCode:Int { get set }
var statusDescription:String { get set }
var contentType:String { get set }
var outputStream:Data { get set }
//dto:Object ignored. Type could not be extended in Swift
var useBufferedStream:Bool { get set }
var isClosed:Bool { get set }
var keepAlive:Bool { get set }
var hasStarted:Bool { get set }
var items:[String:Object] { get set }
}
// @Flags()
public enum RequestAttributes : Int, Codable
{
case None = 0
case Localhost = 1
case LocalSubnet = 2
case External = 4
case Secure = 8
case InSecure = 16
case AnySecurityMode = 24
case HttpHead = 32
case HttpGet = 64
case HttpPost = 128
case HttpPut = 256
case HttpDelete = 512
case HttpPatch = 1024
case HttpOptions = 2048
case HttpOther = 4096
case AnyHttpMethod = 8160
case OneWay = 8192
case Reply = 16384
case AnyCallStyle = 24576
case Soap11 = 32768
case Soap12 = 65536
case Xml = 131072
case Json = 262144
case Jsv = 524288
case ProtoBuf = 1048576
case Csv = 2097152
case Html = 4194304
case Jsonl = 8388608
case MsgPack = 16777216
case FormatOther = 33554432
case AnyFormat = 67076096
case Http = 67108864
case MessageQueue = 134217728
case Tcp = 268435456
case Grpc = 536870912
case EndpointOther = 1073741824
case AnyEndpoint = 2080374784
case InProcess = -2147483648
case InternalNetworkAccess = -2147483645
case AnyNetworkAccessType = -2147483641
case Any = -1
}
public protocol IRequestPreferences
{
var acceptsBrotli:Bool { get set }
var acceptsDeflate:Bool { get set }
var acceptsGzip:Bool { get set }
}
public protocol IHttpFile
{
var name:String { get set }
var fileName:String { get set }
var contentLength:Int { get set }
var contentType:String { get set }
var inputStream:Data { get set }
}
Swift AccessyCodelockCallback DTOs
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.
POST /codelock/accessy/callback HTTP/1.1
Host: api.bokamera.se
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
EventType: Unknown
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { }