import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class CreateApiProvider : ICreateDb<ApiProvider>
{
@Validate(Validator="GreaterThan(0)")
open var apiTypeId:Int? = null
open var apiBaseUrl:String? = null
@Validate(Validator="NotEmpty")
open var name:String? = null
open var apiKeyVar:String? = null
open var apiKey:String? = null
open var apiKeyHeader:String? = null
open var heartbeatUrl:String? = null
open var taskPaths:HashMap<TaskType,String>? = null
open var concurrency:Int? = null
open var priority:Int? = null
open var enabled:Boolean? = null
open var models:ArrayList<ApiProviderModel>? = null
open var selectedModels:ArrayList<String>? = null
}
enum class TaskType(val value:Int)
{
OpenAiChat(1),
Comfy(2),
}
open class ApiProviderModel
{
open var model:String? = null
open var apiModel:String? = null
}
@DataContract
open class IdResponse
{
@DataMember(Order=1)
open var id:String? = null
@DataMember(Order=2)
open var responseStatus:ResponseStatus? = null
}
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 } } }