/* Options: Date: 2026-09-16 17:01:14 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SuperAdminAssistantUsageQuery.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/superadmin/assistant/usage", Verbs="GET") @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privileges to call this service", StatusCode=403) @ValidateRequest(Validator="IsAuthenticated") open class SuperAdminAssistantUsageQuery : IReturn { /** * Filter on company name. Case-insensitive substring match. */ @ApiMember(DataType="string", Description="Filter on company name. Case-insensitive substring match.", ParameterType="query") open var Search:String? = null /** * Return only this company. Takes precedence over Search when both are set. */ @ApiMember(DataType="string", Description="Return only this company. Takes precedence over Search when both are set.", ParameterType="query") open var CompanyId:UUID? = null /** * Number of companies to skip. */ @ApiMember(DataType="integer", Description="Number of companies to skip.", ParameterType="query") open var Skip:Int? = null /** * Number of companies to return. Capped server-side. */ @ApiMember(DataType="integer", Description="Number of companies to return. Capped server-side.", ParameterType="query") open var Take:Int? = null companion object { private val responseType = SuperAdminAssistantUsageQueryResponse::class.java } override fun getResponseType(): Any? = SuperAdminAssistantUsageQuery.responseType } open class SuperAdminAssistantUsageQueryResponse { /** * Number of companies skipped. */ @ApiMember(Description="Number of companies skipped.") open var Offset:Int? = null /** * Total number of companies matching the filter. */ @ApiMember(Description="Total number of companies matching the filter.") open var Total:Int? = null /** * Length of the rolling usage window, in days. */ @ApiMember(Description="Length of the rolling usage window, in days.") open var WindowDays:Int? = null /** * Usage for the requested page of companies. */ @ApiMember(Description="Usage for the requested page of companies.") open var Results:ArrayList = ArrayList() open var ResponseStatus:ResponseStatus? = null } open class SuperAdminAssistantUsage { /** * The company the usage applies to. */ @ApiMember(Description="The company the usage applies to.") open var CompanyId:UUID? = null /** * The company's name. */ @ApiMember(Description="The company's name.") open var CompanyName:String? = null /** * Token budget for the admin portal AI assistant. Null when it could not be read. */ @ApiMember(Description="Token budget for the admin portal AI assistant. Null when it could not be read.") open var AiChat:AssistantUsageMeter? = null /** * Token budget for the public MCP server. Null when it could not be read. */ @ApiMember(Description="Token budget for the public MCP server. Null when it could not be read.") open var Mcp:AssistantUsageMeter? = null } open class AssistantUsageMeter { /** * Tokens consumed within the current rolling window. */ @ApiMember(Description="Tokens consumed within the current rolling window.") open var TokensUsed:Long? = null /** * The company's token limit for the window. Zero or less means no cap is applied. */ @ApiMember(Description="The company's token limit for the window. Zero or less means no cap is applied.") open var TokenLimit:Int? = null /** * Tokens remaining before the limit is reached (never negative). */ @ApiMember(Description="Tokens remaining before the limit is reached (never negative).") open var TokensRemaining:Long? = null /** * Share of the limit consumed, as a percentage. Zero when no cap is applied. */ @ApiMember(Description="Share of the limit consumed, as a percentage. Zero when no cap is applied.") open var PercentUsed:Double? = null /** * True while the company is still below its token limit. */ @ApiMember(Description="True while the company is still below its token limit.") open var IsWithinBudget:Boolean? = null }