import Foundation
import ServiceStack
public class CreateApiProvider : ICreateDb<ApiProvider>, Codable
{
// @Validate(Validator="GreaterThan(0)")
public var apiTypeId:Int
public var apiBaseUrl:String
// @Validate(Validator="NotEmpty")
public var name:String
public var apiKeyVar:String
public var apiKey:String
public var apiKeyHeader:String
public var heartbeatUrl:String
public var taskPaths:[TaskType:String]
public var concurrency:Int
public var priority:Int
public var enabled:Bool
public var models:[ApiProviderModel]
public var selectedModels:[String]
required public init(){}
}
public enum TaskType : Int, Codable
{
case OpenAiChat = 1
case Comfy = 2
}
public class ApiProviderModel : Codable
{
public var model:String
public var apiModel:String
required public init(){}
}
// @DataContract
public class IdResponse : Codable
{
// @DataMember(Order=1)
public var id:String
// @DataMember(Order=2)
public var responseStatus:ResponseStatus
required public init(){}
}
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 /jsv/reply/CreateApiProvider HTTP/1.1
Host: blazordiffusion.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
apiTypeId: 0,
apiBaseUrl: String,
name: String,
apiKeyVar: String,
apiKey: String,
apiKeyHeader: String,
heartbeatUrl: String,
taskPaths:
{
OpenAiChat: String
},
concurrency: 0,
priority: 0,
enabled: False,
models:
[
{
model: String,
apiModel: String
}
],
selectedModels:
[
String
]
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { id: String, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }