/* Options: Date: 2026-06-13 00:59:09 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ApiKeyQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } class ApiKeyResponse implements IConvertible { /** * The company the API key belongs to */ // @ApiMember(Description="The company the API key belongs to") String CompanyId = ""; /** * The API key value to send in the x-api-key header */ // @ApiMember(Description="The API key value to send in the x-api-key header") String ApiKey = ""; /** * Whether the key is active */ // @ApiMember(Description="Whether the key is active") bool Active; /** * When the key was created */ // @ApiMember(Description="When the key was created") DateTime CreatedDate = DateTime(0); /** * When the key expires, if ever */ // @ApiMember(Description="When the key expires, if ever") DateTime? ExpiryDate; /** * Contact email registered for the key */ // @ApiMember(Description="Contact email registered for the key") String ContactEmail = ""; /** * Free text notes for the key */ // @ApiMember(Description="Free text notes for the key") String Notes = ""; /** * Comma separated list of IP addresses the key is restricted to, if any */ // @ApiMember(Description="Comma separated list of IP addresses the key is restricted to, if any") String AllowedIpAddresses = ""; ApiKeyResponse({this.CompanyId,this.ApiKey,this.Active,this.CreatedDate,this.ExpiryDate,this.ContactEmail,this.Notes,this.AllowedIpAddresses}); ApiKeyResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ApiKey = json['ApiKey']; Active = json['Active']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); ExpiryDate = JsonConverters.fromJson(json['ExpiryDate'],'DateTime',context!); ContactEmail = json['ContactEmail']; Notes = json['Notes']; AllowedIpAddresses = json['AllowedIpAddresses']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'ApiKey': ApiKey, 'Active': Active, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'ExpiryDate': JsonConverters.toJson(ExpiryDate,'DateTime',context!), 'ContactEmail': ContactEmail, 'Notes': Notes, 'AllowedIpAddresses': AllowedIpAddresses }; getTypeName() => "ApiKeyResponse"; TypeContext? context = _ctx; } class ApiKeyQueryResponse implements IConvertible { /** * The API keys for the company */ // @ApiMember(Description="The API keys for the company") List ApiKeys = []; ResponseStatus ResponseStatus; ApiKeyQueryResponse({this.ApiKeys,this.ResponseStatus}); ApiKeyQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ApiKeys = JsonConverters.fromJson(json['ApiKeys'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'ApiKeys': JsonConverters.toJson(ApiKeys,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "ApiKeyQueryResponse"; TypeContext? context = _ctx; } // @Route("/apikeys", "GET") // @ApiResponse(Description="Returned if the current user is not authenticated", StatusCode=401) // @ApiResponse(Description="Returned if the current user does not have the required role", StatusCode=403) class ApiKeyQuery implements IReturn, ICompany, IConvertible, IGet { /** * The company to list API keys for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored. */ // @ApiMember(Description="The company to list API keys for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored.", ParameterType="query") String? CompanyId; /** * If true, only return keys that are active (not cancelled and not expired). Default is false (return all). */ // @ApiMember(DataType="boolean", Description="If true, only return keys that are active (not cancelled and not expired). Default is false (return all).", ParameterType="query") bool? ActiveOnly; ApiKeyQuery({this.CompanyId,this.ActiveOnly}); ApiKeyQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ActiveOnly = json['ActiveOnly']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'ActiveOnly': ActiveOnly }; createResponse() => ApiKeyQueryResponse(); getResponseTypeName() => "ApiKeyQueryResponse"; getTypeName() => "ApiKeyQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bookmore.com', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'ApiKeyResponse': TypeInfo(TypeOf.Class, create:() => ApiKeyResponse()), 'ApiKeyQueryResponse': TypeInfo(TypeOf.Class, create:() => ApiKeyQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ApiKeyQuery': TypeInfo(TypeOf.Class, create:() => ApiKeyQuery()), });