// @DataContract
export class QueryBase
{
// @DataMember(Order=1)
public skip?: number;
// @DataMember(Order=2)
public take?: number;
// @DataMember(Order=3)
public orderBy: string;
// @DataMember(Order=4)
public orderByDesc: string;
// @DataMember(Order=5)
public include: string;
// @DataMember(Order=6)
public fields: string;
// @DataMember(Order=7)
public meta: { [index:string]: string; };
public constructor(init?: Partial<QueryBase>) { (Object as any).assign(this, init); }
}
export class QueryDb<T> extends QueryBase
{
public constructor(init?: Partial<QueryDb<T>>) { super(init); (Object as any).assign(this, init); }
}
export class ApiProviderBase
{
public id: number;
public name: string;
public apiKeyVar: string;
public apiKey: string;
public apiKeyHeader: string;
public apiBaseUrl: string;
public heartbeatUrl: string;
public concurrency: number;
public priority: number;
public enabled: boolean;
public offlineDate?: string;
public createdDate: string;
public constructor(init?: Partial<ApiProviderBase>) { (Object as any).assign(this, init); }
}
export class AiProviderBase extends ApiProviderBase
{
public models: string[] = [];
public constructor(init?: Partial<AiProviderBase>) { super(init); (Object as any).assign(this, init); }
}
export enum AiServiceProvider
{
Replicate = 'Replicate',
Comfy = 'Comfy',
OpenAi = 'OpenAi',
}
export class ApiTypeBase
{
public id: number;
public apiBaseUrl: string;
public apiKeyHeader: string;
public name: string;
public website: string;
public icon: string;
public apiModels: { [index:string]: string; } = {};
public provider: AiServiceProvider;
public constructor(init?: Partial<ApiTypeBase>) { (Object as any).assign(this, init); }
}
export class GenerationApiType extends ApiTypeBase
{
public constructor(init?: Partial<GenerationApiType>) { super(init); (Object as any).assign(this, init); }
}
export class GenerationApiProvider extends AiProviderBase
{
// @References("typeof(AiServer.ServiceModel.Types.GenerationApiType)")
public generationApiTypeId: number;
public type: GenerationApiType;
public constructor(init?: Partial<GenerationApiProvider>) { super(init); (Object as any).assign(this, init); }
}
export class QueryGenerationApiProviders extends QueryDb<GenerationApiProvider>
{
public id?: number;
public name: string;
public constructor(init?: Partial<QueryGenerationApiProviders>) { super(init); (Object as any).assign(this, init); }
}
// @DataContract
export class AuditBase
{
// @DataMember(Order=1)
public createdDate: string;
// @DataMember(Order=2)
// @Required()
public createdBy: string;
// @DataMember(Order=3)
public modifiedDate: string;
// @DataMember(Order=4)
// @Required()
public modifiedBy: string;
// @DataMember(Order=5)
public deletedDate?: string;
// @DataMember(Order=6)
public deletedBy: string;
public constructor(init?: Partial<AuditBase>) { (Object as any).assign(this, init); }
}
export class Artifact extends AuditBase
{
public id: number;
// @References("typeof(BlazorDiffusion.ServiceModel.Creative)")
public creativeId: number;
public fileName: string;
public filePath: string;
public contentType: string;
public contentLength: number;
public width: number;
public height: number;
public seed: number;
public prompt: string;
public nsfw?: boolean;
public averageHash?: number;
public perceptualHash?: number;
public differenceHash?: number;
public background?: string;
public lqip?: string;
public quality: number;
public likesCount: number;
public albumsCount: number;
public downloadsCount: number;
public searchCount: number;
public temporalScore: number;
public score: number;
public rank: number;
public refId: string;
public versions: { [index:string]: string; } = {};
public constructor(init?: Partial<Artifact>) { super(init); (Object as any).assign(this, init); }
}
export class ArtifactResult extends Artifact
{
public userPrompt: string;
public artistNames: string[] = [];
public modifierNames: string[] = [];
public primaryArtifactId?: number;
public ownerRef: string;
public similarity?: number;
public constructor(init?: Partial<ArtifactResult>) { super(init); (Object as any).assign(this, init); }
}
// @DataContract
export class QueryResponse<T>
{
// @DataMember(Order=1)
public offset: number;
// @DataMember(Order=2)
public total: number;
// @DataMember(Order=3)
public results: ArtifactResult[];
// @DataMember(Order=4)
public meta: { [index:string]: string; };
// @DataMember(Order=5)
public responseStatus: ResponseStatus;
public constructor(init?: Partial<QueryResponse<T>>) { (Object as any).assign(this, init); }
}
TypeScript QueryGenerationApiProviders 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 /jsv/reply/QueryGenerationApiProviders HTTP/1.1
Host: blazordiffusion.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: 0,
name: String,
skip: 0,
take: 0,
orderBy: String,
orderByDesc: String,
include: String,
fields: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { offset: 0, total: 0, results: [ { generationApiTypeId: 0, type: { id: 0, apiBaseUrl: String, apiKeyHeader: String, name: String, website: String, icon: String, apiModels: { String: String }, provider: Replicate }, models: [ String ], id: 0, name: String, apiKeyVar: String, apiKey: String, apiKeyHeader: String, apiBaseUrl: String, heartbeatUrl: String, concurrency: 0, priority: 0, enabled: False, offlineDate: 0001-01-01, createdDate: 0001-01-01 } ], meta: { String: String }, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }