From f9aa86b553eb0cad4ff3560035460cd2487abf5a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 2 Feb 2023 09:47:35 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80New=20lib=20version=20=20[CI=20SKIP?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/core/ApiRequestOptions.d.ts | 2 +- dist/core/ApiResult.d.ts | 2 +- dist/core/OpenAPI.d.ts | 6 +++--- dist/core/OpenAPI.js | 2 +- dist/core/request.js | 8 ++++++-- dist/models/Address.d.ts | 2 +- dist/models/AddressCityEmptyError.d.ts | 2 +- dist/models/AddressCountryEmptyError.d.ts | 2 +- dist/models/AddressFirstLineEmptyError.d.ts | 2 +- dist/models/AddressPostalCodeEmptyError.d.ts | 2 +- dist/models/AddressPostalCodeInvalidError.d.ts | 2 +- dist/models/CreateAuth.d.ts | 2 +- dist/models/CreateDistanceDonation.d.ts | 2 +- dist/models/CreateDonation.d.ts | 2 +- dist/models/CreateDonor.d.ts | 2 +- dist/models/CreateFixedDonation.d.ts | 2 +- dist/models/CreateGroupContact.d.ts | 2 +- dist/models/CreateParticipant.d.ts | 2 +- dist/models/CreatePermission.d.ts | 2 +- dist/models/CreateResetToken.d.ts | 2 +- dist/models/CreateRunner.d.ts | 2 +- dist/models/CreateRunnerCard.d.ts | 2 +- dist/models/CreateRunnerGroup.d.ts | 2 +- dist/models/CreateRunnerOrganization.d.ts | 2 +- dist/models/CreateRunnerTeam.d.ts | 2 +- dist/models/CreateScan.d.ts | 2 +- dist/models/CreateScanStation.d.ts | 2 +- .../models/CreateSelfServiceCitizenRunner.d.ts | 2 +- dist/models/CreateSelfServiceRunner.d.ts | 2 +- dist/models/CreateStatsClient.d.ts | 2 +- dist/models/CreateTrack.d.ts | 2 +- dist/models/CreateTrackScan.d.ts | 2 +- dist/models/CreateUser.d.ts | 2 +- dist/models/CreateUserGroup.d.ts | 2 +- dist/models/DistanceDonation.d.ts | 2 +- dist/models/Donation.d.ts | 2 +- dist/models/DonationIdsNotMatchingError.d.ts | 2 +- dist/models/DonationNotFoundError.d.ts | 2 +- dist/models/Donor.d.ts | 2 +- dist/models/DonorHasDonationsError.d.ts | 2 +- dist/models/DonorIdsNotMatchingError.d.ts | 2 +- dist/models/DonorNotFoundError.d.ts | 2 +- .../models/DonorReceiptAddressNeededError.d.ts | 2 +- dist/models/FixedDonation.d.ts | 2 +- dist/models/GroupContact.d.ts | 2 +- .../GroupContactIdsNotMatchingError.d.ts | 2 +- dist/models/GroupContactNotFoundError.d.ts | 2 +- dist/models/GroupNameNeededError.d.ts | 2 +- dist/models/HandleLogout.d.ts | 2 +- dist/models/IllegalJWTError.d.ts | 2 +- dist/models/ImportRunner.d.ts | 2 +- dist/models/InvalidCredentialsError.d.ts | 2 +- dist/models/JwtNotProvidedError.d.ts | 2 +- dist/models/JwtUser.d.ts | 2 +- dist/models/Logout.d.ts | 2 +- dist/models/MailSendingError.d.ts | 2 +- dist/models/NoPermissionError.d.ts | 2 +- dist/models/Participant.d.ts | 2 +- ...asswordMustContainLowercaseLetterError.d.ts | 2 +- .../models/PasswordMustContainNumberError.d.ts | 2 +- ...asswordMustContainUppercaseLetterError.d.ts | 2 +- dist/models/PasswordNeededError.d.ts | 2 +- dist/models/PasswordTooShortError.d.ts | 2 +- dist/models/Permission.d.ts | 2 +- dist/models/PermissionIdsNotMatchingError.d.ts | 2 +- dist/models/PermissionNeedsPrincipalError.d.ts | 2 +- dist/models/PermissionNotFoundError.d.ts | 2 +- dist/models/Principal.d.ts | 2 +- dist/models/PrincipalNotFoundError.d.ts | 2 +- dist/models/PrincipalWrongTypeError.d.ts | 2 +- dist/models/RefreshAuth.d.ts | 2 +- dist/models/RefreshTokenCountInvalidError.d.ts | 2 +- dist/models/ResetAlreadyRequestedError.d.ts | 2 +- dist/models/ResetPassword.d.ts | 2 +- dist/models/ResponseAuth.d.ts | 2 +- dist/models/ResponseDistanceDonation.d.ts | 2 +- dist/models/ResponseDonation.d.ts | 2 +- dist/models/ResponseDonor.d.ts | 2 +- dist/models/ResponseEmpty.d.ts | 2 +- dist/models/ResponseGroupContact.d.ts | 2 +- dist/models/ResponseParticipant.d.ts | 2 +- dist/models/ResponsePermission.d.ts | 2 +- dist/models/ResponsePrincipal.d.ts | 2 +- dist/models/ResponseRunner.d.ts | 2 +- dist/models/ResponseRunnerCard.d.ts | 2 +- dist/models/ResponseRunnerGroup.d.ts | 2 +- dist/models/ResponseRunnerOrganization.d.ts | 2 +- dist/models/ResponseRunnerTeam.d.ts | 2 +- dist/models/ResponseScan.d.ts | 2 +- dist/models/ResponseScanStation.d.ts | 2 +- dist/models/ResponseSelfServiceDonation.d.ts | 2 +- dist/models/ResponseSelfServiceDonor.d.ts | 2 +- .../ResponseSelfServiceOrganisation.d.ts | 2 +- dist/models/ResponseSelfServiceRunner.d.ts | 2 +- dist/models/ResponseSelfServiceScan.d.ts | 2 +- dist/models/ResponseSelfServiceTeam.d.ts | 2 +- dist/models/ResponseStats.d.ts | 2 +- dist/models/ResponseStatsClient.d.ts | 2 +- dist/models/ResponseStatsOrgnisation.d.ts | 2 +- dist/models/ResponseStatsRunner.d.ts | 2 +- dist/models/ResponseStatsTeam.d.ts | 2 +- dist/models/ResponseTrack.d.ts | 2 +- dist/models/ResponseTrackScan.d.ts | 2 +- dist/models/ResponseUser.d.ts | 2 +- dist/models/ResponseUserGroup.d.ts | 2 +- dist/models/ResponseUserGroupPermissions.d.ts | 2 +- dist/models/ResponseUserPermissions.d.ts | 2 +- dist/models/Runner.d.ts | 2 +- dist/models/RunnerCard.d.ts | 2 +- dist/models/RunnerCardHasScansError.d.ts | 2 +- dist/models/RunnerCardIdOutOfRangeError.d.ts | 2 +- dist/models/RunnerCardIdsNotMatchingError.d.ts | 2 +- dist/models/RunnerCardNotFoundError.d.ts | 2 +- dist/models/RunnerEmailNeededError.d.ts | 2 +- dist/models/RunnerGroup.d.ts | 2 +- dist/models/RunnerGroupNeededError.d.ts | 2 +- dist/models/RunnerGroupNotFoundError.d.ts | 2 +- .../RunnerHasDistanceDonationsError.d.ts | 2 +- dist/models/RunnerIdsNotMatchingError.d.ts | 2 +- dist/models/RunnerNotFoundError.d.ts | 2 +- dist/models/RunnerOrganization.d.ts | 2 +- .../RunnerOrganizationHasRunnersError.d.ts | 2 +- .../RunnerOrganizationHasTeamsError.d.ts | 2 +- .../RunnerOrganizationIdsNotMatchingError.d.ts | 2 +- .../RunnerOrganizationNotFoundError.d.ts | 2 +- .../RunnerOrganizationWrongTypeError.d.ts | 2 +- dist/models/RunnerSelfserviceTimeoutError.d.ts | 2 +- dist/models/RunnerTeam.d.ts | 2 +- dist/models/RunnerTeamHasRunnersError.d.ts | 2 +- dist/models/RunnerTeamIdsNotMatchingError.d.ts | 2 +- dist/models/RunnerTeamNeedsParentError.d.ts | 2 +- dist/models/RunnerTeamNotFoundError.d.ts | 2 +- dist/models/Scan.d.ts | 2 +- dist/models/ScanIdsNotMatchingError.d.ts | 2 +- dist/models/ScanNotFoundError.d.ts | 2 +- dist/models/ScanStation.d.ts | 2 +- dist/models/ScanStationHasScansError.d.ts | 2 +- .../models/ScanStationIdsNotMatchingError.d.ts | 2 +- dist/models/ScanStationNotFoundError.d.ts | 2 +- dist/models/StatsClient.d.ts | 2 +- .../models/StatsClientIdsNotMatchingError.d.ts | 2 +- dist/models/StatsClientNotFoundError.d.ts | 2 +- dist/models/Track.d.ts | 2 +- dist/models/TrackHasScanStationsError.d.ts | 2 +- dist/models/TrackIdsNotMatchingError.d.ts | 2 +- .../TrackLapTimeCantBeNegativeError.d.ts | 2 +- dist/models/TrackNotFoundError.d.ts | 2 +- dist/models/TrackScan.d.ts | 2 +- dist/models/UpdateDistanceDonation.d.ts | 2 +- dist/models/UpdateDonation.d.ts | 2 +- dist/models/UpdateDonor.d.ts | 2 +- dist/models/UpdateFixedDonation.d.ts | 2 +- dist/models/UpdateGroupContact.d.ts | 2 +- dist/models/UpdatePermission.d.ts | 2 +- dist/models/UpdateRunner.d.ts | 2 +- dist/models/UpdateRunnerCard.d.ts | 2 +- dist/models/UpdateRunnerOrganization.d.ts | 2 +- dist/models/UpdateRunnerTeam.d.ts | 2 +- dist/models/UpdateScan.d.ts | 2 +- dist/models/UpdateScanStation.d.ts | 2 +- dist/models/UpdateTrack.d.ts | 2 +- dist/models/UpdateTrackScan.d.ts | 2 +- dist/models/UpdateUser.d.ts | 2 +- dist/models/UpdateUserGroup.d.ts | 2 +- dist/models/User.d.ts | 2 +- dist/models/UserAction.d.ts | 2 +- dist/models/UserDeletionNotConfirmedError.d.ts | 2 +- dist/models/UserDisabledError.d.ts | 2 +- dist/models/UserEmailNeededError.d.ts | 2 +- dist/models/UserGroup.d.ts | 2 +- dist/models/UserGroupIdsNotMatchingError.d.ts | 2 +- dist/models/UserGroupNotFoundError.d.ts | 2 +- dist/models/UserIdsNotMatchingError.d.ts | 2 +- ...rNonexistantOrRefreshtokenInvalidError.d.ts | 2 +- dist/models/UserNotFoundError.d.ts | 2 +- ...otFoundOrRefreshTokenCountInvalidError.d.ts | 2 +- .../UsernameContainsIllegalCharacterError.d.ts | 2 +- dist/models/UsernameOrEmailNeededError.d.ts | 2 +- dist/services/AuthService.js | 10 +++++----- dist/services/DonationService.js | 14 +++++++------- dist/services/DonorService.js | 10 +++++----- dist/services/GroupContactService.js | 10 +++++----- dist/services/ImportService.js | 12 ++++++------ dist/services/MeService.js | 8 ++++---- dist/services/PermissionService.js | 10 +++++----- dist/services/RunnerCardService.js | 12 ++++++------ dist/services/RunnerOrganizationService.js | 12 ++++++------ dist/services/RunnerSelfService.js | 16 ++++++++-------- dist/services/RunnerService.js | 12 ++++++------ dist/services/RunnerTeamService.js | 12 ++++++------ dist/services/ScanService.js | 14 +++++++------- dist/services/ScanStationService.js | 10 +++++----- dist/services/StatsClientService.js | 8 ++++---- dist/services/StatsService.js | 18 +++++++++--------- dist/services/StatusService.js | 4 ++-- dist/services/TrackService.js | 10 +++++----- dist/services/UserGroupService.js | 12 ++++++------ dist/services/UserService.js | 12 ++++++------ openapi.json | 2 +- 199 files changed, 299 insertions(+), 295 deletions(-) diff --git a/dist/core/ApiRequestOptions.d.ts b/dist/core/ApiRequestOptions.d.ts index 982050d..6e1fcb7 100644 --- a/dist/core/ApiRequestOptions.d.ts +++ b/dist/core/ApiRequestOptions.d.ts @@ -1,4 +1,4 @@ -export declare type ApiRequestOptions = { +export type ApiRequestOptions = { readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; readonly path: string; readonly cookies?: Record; diff --git a/dist/core/ApiResult.d.ts b/dist/core/ApiResult.d.ts index e9ed2c2..5717fec 100644 --- a/dist/core/ApiResult.d.ts +++ b/dist/core/ApiResult.d.ts @@ -1,4 +1,4 @@ -export declare type ApiResult = { +export type ApiResult = { readonly url: string; readonly ok: boolean; readonly status: number; diff --git a/dist/core/OpenAPI.d.ts b/dist/core/OpenAPI.d.ts index e1df9ae..b2c9438 100644 --- a/dist/core/OpenAPI.d.ts +++ b/dist/core/OpenAPI.d.ts @@ -1,6 +1,6 @@ -declare type Resolver = () => Promise; -declare type Headers = Record; -declare type Config = { +type Resolver = () => Promise; +type Headers = Record; +type Config = { BASE: string; VERSION: string; WITH_CREDENTIALS: boolean; diff --git a/dist/core/OpenAPI.js b/dist/core/OpenAPI.js index ec51227..d776645 100644 --- a/dist/core/OpenAPI.js +++ b/dist/core/OpenAPI.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenAPI = void 0; exports.OpenAPI = { BASE: '', - VERSION: '0.11.1', + VERSION: '0.12.0', WITH_CREDENTIALS: false, TOKEN: undefined, USERNAME: undefined, diff --git a/dist/core/request.js b/dist/core/request.js index a561797..b209e9a 100644 --- a/dist/core/request.js +++ b/dist/core/request.js @@ -1,7 +1,11 @@ "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,7 @@ async function sendRequest(options, url) { headers: await getHeaders(options), body: getRequestBody(options), }; - return await node_fetch_1.default(url, request); + return await (0, node_fetch_1.default)(url, request); } function getResponseHeader(response, responseHeader) { if (responseHeader) { diff --git a/dist/models/Address.d.ts b/dist/models/Address.d.ts index 27603fe..9229fef 100644 --- a/dist/models/Address.d.ts +++ b/dist/models/Address.d.ts @@ -1,4 +1,4 @@ -export declare type Address = { +export type Address = { address1: string; address2: string; postalcode: string; diff --git a/dist/models/AddressCityEmptyError.d.ts b/dist/models/AddressCityEmptyError.d.ts index 1ca9505..9d06058 100644 --- a/dist/models/AddressCityEmptyError.d.ts +++ b/dist/models/AddressCityEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressCityEmptyError = { +export type AddressCityEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressCountryEmptyError.d.ts b/dist/models/AddressCountryEmptyError.d.ts index 5f92e21..54e30ee 100644 --- a/dist/models/AddressCountryEmptyError.d.ts +++ b/dist/models/AddressCountryEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressCountryEmptyError = { +export type AddressCountryEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressFirstLineEmptyError.d.ts b/dist/models/AddressFirstLineEmptyError.d.ts index 80d3b9d..b575d30 100644 --- a/dist/models/AddressFirstLineEmptyError.d.ts +++ b/dist/models/AddressFirstLineEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressFirstLineEmptyError = { +export type AddressFirstLineEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressPostalCodeEmptyError.d.ts b/dist/models/AddressPostalCodeEmptyError.d.ts index 1cb15f3..55cd1f4 100644 --- a/dist/models/AddressPostalCodeEmptyError.d.ts +++ b/dist/models/AddressPostalCodeEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressPostalCodeEmptyError = { +export type AddressPostalCodeEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressPostalCodeInvalidError.d.ts b/dist/models/AddressPostalCodeInvalidError.d.ts index b5f7daa..59d7fa6 100644 --- a/dist/models/AddressPostalCodeInvalidError.d.ts +++ b/dist/models/AddressPostalCodeInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressPostalCodeInvalidError = { +export type AddressPostalCodeInvalidError = { name: string; message: string; }; diff --git a/dist/models/CreateAuth.d.ts b/dist/models/CreateAuth.d.ts index be72ec6..4f8e17a 100644 --- a/dist/models/CreateAuth.d.ts +++ b/dist/models/CreateAuth.d.ts @@ -1,4 +1,4 @@ -export declare type CreateAuth = { +export type CreateAuth = { username?: string; email?: string; password: string; diff --git a/dist/models/CreateDistanceDonation.d.ts b/dist/models/CreateDistanceDonation.d.ts index 5a04cdb..608f867 100644 --- a/dist/models/CreateDistanceDonation.d.ts +++ b/dist/models/CreateDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDistanceDonation = { +export type CreateDistanceDonation = { runner: number; amountPerDistance: number; donor: number; diff --git a/dist/models/CreateDonation.d.ts b/dist/models/CreateDonation.d.ts index 49f1171..1a2bda4 100644 --- a/dist/models/CreateDonation.d.ts +++ b/dist/models/CreateDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDonation = { +export type CreateDonation = { donor: number; paidAmount?: number; }; diff --git a/dist/models/CreateDonor.d.ts b/dist/models/CreateDonor.d.ts index 36c229e..7a6ad13 100644 --- a/dist/models/CreateDonor.d.ts +++ b/dist/models/CreateDonor.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDonor = { +export type CreateDonor = { receiptNeeded?: boolean; firstname: string; middlename?: string; diff --git a/dist/models/CreateFixedDonation.d.ts b/dist/models/CreateFixedDonation.d.ts index 33fd4a8..80fe9fe 100644 --- a/dist/models/CreateFixedDonation.d.ts +++ b/dist/models/CreateFixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateFixedDonation = { +export type CreateFixedDonation = { amount: number; donor: number; paidAmount?: number; diff --git a/dist/models/CreateGroupContact.d.ts b/dist/models/CreateGroupContact.d.ts index 3b4e086..4323f94 100644 --- a/dist/models/CreateGroupContact.d.ts +++ b/dist/models/CreateGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type CreateGroupContact = { +export type CreateGroupContact = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreateParticipant.d.ts b/dist/models/CreateParticipant.d.ts index a774f41..df7facf 100644 --- a/dist/models/CreateParticipant.d.ts +++ b/dist/models/CreateParticipant.d.ts @@ -1,4 +1,4 @@ -export declare type CreateParticipant = { +export type CreateParticipant = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreatePermission.d.ts b/dist/models/CreatePermission.d.ts index ba24cbe..ca013cf 100644 --- a/dist/models/CreatePermission.d.ts +++ b/dist/models/CreatePermission.d.ts @@ -1,4 +1,4 @@ -export declare type CreatePermission = { +export type CreatePermission = { principal: number; target: CreatePermission.target; action: CreatePermission.action; diff --git a/dist/models/CreateResetToken.d.ts b/dist/models/CreateResetToken.d.ts index d42f15d..ce596b5 100644 --- a/dist/models/CreateResetToken.d.ts +++ b/dist/models/CreateResetToken.d.ts @@ -1,3 +1,3 @@ -export declare type CreateResetToken = { +export type CreateResetToken = { email: string; }; diff --git a/dist/models/CreateRunner.d.ts b/dist/models/CreateRunner.d.ts index 243b300..8202b10 100644 --- a/dist/models/CreateRunner.d.ts +++ b/dist/models/CreateRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunner = { +export type CreateRunner = { group: number; firstname: string; middlename?: string; diff --git a/dist/models/CreateRunnerCard.d.ts b/dist/models/CreateRunnerCard.d.ts index 0ad32c8..b2b397e 100644 --- a/dist/models/CreateRunnerCard.d.ts +++ b/dist/models/CreateRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerCard = { +export type CreateRunnerCard = { runner?: number; enabled: boolean; }; diff --git a/dist/models/CreateRunnerGroup.d.ts b/dist/models/CreateRunnerGroup.d.ts index 1eb3d0f..5bc6594 100644 --- a/dist/models/CreateRunnerGroup.d.ts +++ b/dist/models/CreateRunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerGroup = { +export type CreateRunnerGroup = { name: string; contact?: number; }; diff --git a/dist/models/CreateRunnerOrganization.d.ts b/dist/models/CreateRunnerOrganization.d.ts index 90e3712..c31cd8e 100644 --- a/dist/models/CreateRunnerOrganization.d.ts +++ b/dist/models/CreateRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerOrganization = { +export type CreateRunnerOrganization = { address?: any; registrationEnabled?: boolean; name: string; diff --git a/dist/models/CreateRunnerTeam.d.ts b/dist/models/CreateRunnerTeam.d.ts index afe890c..fa9d106 100644 --- a/dist/models/CreateRunnerTeam.d.ts +++ b/dist/models/CreateRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerTeam = { +export type CreateRunnerTeam = { parentGroup: number; name: string; contact?: number; diff --git a/dist/models/CreateScan.d.ts b/dist/models/CreateScan.d.ts index daca06c..ae1b71a 100644 --- a/dist/models/CreateScan.d.ts +++ b/dist/models/CreateScan.d.ts @@ -1,4 +1,4 @@ -export declare type CreateScan = { +export type CreateScan = { runner: number; valid?: boolean; distance: number; diff --git a/dist/models/CreateScanStation.d.ts b/dist/models/CreateScanStation.d.ts index f185f10..1e03a40 100644 --- a/dist/models/CreateScanStation.d.ts +++ b/dist/models/CreateScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateScanStation = { +export type CreateScanStation = { description?: string; track: number; enabled?: boolean; diff --git a/dist/models/CreateSelfServiceCitizenRunner.d.ts b/dist/models/CreateSelfServiceCitizenRunner.d.ts index 94056ed..a39ff42 100644 --- a/dist/models/CreateSelfServiceCitizenRunner.d.ts +++ b/dist/models/CreateSelfServiceCitizenRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateSelfServiceCitizenRunner = { +export type CreateSelfServiceCitizenRunner = { email?: string; firstname: string; middlename?: string; diff --git a/dist/models/CreateSelfServiceRunner.d.ts b/dist/models/CreateSelfServiceRunner.d.ts index 8f6e8c1..0b1cf93 100644 --- a/dist/models/CreateSelfServiceRunner.d.ts +++ b/dist/models/CreateSelfServiceRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateSelfServiceRunner = { +export type CreateSelfServiceRunner = { team?: number; firstname: string; middlename?: string; diff --git a/dist/models/CreateStatsClient.d.ts b/dist/models/CreateStatsClient.d.ts index 06f223c..44f6248 100644 --- a/dist/models/CreateStatsClient.d.ts +++ b/dist/models/CreateStatsClient.d.ts @@ -1,3 +1,3 @@ -export declare type CreateStatsClient = { +export type CreateStatsClient = { description?: string; }; diff --git a/dist/models/CreateTrack.d.ts b/dist/models/CreateTrack.d.ts index 4384779..b2acba5 100644 --- a/dist/models/CreateTrack.d.ts +++ b/dist/models/CreateTrack.d.ts @@ -1,4 +1,4 @@ -export declare type CreateTrack = { +export type CreateTrack = { name: string; distance: number; minimumLapTime?: number; diff --git a/dist/models/CreateTrackScan.d.ts b/dist/models/CreateTrackScan.d.ts index b15c766..db1f679 100644 --- a/dist/models/CreateTrackScan.d.ts +++ b/dist/models/CreateTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type CreateTrackScan = { +export type CreateTrackScan = { card: number; station?: number; }; diff --git a/dist/models/CreateUser.d.ts b/dist/models/CreateUser.d.ts index a9068aa..f8198f2 100644 --- a/dist/models/CreateUser.d.ts +++ b/dist/models/CreateUser.d.ts @@ -1,4 +1,4 @@ -export declare type CreateUser = { +export type CreateUser = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreateUserGroup.d.ts b/dist/models/CreateUserGroup.d.ts index 9e9788a..041af32 100644 --- a/dist/models/CreateUserGroup.d.ts +++ b/dist/models/CreateUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type CreateUserGroup = { +export type CreateUserGroup = { name: string; description?: string; }; diff --git a/dist/models/DistanceDonation.d.ts b/dist/models/DistanceDonation.d.ts index 6e582a4..e4ab41b 100644 --- a/dist/models/DistanceDonation.d.ts +++ b/dist/models/DistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type DistanceDonation = { +export type DistanceDonation = { runner: string; amountPerDistance: number; id: number; diff --git a/dist/models/Donation.d.ts b/dist/models/Donation.d.ts index f8a9426..1aaf0c2 100644 --- a/dist/models/Donation.d.ts +++ b/dist/models/Donation.d.ts @@ -1,4 +1,4 @@ -export declare type Donation = { +export type Donation = { id: number; donor: string; paidAmount: number; diff --git a/dist/models/DonationIdsNotMatchingError.d.ts b/dist/models/DonationIdsNotMatchingError.d.ts index 30fa1d9..7314873 100644 --- a/dist/models/DonationIdsNotMatchingError.d.ts +++ b/dist/models/DonationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type DonationIdsNotMatchingError = { +export type DonationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/DonationNotFoundError.d.ts b/dist/models/DonationNotFoundError.d.ts index ec0e20d..b179f74 100644 --- a/dist/models/DonationNotFoundError.d.ts +++ b/dist/models/DonationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type DonationNotFoundError = { +export type DonationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Donor.d.ts b/dist/models/Donor.d.ts index 5f399fa..1218c36 100644 --- a/dist/models/Donor.d.ts +++ b/dist/models/Donor.d.ts @@ -1,4 +1,4 @@ -export declare type Donor = { +export type Donor = { receiptNeeded: boolean; donationAmount: number; paidDonationAmount: number; diff --git a/dist/models/DonorHasDonationsError.d.ts b/dist/models/DonorHasDonationsError.d.ts index 5c2aa1d..8679ee2 100644 --- a/dist/models/DonorHasDonationsError.d.ts +++ b/dist/models/DonorHasDonationsError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorHasDonationsError = { +export type DonorHasDonationsError = { name: string; message: string; }; diff --git a/dist/models/DonorIdsNotMatchingError.d.ts b/dist/models/DonorIdsNotMatchingError.d.ts index 5eaea43..e7b1a28 100644 --- a/dist/models/DonorIdsNotMatchingError.d.ts +++ b/dist/models/DonorIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorIdsNotMatchingError = { +export type DonorIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/DonorNotFoundError.d.ts b/dist/models/DonorNotFoundError.d.ts index 34ca85b..5b3873f 100644 --- a/dist/models/DonorNotFoundError.d.ts +++ b/dist/models/DonorNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorNotFoundError = { +export type DonorNotFoundError = { name: string; message: string; }; diff --git a/dist/models/DonorReceiptAddressNeededError.d.ts b/dist/models/DonorReceiptAddressNeededError.d.ts index bcd6e3e..1cc2205 100644 --- a/dist/models/DonorReceiptAddressNeededError.d.ts +++ b/dist/models/DonorReceiptAddressNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorReceiptAddressNeededError = { +export type DonorReceiptAddressNeededError = { name: string; message: string; }; diff --git a/dist/models/FixedDonation.d.ts b/dist/models/FixedDonation.d.ts index 72c351b..c391962 100644 --- a/dist/models/FixedDonation.d.ts +++ b/dist/models/FixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type FixedDonation = { +export type FixedDonation = { _amount: number; amount: number; id: number; diff --git a/dist/models/GroupContact.d.ts b/dist/models/GroupContact.d.ts index 4cd2bfc..7c39592 100644 --- a/dist/models/GroupContact.d.ts +++ b/dist/models/GroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContact = { +export type GroupContact = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/GroupContactIdsNotMatchingError.d.ts b/dist/models/GroupContactIdsNotMatchingError.d.ts index 83b171e..ff5640b 100644 --- a/dist/models/GroupContactIdsNotMatchingError.d.ts +++ b/dist/models/GroupContactIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContactIdsNotMatchingError = { +export type GroupContactIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/GroupContactNotFoundError.d.ts b/dist/models/GroupContactNotFoundError.d.ts index 5eb718c..47623a8 100644 --- a/dist/models/GroupContactNotFoundError.d.ts +++ b/dist/models/GroupContactNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContactNotFoundError = { +export type GroupContactNotFoundError = { name: string; message: string; }; diff --git a/dist/models/GroupNameNeededError.d.ts b/dist/models/GroupNameNeededError.d.ts index 6e6954c..0eb2d24 100644 --- a/dist/models/GroupNameNeededError.d.ts +++ b/dist/models/GroupNameNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupNameNeededError = { +export type GroupNameNeededError = { name: string; message: string; }; diff --git a/dist/models/HandleLogout.d.ts b/dist/models/HandleLogout.d.ts index e9cf7c8..6e58ccb 100644 --- a/dist/models/HandleLogout.d.ts +++ b/dist/models/HandleLogout.d.ts @@ -1,3 +1,3 @@ -export declare type HandleLogout = { +export type HandleLogout = { token?: string; }; diff --git a/dist/models/IllegalJWTError.d.ts b/dist/models/IllegalJWTError.d.ts index b2724ae..73a5c17 100644 --- a/dist/models/IllegalJWTError.d.ts +++ b/dist/models/IllegalJWTError.d.ts @@ -1,4 +1,4 @@ -export declare type IllegalJWTError = { +export type IllegalJWTError = { name: string; message: string; }; diff --git a/dist/models/ImportRunner.d.ts b/dist/models/ImportRunner.d.ts index 8bd356b..359fee4 100644 --- a/dist/models/ImportRunner.d.ts +++ b/dist/models/ImportRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ImportRunner = { +export type ImportRunner = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/InvalidCredentialsError.d.ts b/dist/models/InvalidCredentialsError.d.ts index c543825..3ba90f3 100644 --- a/dist/models/InvalidCredentialsError.d.ts +++ b/dist/models/InvalidCredentialsError.d.ts @@ -1,4 +1,4 @@ -export declare type InvalidCredentialsError = { +export type InvalidCredentialsError = { name: string; message: string; }; diff --git a/dist/models/JwtNotProvidedError.d.ts b/dist/models/JwtNotProvidedError.d.ts index 8f145f6..3d80e36 100644 --- a/dist/models/JwtNotProvidedError.d.ts +++ b/dist/models/JwtNotProvidedError.d.ts @@ -1,4 +1,4 @@ -export declare type JwtNotProvidedError = { +export type JwtNotProvidedError = { name: string; message: string; }; diff --git a/dist/models/JwtUser.d.ts b/dist/models/JwtUser.d.ts index cf3405b..34eabb3 100644 --- a/dist/models/JwtUser.d.ts +++ b/dist/models/JwtUser.d.ts @@ -1,4 +1,4 @@ -export declare type JwtUser = { +export type JwtUser = { id: number; uuid: string; email?: string; diff --git a/dist/models/Logout.d.ts b/dist/models/Logout.d.ts index ea7adfa..c20ed66 100644 --- a/dist/models/Logout.d.ts +++ b/dist/models/Logout.d.ts @@ -1,3 +1,3 @@ -export declare type Logout = { +export type Logout = { timestamp: string; }; diff --git a/dist/models/MailSendingError.d.ts b/dist/models/MailSendingError.d.ts index d53a8df..e1824d4 100644 --- a/dist/models/MailSendingError.d.ts +++ b/dist/models/MailSendingError.d.ts @@ -1,4 +1,4 @@ -export declare type MailSendingError = { +export type MailSendingError = { name: string; message: string; }; diff --git a/dist/models/NoPermissionError.d.ts b/dist/models/NoPermissionError.d.ts index f271a5d..4885f0b 100644 --- a/dist/models/NoPermissionError.d.ts +++ b/dist/models/NoPermissionError.d.ts @@ -1,4 +1,4 @@ -export declare type NoPermissionError = { +export type NoPermissionError = { name: string; message: string; }; diff --git a/dist/models/Participant.d.ts b/dist/models/Participant.d.ts index 1beca73..4d266a5 100644 --- a/dist/models/Participant.d.ts +++ b/dist/models/Participant.d.ts @@ -1,4 +1,4 @@ -export declare type Participant = { +export type Participant = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/PasswordMustContainLowercaseLetterError.d.ts b/dist/models/PasswordMustContainLowercaseLetterError.d.ts index d691aaa..37051a8 100644 --- a/dist/models/PasswordMustContainLowercaseLetterError.d.ts +++ b/dist/models/PasswordMustContainLowercaseLetterError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainLowercaseLetterError = { +export type PasswordMustContainLowercaseLetterError = { name: string; message: string; }; diff --git a/dist/models/PasswordMustContainNumberError.d.ts b/dist/models/PasswordMustContainNumberError.d.ts index 2a145fe..cc5a60b 100644 --- a/dist/models/PasswordMustContainNumberError.d.ts +++ b/dist/models/PasswordMustContainNumberError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainNumberError = { +export type PasswordMustContainNumberError = { name: string; message: string; }; diff --git a/dist/models/PasswordMustContainUppercaseLetterError.d.ts b/dist/models/PasswordMustContainUppercaseLetterError.d.ts index a98bc54..2899e42 100644 --- a/dist/models/PasswordMustContainUppercaseLetterError.d.ts +++ b/dist/models/PasswordMustContainUppercaseLetterError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainUppercaseLetterError = { +export type PasswordMustContainUppercaseLetterError = { name: string; message: string; }; diff --git a/dist/models/PasswordNeededError.d.ts b/dist/models/PasswordNeededError.d.ts index 122a59d..cef0e95 100644 --- a/dist/models/PasswordNeededError.d.ts +++ b/dist/models/PasswordNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordNeededError = { +export type PasswordNeededError = { name: string; message: string; }; diff --git a/dist/models/PasswordTooShortError.d.ts b/dist/models/PasswordTooShortError.d.ts index 12cc40e..c2ea90d 100644 --- a/dist/models/PasswordTooShortError.d.ts +++ b/dist/models/PasswordTooShortError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordTooShortError = { +export type PasswordTooShortError = { name: string; message: string; }; diff --git a/dist/models/Permission.d.ts b/dist/models/Permission.d.ts index 039297a..5ad4ddb 100644 --- a/dist/models/Permission.d.ts +++ b/dist/models/Permission.d.ts @@ -1,4 +1,4 @@ -export declare type Permission = { +export type Permission = { id: number; target: Permission.target; action: Permission.action; diff --git a/dist/models/PermissionIdsNotMatchingError.d.ts b/dist/models/PermissionIdsNotMatchingError.d.ts index 8f35772..0cbf6e9 100644 --- a/dist/models/PermissionIdsNotMatchingError.d.ts +++ b/dist/models/PermissionIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionIdsNotMatchingError = { +export type PermissionIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/PermissionNeedsPrincipalError.d.ts b/dist/models/PermissionNeedsPrincipalError.d.ts index d5faa38..1c0e0e2 100644 --- a/dist/models/PermissionNeedsPrincipalError.d.ts +++ b/dist/models/PermissionNeedsPrincipalError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionNeedsPrincipalError = { +export type PermissionNeedsPrincipalError = { name: string; message: string; }; diff --git a/dist/models/PermissionNotFoundError.d.ts b/dist/models/PermissionNotFoundError.d.ts index 43509a0..04e8977 100644 --- a/dist/models/PermissionNotFoundError.d.ts +++ b/dist/models/PermissionNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionNotFoundError = { +export type PermissionNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Principal.d.ts b/dist/models/Principal.d.ts index 400a954..48946d1 100644 --- a/dist/models/Principal.d.ts +++ b/dist/models/Principal.d.ts @@ -1,3 +1,3 @@ -export declare type Principal = { +export type Principal = { id: number; }; diff --git a/dist/models/PrincipalNotFoundError.d.ts b/dist/models/PrincipalNotFoundError.d.ts index 7879adb..310e13c 100644 --- a/dist/models/PrincipalNotFoundError.d.ts +++ b/dist/models/PrincipalNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type PrincipalNotFoundError = { +export type PrincipalNotFoundError = { name: string; message: string; }; diff --git a/dist/models/PrincipalWrongTypeError.d.ts b/dist/models/PrincipalWrongTypeError.d.ts index 72f0e6c..d7a9b78 100644 --- a/dist/models/PrincipalWrongTypeError.d.ts +++ b/dist/models/PrincipalWrongTypeError.d.ts @@ -1,4 +1,4 @@ -export declare type PrincipalWrongTypeError = { +export type PrincipalWrongTypeError = { name: string; message: string; }; diff --git a/dist/models/RefreshAuth.d.ts b/dist/models/RefreshAuth.d.ts index a53922a..2b9cf8f 100644 --- a/dist/models/RefreshAuth.d.ts +++ b/dist/models/RefreshAuth.d.ts @@ -1,3 +1,3 @@ -export declare type RefreshAuth = { +export type RefreshAuth = { token?: string; }; diff --git a/dist/models/RefreshTokenCountInvalidError.d.ts b/dist/models/RefreshTokenCountInvalidError.d.ts index bb15adf..a2b37b1 100644 --- a/dist/models/RefreshTokenCountInvalidError.d.ts +++ b/dist/models/RefreshTokenCountInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type RefreshTokenCountInvalidError = { +export type RefreshTokenCountInvalidError = { name: string; message: string; }; diff --git a/dist/models/ResetAlreadyRequestedError.d.ts b/dist/models/ResetAlreadyRequestedError.d.ts index 1487dc9..de92438 100644 --- a/dist/models/ResetAlreadyRequestedError.d.ts +++ b/dist/models/ResetAlreadyRequestedError.d.ts @@ -1,4 +1,4 @@ -export declare type ResetAlreadyRequestedError = { +export type ResetAlreadyRequestedError = { name: string; message: string; }; diff --git a/dist/models/ResetPassword.d.ts b/dist/models/ResetPassword.d.ts index 759fc99..be4b9c0 100644 --- a/dist/models/ResetPassword.d.ts +++ b/dist/models/ResetPassword.d.ts @@ -1,4 +1,4 @@ -export declare type ResetPassword = { +export type ResetPassword = { resetToken?: string; password: string; }; diff --git a/dist/models/ResponseAuth.d.ts b/dist/models/ResponseAuth.d.ts index cff1da0..c3764a7 100644 --- a/dist/models/ResponseAuth.d.ts +++ b/dist/models/ResponseAuth.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseAuth = { +export type ResponseAuth = { access_token: string; refresh_token: string; access_token_expires_at: number; diff --git a/dist/models/ResponseDistanceDonation.d.ts b/dist/models/ResponseDistanceDonation.d.ts index 57de8d4..09374ec 100644 --- a/dist/models/ResponseDistanceDonation.d.ts +++ b/dist/models/ResponseDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDistanceDonation = { +export type ResponseDistanceDonation = { runner: any; amountPerDistance: number; id: number; diff --git a/dist/models/ResponseDonation.d.ts b/dist/models/ResponseDonation.d.ts index ad544df..46efa3a 100644 --- a/dist/models/ResponseDonation.d.ts +++ b/dist/models/ResponseDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDonation = { +export type ResponseDonation = { id: number; donor: string; amount: number; diff --git a/dist/models/ResponseDonor.d.ts b/dist/models/ResponseDonor.d.ts index b26f21c..7e43fbb 100644 --- a/dist/models/ResponseDonor.d.ts +++ b/dist/models/ResponseDonor.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDonor = { +export type ResponseDonor = { receiptNeeded: boolean; donationAmount: number; paidDonationAmount: number; diff --git a/dist/models/ResponseEmpty.d.ts b/dist/models/ResponseEmpty.d.ts index e80f56c..43fa4be 100644 --- a/dist/models/ResponseEmpty.d.ts +++ b/dist/models/ResponseEmpty.d.ts @@ -1,3 +1,3 @@ -export declare type ResponseEmpty = { +export type ResponseEmpty = { response: string; }; diff --git a/dist/models/ResponseGroupContact.d.ts b/dist/models/ResponseGroupContact.d.ts index d3ddaf6..e14fc50 100644 --- a/dist/models/ResponseGroupContact.d.ts +++ b/dist/models/ResponseGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseGroupContact = { +export type ResponseGroupContact = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseParticipant.d.ts b/dist/models/ResponseParticipant.d.ts index 33208b6..88af700 100644 --- a/dist/models/ResponseParticipant.d.ts +++ b/dist/models/ResponseParticipant.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseParticipant = { +export type ResponseParticipant = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponsePermission.d.ts b/dist/models/ResponsePermission.d.ts index e09dac7..92ee23f 100644 --- a/dist/models/ResponsePermission.d.ts +++ b/dist/models/ResponsePermission.d.ts @@ -1,4 +1,4 @@ -export declare type ResponsePermission = { +export type ResponsePermission = { id: number; principal: any; target: ResponsePermission.target; diff --git a/dist/models/ResponsePrincipal.d.ts b/dist/models/ResponsePrincipal.d.ts index 1d8f4f1..cf2368e 100644 --- a/dist/models/ResponsePrincipal.d.ts +++ b/dist/models/ResponsePrincipal.d.ts @@ -1,3 +1,3 @@ -export declare type ResponsePrincipal = { +export type ResponsePrincipal = { id: number; }; diff --git a/dist/models/ResponseRunner.d.ts b/dist/models/ResponseRunner.d.ts index 380d751..2f904d9 100644 --- a/dist/models/ResponseRunner.d.ts +++ b/dist/models/ResponseRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunner = { +export type ResponseRunner = { distance: number; group: any; id: number; diff --git a/dist/models/ResponseRunnerCard.d.ts b/dist/models/ResponseRunnerCard.d.ts index c53f208..7676363 100644 --- a/dist/models/ResponseRunnerCard.d.ts +++ b/dist/models/ResponseRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerCard = { +export type ResponseRunnerCard = { id: number; runner: any; code: string; diff --git a/dist/models/ResponseRunnerGroup.d.ts b/dist/models/ResponseRunnerGroup.d.ts index afd57b2..301fcbe 100644 --- a/dist/models/ResponseRunnerGroup.d.ts +++ b/dist/models/ResponseRunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerGroup = { +export type ResponseRunnerGroup = { id: number; name: string; contact?: any; diff --git a/dist/models/ResponseRunnerOrganization.d.ts b/dist/models/ResponseRunnerOrganization.d.ts index ed20d48..3062eeb 100644 --- a/dist/models/ResponseRunnerOrganization.d.ts +++ b/dist/models/ResponseRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerOrganization = { +export type ResponseRunnerOrganization = { address?: any; teams: Array; registrationKey?: string; diff --git a/dist/models/ResponseRunnerTeam.d.ts b/dist/models/ResponseRunnerTeam.d.ts index 5c28c6e..e2db0fd 100644 --- a/dist/models/ResponseRunnerTeam.d.ts +++ b/dist/models/ResponseRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerTeam = { +export type ResponseRunnerTeam = { parentGroup: any; id: number; name: string; diff --git a/dist/models/ResponseScan.d.ts b/dist/models/ResponseScan.d.ts index 9e3a83a..3851b57 100644 --- a/dist/models/ResponseScan.d.ts +++ b/dist/models/ResponseScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseScan = { +export type ResponseScan = { id: number; runner: string; valid: boolean; diff --git a/dist/models/ResponseScanStation.d.ts b/dist/models/ResponseScanStation.d.ts index 79d7231..e529f5c 100644 --- a/dist/models/ResponseScanStation.d.ts +++ b/dist/models/ResponseScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseScanStation = { +export type ResponseScanStation = { id: number; description?: string; key?: string; diff --git a/dist/models/ResponseSelfServiceDonation.d.ts b/dist/models/ResponseSelfServiceDonation.d.ts index e794c9e..e1b56ea 100644 --- a/dist/models/ResponseSelfServiceDonation.d.ts +++ b/dist/models/ResponseSelfServiceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceDonation = { +export type ResponseSelfServiceDonation = { donor: string; amount: number; amountPerDistance: number; diff --git a/dist/models/ResponseSelfServiceDonor.d.ts b/dist/models/ResponseSelfServiceDonor.d.ts index 4437161..abf0a9b 100644 --- a/dist/models/ResponseSelfServiceDonor.d.ts +++ b/dist/models/ResponseSelfServiceDonor.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceDonor = { +export type ResponseSelfServiceDonor = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseSelfServiceOrganisation.d.ts b/dist/models/ResponseSelfServiceOrganisation.d.ts index 6ac188c..4e0eacc 100644 --- a/dist/models/ResponseSelfServiceOrganisation.d.ts +++ b/dist/models/ResponseSelfServiceOrganisation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceOrganisation = { +export type ResponseSelfServiceOrganisation = { name: string; teams: Array; }; diff --git a/dist/models/ResponseSelfServiceRunner.d.ts b/dist/models/ResponseSelfServiceRunner.d.ts index e241d3f..e2d93da 100644 --- a/dist/models/ResponseSelfServiceRunner.d.ts +++ b/dist/models/ResponseSelfServiceRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceRunner = { +export type ResponseSelfServiceRunner = { distance: number; donationAmount: number; group: string; diff --git a/dist/models/ResponseSelfServiceScan.d.ts b/dist/models/ResponseSelfServiceScan.d.ts index 3c645ec..3d32c08 100644 --- a/dist/models/ResponseSelfServiceScan.d.ts +++ b/dist/models/ResponseSelfServiceScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceScan = { +export type ResponseSelfServiceScan = { id: number; valid: boolean; distance: number; diff --git a/dist/models/ResponseSelfServiceTeam.d.ts b/dist/models/ResponseSelfServiceTeam.d.ts index 2b69283..5d62460 100644 --- a/dist/models/ResponseSelfServiceTeam.d.ts +++ b/dist/models/ResponseSelfServiceTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceTeam = { +export type ResponseSelfServiceTeam = { name: string; id: number; }; diff --git a/dist/models/ResponseStats.d.ts b/dist/models/ResponseStats.d.ts index e81c7ac..7375b2a 100644 --- a/dist/models/ResponseStats.d.ts +++ b/dist/models/ResponseStats.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStats = { +export type ResponseStats = { total_runners: number; total_teams: number; total_orgs: number; diff --git a/dist/models/ResponseStatsClient.d.ts b/dist/models/ResponseStatsClient.d.ts index 75b1aff..579ea22 100644 --- a/dist/models/ResponseStatsClient.d.ts +++ b/dist/models/ResponseStatsClient.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsClient = { +export type ResponseStatsClient = { id: number; description?: string; key?: string; diff --git a/dist/models/ResponseStatsOrgnisation.d.ts b/dist/models/ResponseStatsOrgnisation.d.ts index 0e23a8a..cc55c94 100644 --- a/dist/models/ResponseStatsOrgnisation.d.ts +++ b/dist/models/ResponseStatsOrgnisation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsOrgnisation = { +export type ResponseStatsOrgnisation = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseStatsRunner.d.ts b/dist/models/ResponseStatsRunner.d.ts index fcd1476..6d60f8d 100644 --- a/dist/models/ResponseStatsRunner.d.ts +++ b/dist/models/ResponseStatsRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsRunner = { +export type ResponseStatsRunner = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseStatsTeam.d.ts b/dist/models/ResponseStatsTeam.d.ts index 5e397da..5e86a20 100644 --- a/dist/models/ResponseStatsTeam.d.ts +++ b/dist/models/ResponseStatsTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsTeam = { +export type ResponseStatsTeam = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseTrack.d.ts b/dist/models/ResponseTrack.d.ts index 23abed6..b1977e7 100644 --- a/dist/models/ResponseTrack.d.ts +++ b/dist/models/ResponseTrack.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseTrack = { +export type ResponseTrack = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseTrackScan.d.ts b/dist/models/ResponseTrackScan.d.ts index 7f01c8d..281cfe3 100644 --- a/dist/models/ResponseTrackScan.d.ts +++ b/dist/models/ResponseTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseTrackScan = { +export type ResponseTrackScan = { track: string; card: string; station: string; diff --git a/dist/models/ResponseUser.d.ts b/dist/models/ResponseUser.d.ts index b807274..caa1eeb 100644 --- a/dist/models/ResponseUser.d.ts +++ b/dist/models/ResponseUser.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUser = { +export type ResponseUser = { firstname: string; middlename: string; lastname: string; diff --git a/dist/models/ResponseUserGroup.d.ts b/dist/models/ResponseUserGroup.d.ts index 4abbdc3..b16ecb1 100644 --- a/dist/models/ResponseUserGroup.d.ts +++ b/dist/models/ResponseUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserGroup = { +export type ResponseUserGroup = { name: string; description?: string; permissions?: Array; diff --git a/dist/models/ResponseUserGroupPermissions.d.ts b/dist/models/ResponseUserGroupPermissions.d.ts index 7990ddb..6bbf364 100644 --- a/dist/models/ResponseUserGroupPermissions.d.ts +++ b/dist/models/ResponseUserGroupPermissions.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserGroupPermissions = { +export type ResponseUserGroupPermissions = { directlyGranted?: Array; inherited?: Array; }; diff --git a/dist/models/ResponseUserPermissions.d.ts b/dist/models/ResponseUserPermissions.d.ts index 4a5ba88..ff7af1b 100644 --- a/dist/models/ResponseUserPermissions.d.ts +++ b/dist/models/ResponseUserPermissions.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserPermissions = { +export type ResponseUserPermissions = { directlyGranted?: Array; inherited?: Array; }; diff --git a/dist/models/Runner.d.ts b/dist/models/Runner.d.ts index 93d8131..df36862 100644 --- a/dist/models/Runner.d.ts +++ b/dist/models/Runner.d.ts @@ -1,4 +1,4 @@ -export declare type Runner = { +export type Runner = { group: string; resetRequestedTimestamp?: string; distance: number; diff --git a/dist/models/RunnerCard.d.ts b/dist/models/RunnerCard.d.ts index cdc181f..2ceba33 100644 --- a/dist/models/RunnerCard.d.ts +++ b/dist/models/RunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCard = { +export type RunnerCard = { id: number; runner?: any; enabled: boolean; diff --git a/dist/models/RunnerCardHasScansError.d.ts b/dist/models/RunnerCardHasScansError.d.ts index e23b6ec..a5c89b4 100644 --- a/dist/models/RunnerCardHasScansError.d.ts +++ b/dist/models/RunnerCardHasScansError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardHasScansError = { +export type RunnerCardHasScansError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardIdOutOfRangeError.d.ts b/dist/models/RunnerCardIdOutOfRangeError.d.ts index 43fe8ef..574057e 100644 --- a/dist/models/RunnerCardIdOutOfRangeError.d.ts +++ b/dist/models/RunnerCardIdOutOfRangeError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardIdOutOfRangeError = { +export type RunnerCardIdOutOfRangeError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardIdsNotMatchingError.d.ts b/dist/models/RunnerCardIdsNotMatchingError.d.ts index a0eb712..83f9ccc 100644 --- a/dist/models/RunnerCardIdsNotMatchingError.d.ts +++ b/dist/models/RunnerCardIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardIdsNotMatchingError = { +export type RunnerCardIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardNotFoundError.d.ts b/dist/models/RunnerCardNotFoundError.d.ts index eaec094..74e17ed 100644 --- a/dist/models/RunnerCardNotFoundError.d.ts +++ b/dist/models/RunnerCardNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardNotFoundError = { +export type RunnerCardNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerEmailNeededError.d.ts b/dist/models/RunnerEmailNeededError.d.ts index 58215e0..a1a77e8 100644 --- a/dist/models/RunnerEmailNeededError.d.ts +++ b/dist/models/RunnerEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerEmailNeededError = { +export type RunnerEmailNeededError = { name: string; message: string; }; diff --git a/dist/models/RunnerGroup.d.ts b/dist/models/RunnerGroup.d.ts index 68a4740..dd59ff1 100644 --- a/dist/models/RunnerGroup.d.ts +++ b/dist/models/RunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroup = { +export type RunnerGroup = { id: number; name: string; contact?: any; diff --git a/dist/models/RunnerGroupNeededError.d.ts b/dist/models/RunnerGroupNeededError.d.ts index 76d28a3..8b78d29 100644 --- a/dist/models/RunnerGroupNeededError.d.ts +++ b/dist/models/RunnerGroupNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroupNeededError = { +export type RunnerGroupNeededError = { name: string; message: string; }; diff --git a/dist/models/RunnerGroupNotFoundError.d.ts b/dist/models/RunnerGroupNotFoundError.d.ts index 58522bf..e045f89 100644 --- a/dist/models/RunnerGroupNotFoundError.d.ts +++ b/dist/models/RunnerGroupNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroupNotFoundError = { +export type RunnerGroupNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerHasDistanceDonationsError.d.ts b/dist/models/RunnerHasDistanceDonationsError.d.ts index 1a24364..5ea6c1b 100644 --- a/dist/models/RunnerHasDistanceDonationsError.d.ts +++ b/dist/models/RunnerHasDistanceDonationsError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerHasDistanceDonationsError = { +export type RunnerHasDistanceDonationsError = { name: string; message: string; }; diff --git a/dist/models/RunnerIdsNotMatchingError.d.ts b/dist/models/RunnerIdsNotMatchingError.d.ts index 406e8ef..8a3dbfa 100644 --- a/dist/models/RunnerIdsNotMatchingError.d.ts +++ b/dist/models/RunnerIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerIdsNotMatchingError = { +export type RunnerIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerNotFoundError.d.ts b/dist/models/RunnerNotFoundError.d.ts index 864be4f..7d1ca6b 100644 --- a/dist/models/RunnerNotFoundError.d.ts +++ b/dist/models/RunnerNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerNotFoundError = { +export type RunnerNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganization.d.ts b/dist/models/RunnerOrganization.d.ts index e2ca4e1..ab55b4d 100644 --- a/dist/models/RunnerOrganization.d.ts +++ b/dist/models/RunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganization = { +export type RunnerOrganization = { address?: any; key?: string; distance: number; diff --git a/dist/models/RunnerOrganizationHasRunnersError.d.ts b/dist/models/RunnerOrganizationHasRunnersError.d.ts index 6fe2c50..0f59ed5 100644 --- a/dist/models/RunnerOrganizationHasRunnersError.d.ts +++ b/dist/models/RunnerOrganizationHasRunnersError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationHasRunnersError = { +export type RunnerOrganizationHasRunnersError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationHasTeamsError.d.ts b/dist/models/RunnerOrganizationHasTeamsError.d.ts index 3f50d44..96a9675 100644 --- a/dist/models/RunnerOrganizationHasTeamsError.d.ts +++ b/dist/models/RunnerOrganizationHasTeamsError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationHasTeamsError = { +export type RunnerOrganizationHasTeamsError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts b/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts index e15b28b..f14e8af 100644 --- a/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts +++ b/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationIdsNotMatchingError = { +export type RunnerOrganizationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationNotFoundError.d.ts b/dist/models/RunnerOrganizationNotFoundError.d.ts index fdde62a..2ff6fe6 100644 --- a/dist/models/RunnerOrganizationNotFoundError.d.ts +++ b/dist/models/RunnerOrganizationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationNotFoundError = { +export type RunnerOrganizationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationWrongTypeError.d.ts b/dist/models/RunnerOrganizationWrongTypeError.d.ts index d614dff..65bd8e3 100644 --- a/dist/models/RunnerOrganizationWrongTypeError.d.ts +++ b/dist/models/RunnerOrganizationWrongTypeError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationWrongTypeError = { +export type RunnerOrganizationWrongTypeError = { name: string; message: string; }; diff --git a/dist/models/RunnerSelfserviceTimeoutError.d.ts b/dist/models/RunnerSelfserviceTimeoutError.d.ts index e7b1fc2..c6e9906 100644 --- a/dist/models/RunnerSelfserviceTimeoutError.d.ts +++ b/dist/models/RunnerSelfserviceTimeoutError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerSelfserviceTimeoutError = { +export type RunnerSelfserviceTimeoutError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeam.d.ts b/dist/models/RunnerTeam.d.ts index 59656f8..6a68927 100644 --- a/dist/models/RunnerTeam.d.ts +++ b/dist/models/RunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeam = { +export type RunnerTeam = { parentGroup: string; id: number; name: string; diff --git a/dist/models/RunnerTeamHasRunnersError.d.ts b/dist/models/RunnerTeamHasRunnersError.d.ts index d0fd4a8..b68c851 100644 --- a/dist/models/RunnerTeamHasRunnersError.d.ts +++ b/dist/models/RunnerTeamHasRunnersError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamHasRunnersError = { +export type RunnerTeamHasRunnersError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamIdsNotMatchingError.d.ts b/dist/models/RunnerTeamIdsNotMatchingError.d.ts index 2c209b9..71c6b66 100644 --- a/dist/models/RunnerTeamIdsNotMatchingError.d.ts +++ b/dist/models/RunnerTeamIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamIdsNotMatchingError = { +export type RunnerTeamIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamNeedsParentError.d.ts b/dist/models/RunnerTeamNeedsParentError.d.ts index 4feac81..47698c5 100644 --- a/dist/models/RunnerTeamNeedsParentError.d.ts +++ b/dist/models/RunnerTeamNeedsParentError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamNeedsParentError = { +export type RunnerTeamNeedsParentError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamNotFoundError.d.ts b/dist/models/RunnerTeamNotFoundError.d.ts index 4844b93..bc194c0 100644 --- a/dist/models/RunnerTeamNotFoundError.d.ts +++ b/dist/models/RunnerTeamNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamNotFoundError = { +export type RunnerTeamNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Scan.d.ts b/dist/models/Scan.d.ts index 755897f..94a1c26 100644 --- a/dist/models/Scan.d.ts +++ b/dist/models/Scan.d.ts @@ -1,4 +1,4 @@ -export declare type Scan = { +export type Scan = { id: number; runner: string; valid: boolean; diff --git a/dist/models/ScanIdsNotMatchingError.d.ts b/dist/models/ScanIdsNotMatchingError.d.ts index 508566f..9d68e5c 100644 --- a/dist/models/ScanIdsNotMatchingError.d.ts +++ b/dist/models/ScanIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanIdsNotMatchingError = { +export type ScanIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/ScanNotFoundError.d.ts b/dist/models/ScanNotFoundError.d.ts index a8960a0..71e75ec 100644 --- a/dist/models/ScanNotFoundError.d.ts +++ b/dist/models/ScanNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanNotFoundError = { +export type ScanNotFoundError = { name: string; message: string; }; diff --git a/dist/models/ScanStation.d.ts b/dist/models/ScanStation.d.ts index 387bd79..a5a9c9c 100644 --- a/dist/models/ScanStation.d.ts +++ b/dist/models/ScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStation = { +export type ScanStation = { id: number; description?: string; track: string; diff --git a/dist/models/ScanStationHasScansError.d.ts b/dist/models/ScanStationHasScansError.d.ts index df8f646..f0d2671 100644 --- a/dist/models/ScanStationHasScansError.d.ts +++ b/dist/models/ScanStationHasScansError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationHasScansError = { +export type ScanStationHasScansError = { name: string; message: string; }; diff --git a/dist/models/ScanStationIdsNotMatchingError.d.ts b/dist/models/ScanStationIdsNotMatchingError.d.ts index 3e584aa..a3b2e1a 100644 --- a/dist/models/ScanStationIdsNotMatchingError.d.ts +++ b/dist/models/ScanStationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationIdsNotMatchingError = { +export type ScanStationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/ScanStationNotFoundError.d.ts b/dist/models/ScanStationNotFoundError.d.ts index 800e32c..480b09b 100644 --- a/dist/models/ScanStationNotFoundError.d.ts +++ b/dist/models/ScanStationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationNotFoundError = { +export type ScanStationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/StatsClient.d.ts b/dist/models/StatsClient.d.ts index 6349ff5..66fb4df 100644 --- a/dist/models/StatsClient.d.ts +++ b/dist/models/StatsClient.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClient = { +export type StatsClient = { id: number; description?: string; prefix: string; diff --git a/dist/models/StatsClientIdsNotMatchingError.d.ts b/dist/models/StatsClientIdsNotMatchingError.d.ts index 81f7417..47d477a 100644 --- a/dist/models/StatsClientIdsNotMatchingError.d.ts +++ b/dist/models/StatsClientIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClientIdsNotMatchingError = { +export type StatsClientIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/StatsClientNotFoundError.d.ts b/dist/models/StatsClientNotFoundError.d.ts index 38504d8..82c0d05 100644 --- a/dist/models/StatsClientNotFoundError.d.ts +++ b/dist/models/StatsClientNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClientNotFoundError = { +export type StatsClientNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Track.d.ts b/dist/models/Track.d.ts index 6ac61fa..49aefda 100644 --- a/dist/models/Track.d.ts +++ b/dist/models/Track.d.ts @@ -1,4 +1,4 @@ -export declare type Track = { +export type Track = { id: number; name: string; distance: number; diff --git a/dist/models/TrackHasScanStationsError.d.ts b/dist/models/TrackHasScanStationsError.d.ts index 64abe5a..5291e8d 100644 --- a/dist/models/TrackHasScanStationsError.d.ts +++ b/dist/models/TrackHasScanStationsError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackHasScanStationsError = { +export type TrackHasScanStationsError = { name: string; message: string; }; diff --git a/dist/models/TrackIdsNotMatchingError.d.ts b/dist/models/TrackIdsNotMatchingError.d.ts index 6d0a4f5..5b882d7 100644 --- a/dist/models/TrackIdsNotMatchingError.d.ts +++ b/dist/models/TrackIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackIdsNotMatchingError = { +export type TrackIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/TrackLapTimeCantBeNegativeError.d.ts b/dist/models/TrackLapTimeCantBeNegativeError.d.ts index 891bced..9fb130c 100644 --- a/dist/models/TrackLapTimeCantBeNegativeError.d.ts +++ b/dist/models/TrackLapTimeCantBeNegativeError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackLapTimeCantBeNegativeError = { +export type TrackLapTimeCantBeNegativeError = { name: string; message: string; }; diff --git a/dist/models/TrackNotFoundError.d.ts b/dist/models/TrackNotFoundError.d.ts index 2475604..401a770 100644 --- a/dist/models/TrackNotFoundError.d.ts +++ b/dist/models/TrackNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackNotFoundError = { +export type TrackNotFoundError = { name: string; message: string; }; diff --git a/dist/models/TrackScan.d.ts b/dist/models/TrackScan.d.ts index 46e3893..602cd13 100644 --- a/dist/models/TrackScan.d.ts +++ b/dist/models/TrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type TrackScan = { +export type TrackScan = { track: string; card: string; station: string; diff --git a/dist/models/UpdateDistanceDonation.d.ts b/dist/models/UpdateDistanceDonation.d.ts index efffcc7..6aa5604 100644 --- a/dist/models/UpdateDistanceDonation.d.ts +++ b/dist/models/UpdateDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDistanceDonation = { +export type UpdateDistanceDonation = { runner: number; amountPerDistance: number; id: number; diff --git a/dist/models/UpdateDonation.d.ts b/dist/models/UpdateDonation.d.ts index 930d79f..57eec0b 100644 --- a/dist/models/UpdateDonation.d.ts +++ b/dist/models/UpdateDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDonation = { +export type UpdateDonation = { id: number; donor: number; paidAmount?: number; diff --git a/dist/models/UpdateDonor.d.ts b/dist/models/UpdateDonor.d.ts index f35954f..ae9a914 100644 --- a/dist/models/UpdateDonor.d.ts +++ b/dist/models/UpdateDonor.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDonor = { +export type UpdateDonor = { id: number; receiptNeeded?: boolean; firstname: string; diff --git a/dist/models/UpdateFixedDonation.d.ts b/dist/models/UpdateFixedDonation.d.ts index 1615ef0..c281d09 100644 --- a/dist/models/UpdateFixedDonation.d.ts +++ b/dist/models/UpdateFixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateFixedDonation = { +export type UpdateFixedDonation = { amount: number; id: number; donor: number; diff --git a/dist/models/UpdateGroupContact.d.ts b/dist/models/UpdateGroupContact.d.ts index bb10980..4a42fd0 100644 --- a/dist/models/UpdateGroupContact.d.ts +++ b/dist/models/UpdateGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateGroupContact = { +export type UpdateGroupContact = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/UpdatePermission.d.ts b/dist/models/UpdatePermission.d.ts index ab0b0f7..048ec9c 100644 --- a/dist/models/UpdatePermission.d.ts +++ b/dist/models/UpdatePermission.d.ts @@ -1,4 +1,4 @@ -export declare type UpdatePermission = { +export type UpdatePermission = { id: number; principal: number; target: string; diff --git a/dist/models/UpdateRunner.d.ts b/dist/models/UpdateRunner.d.ts index f76ba46..165abdb 100644 --- a/dist/models/UpdateRunner.d.ts +++ b/dist/models/UpdateRunner.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunner = { +export type UpdateRunner = { id: number; group: number; firstname: string; diff --git a/dist/models/UpdateRunnerCard.d.ts b/dist/models/UpdateRunnerCard.d.ts index fc2c917..73831f7 100644 --- a/dist/models/UpdateRunnerCard.d.ts +++ b/dist/models/UpdateRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerCard = { +export type UpdateRunnerCard = { id: number; runner?: number; enabled: boolean; diff --git a/dist/models/UpdateRunnerOrganization.d.ts b/dist/models/UpdateRunnerOrganization.d.ts index 8f2714f..9a804e3 100644 --- a/dist/models/UpdateRunnerOrganization.d.ts +++ b/dist/models/UpdateRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerOrganization = { +export type UpdateRunnerOrganization = { id: number; address?: any; registrationEnabled?: boolean; diff --git a/dist/models/UpdateRunnerTeam.d.ts b/dist/models/UpdateRunnerTeam.d.ts index 2861703..8359fab 100644 --- a/dist/models/UpdateRunnerTeam.d.ts +++ b/dist/models/UpdateRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerTeam = { +export type UpdateRunnerTeam = { id: number; parentGroup: number; name: string; diff --git a/dist/models/UpdateScan.d.ts b/dist/models/UpdateScan.d.ts index 6cda4f5..c490698 100644 --- a/dist/models/UpdateScan.d.ts +++ b/dist/models/UpdateScan.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateScan = { +export type UpdateScan = { id: number; runner: number; valid?: boolean; diff --git a/dist/models/UpdateScanStation.d.ts b/dist/models/UpdateScanStation.d.ts index eea7974..45114c5 100644 --- a/dist/models/UpdateScanStation.d.ts +++ b/dist/models/UpdateScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateScanStation = { +export type UpdateScanStation = { id: number; description?: string; enabled?: boolean; diff --git a/dist/models/UpdateTrack.d.ts b/dist/models/UpdateTrack.d.ts index f724aea..042fbf6 100644 --- a/dist/models/UpdateTrack.d.ts +++ b/dist/models/UpdateTrack.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateTrack = { +export type UpdateTrack = { id: number; name: string; distance: number; diff --git a/dist/models/UpdateTrackScan.d.ts b/dist/models/UpdateTrackScan.d.ts index ce22edc..eea81bf 100644 --- a/dist/models/UpdateTrackScan.d.ts +++ b/dist/models/UpdateTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateTrackScan = { +export type UpdateTrackScan = { id: number; runner: number; valid?: boolean; diff --git a/dist/models/UpdateUser.d.ts b/dist/models/UpdateUser.d.ts index 3a4dee6..8448a69 100644 --- a/dist/models/UpdateUser.d.ts +++ b/dist/models/UpdateUser.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateUser = { +export type UpdateUser = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/UpdateUserGroup.d.ts b/dist/models/UpdateUserGroup.d.ts index ae2179c..0dd41af 100644 --- a/dist/models/UpdateUserGroup.d.ts +++ b/dist/models/UpdateUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateUserGroup = { +export type UpdateUserGroup = { id: number; name: string; description?: string; diff --git a/dist/models/User.d.ts b/dist/models/User.d.ts index dbc3f6b..74772f3 100644 --- a/dist/models/User.d.ts +++ b/dist/models/User.d.ts @@ -1,4 +1,4 @@ -export declare type User = { +export type User = { uuid: string; email: string; phone?: string; diff --git a/dist/models/UserAction.d.ts b/dist/models/UserAction.d.ts index 6af2012..0d68cef 100644 --- a/dist/models/UserAction.d.ts +++ b/dist/models/UserAction.d.ts @@ -1,4 +1,4 @@ -export declare type UserAction = { +export type UserAction = { id: number; target: string; action: UserAction.action; diff --git a/dist/models/UserDeletionNotConfirmedError.d.ts b/dist/models/UserDeletionNotConfirmedError.d.ts index d0e8fa5..4de933f 100644 --- a/dist/models/UserDeletionNotConfirmedError.d.ts +++ b/dist/models/UserDeletionNotConfirmedError.d.ts @@ -1,4 +1,4 @@ -export declare type UserDeletionNotConfirmedError = { +export type UserDeletionNotConfirmedError = { name: string; message: string; }; diff --git a/dist/models/UserDisabledError.d.ts b/dist/models/UserDisabledError.d.ts index d3c8467..b0f1c1f 100644 --- a/dist/models/UserDisabledError.d.ts +++ b/dist/models/UserDisabledError.d.ts @@ -1,4 +1,4 @@ -export declare type UserDisabledError = { +export type UserDisabledError = { name: string; message: string; }; diff --git a/dist/models/UserEmailNeededError.d.ts b/dist/models/UserEmailNeededError.d.ts index cc1859f..d035613 100644 --- a/dist/models/UserEmailNeededError.d.ts +++ b/dist/models/UserEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type UserEmailNeededError = { +export type UserEmailNeededError = { name: string; message: string; }; diff --git a/dist/models/UserGroup.d.ts b/dist/models/UserGroup.d.ts index d4a5d60..ae5e5ce 100644 --- a/dist/models/UserGroup.d.ts +++ b/dist/models/UserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroup = { +export type UserGroup = { name: string; description?: string; id: number; diff --git a/dist/models/UserGroupIdsNotMatchingError.d.ts b/dist/models/UserGroupIdsNotMatchingError.d.ts index 09101d8..5c34a06 100644 --- a/dist/models/UserGroupIdsNotMatchingError.d.ts +++ b/dist/models/UserGroupIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroupIdsNotMatchingError = { +export type UserGroupIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/UserGroupNotFoundError.d.ts b/dist/models/UserGroupNotFoundError.d.ts index 72ebe69..4a3f814 100644 --- a/dist/models/UserGroupNotFoundError.d.ts +++ b/dist/models/UserGroupNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroupNotFoundError = { +export type UserGroupNotFoundError = { name: string; message: string; }; diff --git a/dist/models/UserIdsNotMatchingError.d.ts b/dist/models/UserIdsNotMatchingError.d.ts index 99b8e68..a5e1a28 100644 --- a/dist/models/UserIdsNotMatchingError.d.ts +++ b/dist/models/UserIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type UserIdsNotMatchingError = { +export type UserIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts b/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts index 119858a..204309a 100644 --- a/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts +++ b/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNonexistantOrRefreshtokenInvalidError = { +export type UserNonexistantOrRefreshtokenInvalidError = { name: string; message: string; }; diff --git a/dist/models/UserNotFoundError.d.ts b/dist/models/UserNotFoundError.d.ts index ed418ef..fd86e74 100644 --- a/dist/models/UserNotFoundError.d.ts +++ b/dist/models/UserNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNotFoundError = { +export type UserNotFoundError = { name: string; message: string; }; diff --git a/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts index 6afa694..0d551a2 100644 --- a/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts +++ b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNotFoundOrRefreshTokenCountInvalidError = { +export type UserNotFoundOrRefreshTokenCountInvalidError = { name: string; message: string; }; diff --git a/dist/models/UsernameContainsIllegalCharacterError.d.ts b/dist/models/UsernameContainsIllegalCharacterError.d.ts index c707972..f2cfe13 100644 --- a/dist/models/UsernameContainsIllegalCharacterError.d.ts +++ b/dist/models/UsernameContainsIllegalCharacterError.d.ts @@ -1,4 +1,4 @@ -export declare type UsernameContainsIllegalCharacterError = { +export type UsernameContainsIllegalCharacterError = { name: string; message: string; }; diff --git a/dist/models/UsernameOrEmailNeededError.d.ts b/dist/models/UsernameOrEmailNeededError.d.ts index 3cf293f..5f7070c 100644 --- a/dist/models/UsernameOrEmailNeededError.d.ts +++ b/dist/models/UsernameOrEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type UsernameOrEmailNeededError = { +export type UsernameOrEmailNeededError = { name: string; message: string; }; diff --git a/dist/services/AuthService.js b/dist/services/AuthService.js index c142a18..eaab106 100644 --- a/dist/services/AuthService.js +++ b/dist/services/AuthService.js @@ -13,7 +13,7 @@ class AuthService { * @throws ApiError */ static async authControllerLogin(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/login`, body: requestBody, @@ -28,7 +28,7 @@ class AuthService { * @throws ApiError */ static async authControllerLogout(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/logout`, body: requestBody, @@ -45,7 +45,7 @@ class AuthService { * @throws ApiError */ static async authControllerRefresh(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/refresh`, body: requestBody, @@ -61,7 +61,7 @@ class AuthService { * @throws ApiError */ static async authControllerGetResetToken(locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/reset`, query: { @@ -80,7 +80,7 @@ class AuthService { * @throws ApiError */ static async authControllerResetPassword(token, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/reset/${token}`, body: requestBody, diff --git a/dist/services/DonationService.js b/dist/services/DonationService.js index 6fc8564..32344dc 100644 --- a/dist/services/DonationService.js +++ b/dist/services/DonationService.js @@ -10,7 +10,7 @@ class DonationService { * @throws ApiError */ static async donationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donations`, }); @@ -24,7 +24,7 @@ class DonationService { * @throws ApiError */ static async donationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donations/${id}`, }); @@ -40,7 +40,7 @@ class DonationService { * @throws ApiError */ static async donationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/donations/${id}`, query: { @@ -57,7 +57,7 @@ class DonationService { * @throws ApiError */ static async donationControllerPostFixed(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donations/fixed`, body: requestBody, @@ -72,7 +72,7 @@ class DonationService { * @throws ApiError */ static async donationControllerPostDistance(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donations/distance`, body: requestBody, @@ -88,7 +88,7 @@ class DonationService { * @throws ApiError */ static async donationControllerPutFixed(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donations/fixed/${id}`, body: requestBody, @@ -104,7 +104,7 @@ class DonationService { * @throws ApiError */ static async donationControllerPutDistance(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donations/distance/${id}`, body: requestBody, diff --git a/dist/services/DonorService.js b/dist/services/DonorService.js index e5e4d47..cfe0ef6 100644 --- a/dist/services/DonorService.js +++ b/dist/services/DonorService.js @@ -10,7 +10,7 @@ class DonorService { * @throws ApiError */ static async donorControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donors`, }); @@ -24,7 +24,7 @@ class DonorService { * @throws ApiError */ static async donorControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donors`, body: requestBody, @@ -39,7 +39,7 @@ class DonorService { * @throws ApiError */ static async donorControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donors/${id}`, }); @@ -54,7 +54,7 @@ class DonorService { * @throws ApiError */ static async donorControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donors/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class DonorService { * @throws ApiError */ static async donorControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/donors/${id}`, query: { diff --git a/dist/services/GroupContactService.js b/dist/services/GroupContactService.js index 25d2b31..8add9c3 100644 --- a/dist/services/GroupContactService.js +++ b/dist/services/GroupContactService.js @@ -10,7 +10,7 @@ class GroupContactService { * @throws ApiError */ static async groupContactControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/contacts`, }); @@ -24,7 +24,7 @@ class GroupContactService { * @throws ApiError */ static async groupContactControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/contacts`, body: requestBody, @@ -39,7 +39,7 @@ class GroupContactService { * @throws ApiError */ static async groupContactControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/contacts/${id}`, }); @@ -54,7 +54,7 @@ class GroupContactService { * @throws ApiError */ static async groupContactControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/contacts/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class GroupContactService { * @throws ApiError */ static async groupContactControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/contacts/${id}`, query: { diff --git a/dist/services/ImportService.js b/dist/services/ImportService.js index a659dec..a7cf7e0 100644 --- a/dist/services/ImportService.js +++ b/dist/services/ImportService.js @@ -12,7 +12,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostJson(group, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/import`, query: { @@ -31,7 +31,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostOrgsJson(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations/${id}/import`, body: requestBody, @@ -47,7 +47,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostTeamsJson(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams/${id}/import`, body: requestBody, @@ -62,7 +62,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostCsv(group) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/import/csv`, query: { @@ -79,7 +79,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostOrgsCsv(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations/${id}/import/csv`, }); @@ -93,7 +93,7 @@ class ImportService { * @throws ApiError */ static async importControllerPostTeamsCsv(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams/${id}/import/csv`, }); diff --git a/dist/services/MeService.js b/dist/services/MeService.js index 204c137..5c551a6 100644 --- a/dist/services/MeService.js +++ b/dist/services/MeService.js @@ -10,7 +10,7 @@ class MeService { * @throws ApiError */ static async meControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/me/`, }); @@ -24,7 +24,7 @@ class MeService { * @throws ApiError */ static async meControllerPut(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/users/me/`, body: requestBody, @@ -39,7 +39,7 @@ class MeService { * @throws ApiError */ static async meControllerRemove(force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/users/me/`, query: { @@ -55,7 +55,7 @@ class MeService { * @throws ApiError */ static async meControllerGetPermissions() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/me/permissions`, }); diff --git a/dist/services/PermissionService.js b/dist/services/PermissionService.js index 586f3bb..05bc703 100644 --- a/dist/services/PermissionService.js +++ b/dist/services/PermissionService.js @@ -10,7 +10,7 @@ class PermissionService { * @throws ApiError */ static async permissionControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/permissions`, }); @@ -24,7 +24,7 @@ class PermissionService { * @throws ApiError */ static async permissionControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/permissions`, body: requestBody, @@ -39,7 +39,7 @@ class PermissionService { * @throws ApiError */ static async permissionControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/permissions/${id}`, }); @@ -54,7 +54,7 @@ class PermissionService { * @throws ApiError */ static async permissionControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/permissions/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class PermissionService { * @throws ApiError */ static async permissionControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/permissions/${id}`, query: { diff --git a/dist/services/RunnerCardService.js b/dist/services/RunnerCardService.js index 4d04473..5c03707 100644 --- a/dist/services/RunnerCardService.js +++ b/dist/services/RunnerCardService.js @@ -10,7 +10,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/cards`, }); @@ -24,7 +24,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/cards`, body: requestBody, @@ -39,7 +39,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/cards/${id}`, }); @@ -54,7 +54,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/cards/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/cards/${id}`, query: { @@ -89,7 +89,7 @@ class RunnerCardService { * @throws ApiError */ static async runnerCardControllerPostBlancoBulk(count, returnCards) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/cards/bulk`, query: { diff --git a/dist/services/RunnerOrganizationService.js b/dist/services/RunnerOrganizationService.js index 16495b3..09afb4d 100644 --- a/dist/services/RunnerOrganizationService.js +++ b/dist/services/RunnerOrganizationService.js @@ -10,7 +10,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations`, }); @@ -24,7 +24,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations`, body: requestBody, @@ -39,7 +39,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/${id}`, }); @@ -54,7 +54,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/organizations/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/organizations/${id}`, query: { @@ -89,7 +89,7 @@ class RunnerOrganizationService { * @throws ApiError */ static async runnerOrganizationControllerGetRunners(id, onlyDirect) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/${id}/runners`, query: { diff --git a/dist/services/RunnerSelfService.js b/dist/services/RunnerSelfService.js index 9b0c57c..287b34e 100644 --- a/dist/services/RunnerSelfService.js +++ b/dist/services/RunnerSelfService.js @@ -11,7 +11,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerGet(jwt) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/me/${jwt}`, }); @@ -26,7 +26,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerRemove(jwt, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/runners/me/${jwt}`, query: { @@ -43,7 +43,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerGetScans(jwt) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/me/${jwt}/scans`, }); @@ -56,7 +56,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerGetStationMe() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations/me`, }); @@ -71,7 +71,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerRequestNewToken(mail, locale) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/forgot`, query: { @@ -90,7 +90,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerRegisterRunner(locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/register`, query: { @@ -110,7 +110,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerRegisterOrganizationRunner(token, locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/register/${token}`, query: { @@ -128,7 +128,7 @@ class RunnerSelfService { * @throws ApiError */ static async runnerSelfServiceControllerGetSelfserviceOrg(token) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/selfservice/${token}`, }); diff --git a/dist/services/RunnerService.js b/dist/services/RunnerService.js index 1a3f5c4..f5b5aa4 100644 --- a/dist/services/RunnerService.js +++ b/dist/services/RunnerService.js @@ -10,7 +10,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners`, }); @@ -24,7 +24,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners`, body: requestBody, @@ -39,7 +39,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/${id}`, }); @@ -54,7 +54,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/runners/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/runners/${id}`, query: { @@ -88,7 +88,7 @@ class RunnerService { * @throws ApiError */ static async runnerControllerGetScans(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/${id}/scans`, }); diff --git a/dist/services/RunnerTeamService.js b/dist/services/RunnerTeamService.js index 38365ba..e57a8c2 100644 --- a/dist/services/RunnerTeamService.js +++ b/dist/services/RunnerTeamService.js @@ -10,7 +10,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams`, }); @@ -24,7 +24,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams`, body: requestBody, @@ -39,7 +39,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams/${id}`, }); @@ -54,7 +54,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/teams/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/teams/${id}`, query: { @@ -88,7 +88,7 @@ class RunnerTeamService { * @throws ApiError */ static async runnerTeamControllerGetRunners(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams/${id}/runners`, }); diff --git a/dist/services/ScanService.js b/dist/services/ScanService.js index 4b1ef8d..bbe931c 100644 --- a/dist/services/ScanService.js +++ b/dist/services/ScanService.js @@ -10,7 +10,7 @@ class ScanService { * @throws ApiError */ static async scanControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/scans`, }); @@ -24,7 +24,7 @@ class ScanService { * @throws ApiError */ static async scanControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/scans`, body: requestBody, @@ -39,7 +39,7 @@ class ScanService { * @throws ApiError */ static async scanControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/scans/${id}`, }); @@ -54,7 +54,7 @@ class ScanService { * @throws ApiError */ static async scanControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/scans/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class ScanService { * @throws ApiError */ static async scanControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/scans/${id}`, query: { @@ -88,7 +88,7 @@ class ScanService { * @throws ApiError */ static async scanControllerPostTrackScans(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/scans/trackscans`, body: requestBody, @@ -104,7 +104,7 @@ class ScanService { * @throws ApiError */ static async scanControllerPutTrackScan(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/scans/trackscans/${id}`, body: requestBody, diff --git a/dist/services/ScanStationService.js b/dist/services/ScanStationService.js index f14c4fa..514a9b1 100644 --- a/dist/services/ScanStationService.js +++ b/dist/services/ScanStationService.js @@ -10,7 +10,7 @@ class ScanStationService { * @throws ApiError */ static async scanStationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations`, }); @@ -24,7 +24,7 @@ class ScanStationService { * @throws ApiError */ static async scanStationControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/stations`, body: requestBody, @@ -39,7 +39,7 @@ class ScanStationService { * @throws ApiError */ static async scanStationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations/${id}`, }); @@ -54,7 +54,7 @@ class ScanStationService { * @throws ApiError */ static async scanStationControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/stations/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class ScanStationService { * @throws ApiError */ static async scanStationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/stations/${id}`, query: { diff --git a/dist/services/StatsClientService.js b/dist/services/StatsClientService.js index 70ca3a5..07fbcb9 100644 --- a/dist/services/StatsClientService.js +++ b/dist/services/StatsClientService.js @@ -10,7 +10,7 @@ class StatsClientService { * @throws ApiError */ static async statsClientControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/statsclients`, }); @@ -24,7 +24,7 @@ class StatsClientService { * @throws ApiError */ static async statsClientControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/statsclients`, body: requestBody, @@ -39,7 +39,7 @@ class StatsClientService { * @throws ApiError */ static async statsClientControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/statsclients/${id}`, }); @@ -55,7 +55,7 @@ class StatsClientService { * @throws ApiError */ static async statsClientControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/statsclients/${id}`, query: { diff --git a/dist/services/StatsService.js b/dist/services/StatsService.js index 44d2994..d7fc733 100644 --- a/dist/services/StatsService.js +++ b/dist/services/StatsService.js @@ -10,7 +10,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats`, }); @@ -23,7 +23,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopRunnersByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/distance`, }); @@ -36,7 +36,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopRunnersByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/donations`, }); @@ -50,7 +50,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopRunnersByLaptime(track) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/laptime`, query: { @@ -66,7 +66,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopRunnersByTrackTime() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/scans`, }); @@ -79,7 +79,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopTeamsByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/teams/distance`, }); @@ -92,7 +92,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopTeamsByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/teams/donations`, }); @@ -105,7 +105,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopOrgsByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/organizations/distance`, }); @@ -118,7 +118,7 @@ class StatsService { * @throws ApiError */ static async statsControllerGetTopOrgsByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/organizations/donations`, }); diff --git a/dist/services/StatusService.js b/dist/services/StatusService.js index c4709ae..41b1582 100644 --- a/dist/services/StatusService.js +++ b/dist/services/StatusService.js @@ -13,7 +13,7 @@ class StatusService { * @throws ApiError */ static async statusControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/status`, }); @@ -26,7 +26,7 @@ class StatusService { * @throws ApiError */ static async statusControllerGetVersion() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/version`, }); diff --git a/dist/services/TrackService.js b/dist/services/TrackService.js index 982b98f..5ef8d0a 100644 --- a/dist/services/TrackService.js +++ b/dist/services/TrackService.js @@ -10,7 +10,7 @@ class TrackService { * @throws ApiError */ static async trackControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/tracks`, }); @@ -24,7 +24,7 @@ class TrackService { * @throws ApiError */ static async trackControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/tracks`, body: requestBody, @@ -39,7 +39,7 @@ class TrackService { * @throws ApiError */ static async trackControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/tracks/${id}`, }); @@ -54,7 +54,7 @@ class TrackService { * @throws ApiError */ static async trackControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/tracks/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class TrackService { * @throws ApiError */ static async trackControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/tracks/${id}`, query: { diff --git a/dist/services/UserGroupService.js b/dist/services/UserGroupService.js index 4f6f30c..2c8fa0c 100644 --- a/dist/services/UserGroupService.js +++ b/dist/services/UserGroupService.js @@ -10,7 +10,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups`, }); @@ -24,7 +24,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/usergroups`, body: requestBody, @@ -39,7 +39,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups/${id}`, }); @@ -54,7 +54,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/usergroups/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/usergroups/${id}`, query: { @@ -88,7 +88,7 @@ class UserGroupService { * @throws ApiError */ static async userGroupControllerGetPermissions(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups/${id}/permissions`, }); diff --git a/dist/services/UserService.js b/dist/services/UserService.js index 02b0d68..663f449 100644 --- a/dist/services/UserService.js +++ b/dist/services/UserService.js @@ -10,7 +10,7 @@ class UserService { * @throws ApiError */ static async userControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users`, }); @@ -24,7 +24,7 @@ class UserService { * @throws ApiError */ static async userControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/users`, body: requestBody, @@ -39,7 +39,7 @@ class UserService { * @throws ApiError */ static async userControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/${id}`, }); @@ -54,7 +54,7 @@ class UserService { * @throws ApiError */ static async userControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/users/${id}`, body: requestBody, @@ -71,7 +71,7 @@ class UserService { * @throws ApiError */ static async userControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/users/${id}`, query: { @@ -88,7 +88,7 @@ class UserService { * @throws ApiError */ static async userControllerGetPermissions(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/${id}/permissions`, }); diff --git a/openapi.json b/openapi.json index cf9b8e7..1d98e70 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"IllegalJWTError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNonexistantOrRefreshtokenInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"InvalidCredentialsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"NoPermissionError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameOrEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtNotProvidedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundOrRefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResetAlreadyRequestedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDisabledError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtUser":{"properties":{"id":{"type":"integer"},"uuid":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"refreshTokenCount":{"minLength":1,"type":"integer"},"profilePic":{"type":"string"}},"type":"object","required":["id","uuid","firstname","lastname","enabled","refreshTokenCount"]},"ResponsePrincipal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"ResponseUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"enabled":{"type":"boolean"},"profilePic":{"type":"string"},"groups":{"items":{},"type":"array"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["firstname","middlename","lastname","phone","email","username","enabled","profilePic","id"]},"ResponsePermission":{"properties":{"id":{"type":"integer"},"principal":{"minLength":1,"type":"object"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["id","principal","target","action"]},"Permission":{"properties":{"id":{"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"}},"type":"object","required":["id","target","action"]},"Principal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"UserAction":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"},"changed":{"type":"string"}},"type":"object","required":["id","target","action"]},"ResponseUserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"UserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"User":{"properties":{"uuid":{"format":"uuid","type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"groups":{},"enabled":{"type":"boolean"},"refreshTokenCount":{"type":"integer"},"profilePic":{"format":"url","type":"string"},"resetRequestedTimestamp":{"type":"string"},"actions":{},"id":{"type":"integer"}},"type":"object","required":["uuid","email","username","firstname","lastname","password","enabled","refreshTokenCount","profilePic","id"]},"MailSendingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameContainsIllegalCharacterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDeletionNotConfirmedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainUppercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainLowercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainNumberError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordTooShortError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseAuth":{"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"access_token_expires_at":{"type":"integer"},"refresh_token_expires_at":{"type":"integer"}},"type":"object","required":["access_token","refresh_token","access_token_expires_at","refresh_token_expires_at"]},"CreateAuth":{"properties":{"username":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"CreateResetToken":{"properties":{"email":{"type":"string","format":"email","minLength":1}},"type":"object","required":["email"]},"Logout":{"properties":{"timestamp":{"type":"string"}},"type":"object","required":["timestamp"]},"HandleLogout":{"properties":{"token":{"type":"string"}},"type":"object"},"RefreshAuth":{"properties":{"token":{"type":"string"}},"type":"object"},"ResetPassword":{"properties":{"resetToken":{"type":"string"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"ResponseEmpty":{"properties":{"response":{"type":"string"}},"type":"object","required":["response"]},"DonationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorReceiptAddressNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorHasDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerSelfserviceTimeoutError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerHasDistanceDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressFirstLineEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCityEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCountryEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"Address":{"properties":{"address1":{"type":"string"},"address2":{"type":"string"},"postalcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"}},"type":"object","required":["address1","address2","postalcode","city","country"]},"ResponseParticipant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email"]},"ResponseDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","middlename","lastname","phone","email"]},"ResponseDonation":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","amount","paidAmount"]},"ResponseGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"groups":{"type":"object"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email","groups","address"]},"ResponseRunnerGroup":{"properties":{"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["id","name"]},"ResponseRunner":{"properties":{"distance":{"type":"integer"},"group":{"type":"object"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","group","id","firstname","middlename","lastname","phone","email"]},"ResponseDistanceDonation":{"properties":{"runner":{"type":"object"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","amount","paidAmount"]},"Participant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"Donor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","lastname"]},"Donation":{"properties":{"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","paidAmount"]},"RunnerCardNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdOutOfRangeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerCard":{"properties":{"id":{"type":"integer"},"runner":{"type":"object"},"code":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","runner","code","enabled"]},"ResponseScan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","distance"]},"TrackNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackLapTimeCantBeNegativeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackHasScanStationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseTrack":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ResponseScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"},"track":{"minLength":1,"type":"object"},"enabled":{"type":"boolean"}},"type":"object","required":["id","prefix","track","enabled"]},"ResponseTrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"timestamp":{"minLength":1,"type":"string","pattern":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+Z?"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["track","card","station","timestamp","lapTime","id","runner","valid","distance"]},"Scan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","_distance","distance"]},"Track":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"track":{"minLength":1,"type":"string"},"prefix":{"type":"string"},"key":{"type":"string","minLength":1},"cleartextkey":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","track","prefix","key","enabled"]},"TrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"timestamp":{"type":"integer"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"}},"type":"object","required":["track","card","station","distance","timestamp","lapTime","id","runner","valid","_distance"]},"RunnerCard":{"properties":{"id":{"type":"integer"},"runner":{},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"GroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"RunnerGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","distanceDonationAmount"]},"Runner":{"properties":{"group":{"minLength":1,"type":"string"},"resetRequestedTimestamp":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["group","distance","distanceDonationAmount","id","firstname","lastname"]},"DistanceDonation":{"properties":{"runner":{"minLength":1,"type":"string"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","paidAmount"]},"CreateDonation":{"properties":{"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["donor"]},"CreateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","donor"]},"FixedDonation":{"properties":{"_amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["_amount","amount","id","donor","paidAmount"]},"CreateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","donor"]},"UpdateDonation":{"properties":{"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor"]},"UpdateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor"]},"UpdateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","id","donor"]},"CreateParticipant":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"UpdateDonor":{"properties":{"id":{"type":"integer"},"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","lastname"]},"GroupContactNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"GroupContactIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateGroupContact":{"properties":{"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["firstname","lastname"]},"UpdateGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["id","firstname","lastname"]},"RunnerOrganizationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasTeamsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerOrganization":{"properties":{"address":{"type":"object"},"teams":{"items":{},"type":"array"},"registrationKey":{"format":"base64","type":"string"},"registrationEnabled":{"type":"boolean"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["teams","id","name"]},"ResponseRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"object"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["parentGroup","id","name"]},"RunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["parentGroup","id","name","distance","distanceDonationAmount"]},"RunnerOrganization":{"properties":{"address":{},"key":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["distance","distanceDonationAmount","id","name"]},"RunnerTeamNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamNeedsParentError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateRunner":{"properties":{"group":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["group","firstname","lastname"]},"ImportRunner":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"team":{"type":"string"},"class":{"type":"string"}},"type":"object","required":["firstname","lastname"]},"UpdateRunner":{"properties":{"id":{"type":"integer"},"group":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","group","firstname","lastname"]},"CreateRunnerCard":{"properties":{"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"UpdateRunnerCard":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"ScanNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateScan":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["runner","distance"]},"CreateTrackScan":{"properties":{"card":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"station":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["card"]},"UpdateScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","distance"]},"UpdateTrackScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","track"]},"GroupNameNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UpdateUser":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["id","firstname","lastname","email"]},"ResponseUserPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"},"PermissionNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionNeedsPrincipalError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreatePermission":{"properties":{"principal":{"minLength":1,"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["principal","target","action"]},"UpdatePermission":{"properties":{"id":{"type":"integer"},"principal":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"target":{"minLength":1,"type":"string"},"action":{"minLength":1,"type":"string"}},"type":"object","required":["id","principal","target","action"]},"CreateRunnerGroup":{"properties":{"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"CreateRunnerOrganization":{"properties":{"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"UpdateRunnerOrganization":{"properties":{"id":{"type":"integer"},"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","name"]},"CreateRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["parentGroup","name"]},"UpdateRunnerTeam":{"properties":{"id":{"type":"integer"},"parentGroup":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","parentGroup","name"]},"CreateSelfServiceCitizenRunner":{"properties":{"email":{"format":"email","type":"string","minLength":1},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateSelfServiceRunner":{"properties":{"team":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"ResponseSelfServiceTeam":{"properties":{"name":{"type":"string","minLength":1},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["name","id"]},"ResponseSelfServiceOrganisation":{"properties":{"name":{"type":"string","minLength":1},"teams":{"items":{},"type":"array"}},"type":"object","required":["name","teams"]},"ResponseSelfServiceDonor":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"}},"type":"object","required":["id","firstname","middlename","lastname"]},"ResponseSelfServiceDonation":{"properties":{"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["donor","amount","amountPerDistance"]},"ResponseSelfServiceRunner":{"properties":{"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"group":{"type":"string"},"distanceDonations":{"type":"string"},"token":{"type":"string"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","donationAmount","group","distanceDonations","id","firstname","middlename","lastname","phone","email"]},"ResponseSelfServiceScan":{"properties":{"id":{"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"lapTime":{"minLength":1,"type":"integer"}},"type":"object","required":["id","valid","distance","lapTime"]},"CreateScanStation":{"properties":{"description":{"type":"string"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["track"]},"UpdateScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id"]},"StatsClientNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"StatsClientIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseStatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"}},"type":"object","required":["id","prefix"]},"StatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"prefix":{"type":"string"},"key":{"type":"string"},"cleartextkey":{"type":"string"}},"type":"object","required":["id","prefix","key"]},"CreateStatsClient":{"properties":{"description":{"type":"string"}},"type":"object"},"ResponseStats":{"properties":{"total_runners":{"type":"integer"},"total_teams":{"type":"integer"},"total_orgs":{"type":"integer"},"total_users":{"type":"integer"},"total_scans":{"type":"integer"},"total_distance":{"type":"integer"},"total_donation":{"type":"integer"},"average_distance":{"type":"integer"}},"type":"object","required":["total_runners","total_teams","total_orgs","total_users","total_scans","total_distance","total_donation","average_distance"]},"ResponseStatsOrgnisation":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","donationAmount"]},"ResponseStatsRunner":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"minLaptime":{"type":"integer"},"group":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","distance","donationAmount","group"]},"ResponseStatsTeam":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"parent":{"type":"object"}},"type":"object","required":["id","name","distance","donationAmount","parent"]},"CreateTrack":{"properties":{"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["name","distance"]},"UpdateTrack":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"CreateUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["firstname","lastname","email","password"]},"CreateUserGroup":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["name"]},"UpdateUserGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["id","name"]},"ResponseUserGroupPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"}},"securitySchemes":{"AuthToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A JWT based access token. Use /api/auth/login or /api/auth/refresh to get one."},"RefreshTokenCookie":{"type":"apiKey","in":"cookie","name":"lfk_backend__refresh_token","description":"A cookie containing a JWT based refreh token. Attention: Doesn't work in swagger-ui. Use /api/auth/login or /api/auth/refresh to get one."},"StatsApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new stats client (post to /api/statsclients). Only valid for obtaining stats."},"StationApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new scan station (post to /api/stations). Only valid for creating scans."}}},"info":{"title":"LfK! Backend API","version":"0.11.1","description":"The the backend API for the LfK! runner system.
[Imprint](/imprint) & [Privacy](/privacy)"},"openapi":"3.0.0","paths":{"/api/auth/login":{"post":{"operationId":"AuthController.login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuth"}}},"description":"CreateAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Login","tags":["Auth"],"description":"Login with your username/email and password.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)"}},"/api/auth/logout":{"post":{"operationId":"AuthController.logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleLogout"}}},"description":"HandleLogout","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Logout"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Logout","tags":["Auth"],"description":"Logout using your refresh token.
This instantly invalidates all your access and refresh tokens.","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/refresh":{"post":{"operationId":"AuthController.refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshAuth"}}},"description":"RefreshAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/JwtNotProvidedError"},{"$ref":"#/components/schemas/IllegalJWTError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/RefreshTokenCountInvalidError"}]}}},"description":""}},"summary":"Refresh","tags":["Auth"],"description":"Refresh your access and refresh tokens using a valid refresh token.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/reset":{"post":{"operationId":"AuthController.getResetToken","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResetToken"}}},"description":"CreateResetToken","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSendingError"}}},"description":""}},"summary":"Get reset token","tags":["Auth"],"description":"Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}."}},"/api/auth/reset/{token}":{"post":{"operationId":"AuthController.resetPassword","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPassword"}}},"description":"ResetPassword","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}]}}},"description":""}},"summary":"Reset password","tags":["Auth"],"description":"Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username."}},"/api/donations":{"get":{"operationId":"DonationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseDonation"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseDistanceDonation"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation)."}},"/api/donations/{id}":{"get":{"operationId":"DonationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation)."},"delete":{"operationId":"DonationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content)."}},"/api/donations/fixed":{"post":{"operationId":"DonationController.postFixed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFixedDonation"}}},"description":"CreateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Post fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount."}},"/api/donations/distance":{"post":{"operationId":"DonationController.postDistance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistanceDonation"}}},"description":"CreateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDistanceDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""}},"summary":"Post distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer)."}},"/api/donations/fixed/{id}":{"put":{"operationId":"DonationController.putFixed","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFixedDonation"}}},"description":"UpdateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive."}},"/api/donations/distance/{id}":{"put":{"operationId":"DonationController.putDistance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDistanceDonation"}}},"description":"UpdateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive."}},"/api/donors":{"get":{"operationId":"DonorController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseDonor"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donor.
This includes the donor's current donation amount."},"post":{"operationId":"DonorController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDonor"}}},"description":"CreateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""}},"summary":"Post","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new donor."}},"/api/donors/{id}":{"get":{"operationId":"DonorController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donor whose id got provided.
This includes the donor's current donation amount."},"put":{"operationId":"DonorController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDonor"}}},"description":"UpdateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the donor whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"DonorController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations."}},"/api/contacts":{"get":{"operationId":"GroupContactController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseGroupContact"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all contacts.
This includes the contact's associated groups."},"post":{"operationId":"GroupContactController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupContact"}}},"description":"CreateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""}},"summary":"Post","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new contact."}},"/api/contacts/{id}":{"get":{"operationId":"GroupContactController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the contact whose id got provided.
This includes the contact's associated groups."},"put":{"operationId":"GroupContactController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupContact"}}},"description":"UpdateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GroupContactNotFoundError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the contact whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"GroupContactController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact."}},"/api/scans":{"get":{"operationId":"ScanController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran."},"post":{"operationId":"ScanController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScan"}}},"description":"CreateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance."}},"/api/scans/{id}":{"get":{"operationId":"ScanController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseScan"},{"$ref":"#/components/schemas/ResponseTrackScan"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran."},"put":{"operationId":"ScanController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScan"}}},"description":"UpdateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive."},"delete":{"operationId":"ScanController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content)."}},"/api/scans/trackscans":{"post":{"operationId":"ScanController.postTrackScans","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrackScan"}}},"description":"CreateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post track scans","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track scan (for \"normal\" scans use /scans instead).
Please remember that to provide the scan's card's station's id."}},"/api/scans/trackscans/{id}":{"put":{"operationId":"ScanController.putTrackScan","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrackScan"}}},"description":"UpdateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"},{"$ref":"#/components/schemas/ScanStationNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put track scan","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track scan (not \"normal\" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed."}},"/api/cards":{"get":{"operationId":"RunnerCardController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerCard"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all card."},"post":{"operationId":"RunnerCardController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerCard"}}},"description":"CreateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new card.
You can provide a associated runner by id but you don't have to."}},"/api/cards/{id}":{"get":{"operationId":"RunnerCardController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the card whose id got provided."},"put":{"operationId":"RunnerCardController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerCard"}}},"description":"UpdateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerCardNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerCardController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardHasScansError"}}},"description":""}},"summary":"Remove","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association)."}},"/api/cards/bulk":{"post":{"operationId":"RunnerCardController.postBlancoBulk","parameters":[{"in":"query","name":"count","required":false,"schema":{"type":"number"}},{"in":"query","name":"returnCards","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Post blanco bulk","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response."}},"/api/runners":{"get":{"operationId":"RunnerController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from all teams/orgs.
This includes the runner's group and distance ran."},"post":{"operationId":"RunnerController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunner"}}},"description":"CreateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseRunner"},{"$ref":"#/components/schemas/RunnerGroupNeededError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new runner.
Please remeber to provide the runner's group's id."}},"/api/runners/{id}":{"get":{"operationId":"RunnerController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the runner whose id got provided."},"put":{"operationId":"RunnerController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunner"}}},"description":"UpdateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the runner whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerHasDistanceDonationsError"}}},"description":""}},"summary":"Remove","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content)."}},"/api/runners/{id}/scans":{"get":{"operationId":"RunnerController.getScans","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param."}},"/api/runners/import":{"post":{"operationId":"ImportController.postJSON","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import":{"post":{"operationId":"ImportController.postOrgsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import":{"post":{"operationId":"ImportController.postTeamsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided team"}},"/api/runners/import/csv":{"post":{"operationId":"ImportController.postCSV","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import/csv":{"post":{"operationId":"ImportController.postOrgsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import/csv":{"post":{"operationId":"ImportController.postTeamsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided team"}},"/api/permissions":{"get":{"operationId":"PermissionController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponsePermission"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions for all users and groups."},"post":{"operationId":"PermissionController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermission"}}},"description":"CreatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalNotFoundError"}}},"description":""}},"summary":"Post","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one."}},"/api/permissions/{id}":{"get":{"operationId":"PermissionController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the permission whose id got provided."},"put":{"operationId":"PermissionController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePermission"}}},"description":"UpdatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePrincipal"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionNotFoundError"},{"$ref":"#/components/schemas/PrincipalNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionIdsNotMatchingError"},{"$ref":"#/components/schemas/PermissionNeedsPrincipalError"}]}}},"description":""}},"summary":"Put","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed."},"delete":{"operationId":"PermissionController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content)."}},"/api/users/me/":{"get":{"operationId":"MeController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about yourself."},"put":{"operationId":"MeController.put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed."},"delete":{"operationId":"MeController.remove","parameters":[{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well."}},"/api/users/me/permissions":{"get":{"operationId":"MeController.getPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects."}},"/api/teams":{"get":{"operationId":"RunnerTeamController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerTeam"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all teams.
This includes their parent organization and contact (if existing/associated)."},"post":{"operationId":"RunnerTeamController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerTeam"}}},"description":"CreateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""}},"summary":"Post","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation.
Please remember to provide it's parent group's id."}},"/api/teams/{id}":{"get":{"operationId":"RunnerTeamController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the team whose id got provided."},"put":{"operationId":"RunnerTeamController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerTeam"}}},"description":"UpdateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the team whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerTeamController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamHasRunnersError"}}},"description":""}},"summary":"Remove","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content)."}},"/api/teams/{id}/runners":{"get":{"operationId":"RunnerTeamController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this team.
This includes the runner's group and distance ran."}},"/api/organizations":{"get":{"operationId":"RunnerOrganizationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerOrganization"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all organizations.
This includes their address, contact and teams (if existing/associated)."},"post":{"operationId":"RunnerOrganizationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerOrganization"}}},"description":"CreateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""}},"summary":"Post","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation."}},"/api/organizations/{id}":{"get":{"operationId":"RunnerOrganizationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the organization whose id got provided."},"put":{"operationId":"RunnerOrganizationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerOrganization"}}},"description":"UpdateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the organization whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerOrganizationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerOrganizationHasTeamsError"},{"$ref":"#/components/schemas/RunnerOrganizationHasRunnersError"}]}}},"description":""}},"summary":"Remove","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content)."}},"/api/organizations/{id}/runners":{"get":{"operationId":"RunnerOrganizationController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"onlyDirect","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran."}},"/api/runners/me/{jwt}":{"get":{"operationId":"RunnerSelfServiceController.get","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get","tags":["Runner Self Service"],"description":"Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."},"delete":{"operationId":"RunnerSelfServiceController.remove","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Remove","tags":["Runner Self Service"],"description":"Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."}},"/api/runners/me/{jwt}/scans":{"get":{"operationId":"RunnerSelfServiceController.getScans","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseSelfServiceScan"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner Self Service"],"description":"Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support."}},"/api/stations/me":{"get":{"operationId":"RunnerSelfServiceController.getStationMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get station me","tags":["Runner Self Service"],"description":"Lists basic information about the station whose token got provided.
This includes it's associated track.","security":[{"StationApiToken":[]}]}},"/api/runners/forgot":{"post":{"operationId":"RunnerSelfServiceController.requestNewToken","parameters":[{"in":"query","name":"mail","required":false,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Request new token","tags":["Runner Self Service"],"description":"Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs)."}},"/api/runners/register":{"post":{"operationId":"RunnerSelfServiceController.registerRunner","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceCitizenRunner"}}},"description":"CreateSelfServiceCitizenRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerEmailNeededError"}}},"description":""}},"summary":"Register runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow \"everyday citizen\" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification."}},"/api/runners/register/{token}":{"post":{"operationId":"RunnerSelfServiceController.registerOrganizationRunner","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceRunner"}}},"description":"CreateSelfServiceRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Register organization runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in a provided org.
The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint."}},"/api/organizations/selfservice/{token}":{"get":{"operationId":"RunnerSelfServiceController.getSelfserviceOrg","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get selfservice org","tags":["Runner Self Service"],"description":"Get the basic info and teams for a org."}},"/api/stations":{"get":{"operationId":"ScanStationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseScanStation"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stations.
This includes their associated tracks."},"post":{"operationId":"ScanStationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanStation"}}},"description":"CreateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation."}},"/api/stations/{id}":{"get":{"operationId":"ScanStationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the station whose id got provided.
This includes it's associated track."},"put":{"operationId":"ScanStationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScanStation"}}},"description":"UpdateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the station whose id you provided.
Please remember that only the description and enabled state can be changed."},"delete":{"operationId":"ScanStationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationHasScansError"}}},"description":""}},"summary":"Remove","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead)."}},"/api/statsclients":{"get":{"operationId":"StatsClientController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsClient"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stats clients. Please remember that the key can only be viewed on creation."},"post":{"operationId":"StatsClientController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStatsClient"}}},"description":"CreateStatsClient","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""}},"summary":"Post","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation."}},"/api/statsclients/{id}":{"get":{"operationId":"StatsClientController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsClientNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation."},"delete":{"operationId":"StatsClientController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content)."}},"/api/stats":{"get":{"operationId":"StatsController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStats"}}},"description":""}},"summary":"Get","tags":["Stats"],"description":"A very basic stats endpoint providing basic counters for a dashboard or simmilar"}},"/api/stats/runners/distance":{"get":{"operationId":"StatsController.getTopRunnersByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by distance","tags":["Stats"],"description":"Returns the top ten runners by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/donations":{"get":{"operationId":"StatsController.getTopRunnersByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by donations","tags":["Stats"],"description":"Returns the top ten runners by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/laptime":{"get":{"operationId":"StatsController.getTopRunnersByLaptime","parameters":[{"in":"query","name":"track","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by laptime","tags":["Stats"],"description":"Returns the top ten runners by fastest laptime on your selected track (track by id).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/scans":{"get":{"operationId":"StatsController.getTopRunnersByTrackTime","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by track time","tags":["Stats"],"description":"Returns the top ten fastest track times (with their runner and the runner's group).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/distance":{"get":{"operationId":"StatsController.getTopTeamsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by distance","tags":["Stats"],"description":"Returns the top ten teams by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/donations":{"get":{"operationId":"StatsController.getTopTeamsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by donations","tags":["Stats"],"description":"Returns the top ten teams by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/distance":{"get":{"operationId":"StatsController.getTopOrgsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by distance","tags":["Stats"],"description":"Returns the top ten organizations by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/donations":{"get":{"operationId":"StatsController.getTopOrgsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by donations","tags":["Stats"],"description":"Returns the top ten organizations by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/status":{"get":{"operationId":"StatusController.get","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get","tags":["Status"],"description":"A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later."}},"/api/version":{"get":{"operationId":"StatusController.getVersion","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get version","tags":["Status"],"description":"A very basic endpoint that just returns the curent package version."}},"/api/tracks":{"get":{"operationId":"TrackController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseTrack"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all tracks."},"post":{"operationId":"TrackController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrack"}}},"description":"CreateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}}},"description":""}},"summary":"Post","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track.
Please remember that the track's distance must be greater than 0."}},"/api/tracks/{id}":{"get":{"operationId":"TrackController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the track whose id got provided."},"put":{"operationId":"TrackController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrack"}}},"description":"UpdateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TrackIdsNotMatchingError"},{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}]}}},"description":""}},"summary":"Put","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"TrackController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content)."}},"/api/users":{"get":{"operationId":"UserController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUser"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all users.
This includes their groups and permissions granted to them."},"post":{"operationId":"UserController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"CreateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Post","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user."}},"/api/users/{id}":{"get":{"operationId":"UserController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here."},"put":{"operationId":"UserController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content)."}},"/api/users/{id}/permissions":{"get":{"operationId":"UserController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects."}},"/api/usergroups":{"get":{"operationId":"UserGroupController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUserGroup"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all groups.
The information provided might change while the project continues to evolve."},"post":{"operationId":"UserGroupController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserGroup"}}},"description":"CreateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserGroup"},{"$ref":"#/components/schemas/UserGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group."}},"/api/usergroups/{id}":{"get":{"operationId":"UserGroupController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve."},"put":{"operationId":"UserGroupController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserGroup"}}},"description":"UpdateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserGroupController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content)."}},"/api/usergroups/{id}/permissions":{"get":{"operationId":"UserGroupController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroupPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the group as permission response objects."}}}} \ No newline at end of file +{"components":{"schemas":{"IllegalJWTError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNonexistantOrRefreshtokenInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"InvalidCredentialsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"NoPermissionError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameOrEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtNotProvidedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundOrRefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResetAlreadyRequestedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDisabledError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtUser":{"properties":{"id":{"type":"integer"},"uuid":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"refreshTokenCount":{"minLength":1,"type":"integer"},"profilePic":{"type":"string"}},"type":"object","required":["id","uuid","firstname","lastname","enabled","refreshTokenCount"]},"ResponsePrincipal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"ResponseUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"enabled":{"type":"boolean"},"profilePic":{"type":"string"},"groups":{"items":{},"type":"array"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["firstname","middlename","lastname","phone","email","username","enabled","profilePic","id"]},"ResponsePermission":{"properties":{"id":{"type":"integer"},"principal":{"minLength":1,"type":"object"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["id","principal","target","action"]},"Permission":{"properties":{"id":{"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"}},"type":"object","required":["id","target","action"]},"Principal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"UserAction":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"},"changed":{"type":"string"}},"type":"object","required":["id","target","action"]},"ResponseUserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"UserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"User":{"properties":{"uuid":{"format":"uuid","type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"groups":{},"enabled":{"type":"boolean"},"refreshTokenCount":{"type":"integer"},"profilePic":{"format":"url","type":"string"},"resetRequestedTimestamp":{"type":"string"},"actions":{},"id":{"type":"integer"}},"type":"object","required":["uuid","email","username","firstname","lastname","password","enabled","refreshTokenCount","profilePic","id"]},"MailSendingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameContainsIllegalCharacterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDeletionNotConfirmedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainUppercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainLowercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainNumberError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordTooShortError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseAuth":{"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"access_token_expires_at":{"type":"integer"},"refresh_token_expires_at":{"type":"integer"}},"type":"object","required":["access_token","refresh_token","access_token_expires_at","refresh_token_expires_at"]},"CreateAuth":{"properties":{"username":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"CreateResetToken":{"properties":{"email":{"type":"string","format":"email","minLength":1}},"type":"object","required":["email"]},"Logout":{"properties":{"timestamp":{"type":"string"}},"type":"object","required":["timestamp"]},"HandleLogout":{"properties":{"token":{"type":"string"}},"type":"object"},"RefreshAuth":{"properties":{"token":{"type":"string"}},"type":"object"},"ResetPassword":{"properties":{"resetToken":{"type":"string"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"ResponseEmpty":{"properties":{"response":{"type":"string"}},"type":"object","required":["response"]},"DonationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorReceiptAddressNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorHasDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerSelfserviceTimeoutError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerHasDistanceDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressFirstLineEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCityEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCountryEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"Address":{"properties":{"address1":{"type":"string"},"address2":{"type":"string"},"postalcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"}},"type":"object","required":["address1","address2","postalcode","city","country"]},"ResponseParticipant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email"]},"ResponseDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","middlename","lastname","phone","email"]},"ResponseDonation":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","amount","paidAmount"]},"ResponseGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"groups":{"type":"object"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email","groups","address"]},"ResponseRunnerGroup":{"properties":{"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["id","name"]},"ResponseRunner":{"properties":{"distance":{"type":"integer"},"group":{"type":"object"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","group","id","firstname","middlename","lastname","phone","email"]},"ResponseDistanceDonation":{"properties":{"runner":{"type":"object"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","amount","paidAmount"]},"Participant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"Donor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","lastname"]},"Donation":{"properties":{"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","paidAmount"]},"RunnerCardNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdOutOfRangeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerCard":{"properties":{"id":{"type":"integer"},"runner":{"type":"object"},"code":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","runner","code","enabled"]},"ResponseScan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","distance"]},"TrackNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackLapTimeCantBeNegativeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackHasScanStationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseTrack":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ResponseScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"},"track":{"minLength":1,"type":"object"},"enabled":{"type":"boolean"}},"type":"object","required":["id","prefix","track","enabled"]},"ResponseTrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"timestamp":{"minLength":1,"type":"string","pattern":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+Z?"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["track","card","station","timestamp","lapTime","id","runner","valid","distance"]},"Scan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","_distance","distance"]},"Track":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"track":{"minLength":1,"type":"string"},"prefix":{"type":"string"},"key":{"type":"string","minLength":1},"cleartextkey":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","track","prefix","key","enabled"]},"TrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"timestamp":{"type":"integer"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"}},"type":"object","required":["track","card","station","distance","timestamp","lapTime","id","runner","valid","_distance"]},"RunnerCard":{"properties":{"id":{"type":"integer"},"runner":{},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"GroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"RunnerGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","distanceDonationAmount"]},"Runner":{"properties":{"group":{"minLength":1,"type":"string"},"resetRequestedTimestamp":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["group","distance","distanceDonationAmount","id","firstname","lastname"]},"DistanceDonation":{"properties":{"runner":{"minLength":1,"type":"string"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","paidAmount"]},"CreateDonation":{"properties":{"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["donor"]},"CreateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","donor"]},"FixedDonation":{"properties":{"_amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["_amount","amount","id","donor","paidAmount"]},"CreateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","donor"]},"UpdateDonation":{"properties":{"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor"]},"UpdateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor"]},"UpdateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","id","donor"]},"CreateParticipant":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"UpdateDonor":{"properties":{"id":{"type":"integer"},"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","lastname"]},"GroupContactNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"GroupContactIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateGroupContact":{"properties":{"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["firstname","lastname"]},"UpdateGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["id","firstname","lastname"]},"RunnerOrganizationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasTeamsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerOrganization":{"properties":{"address":{"type":"object"},"teams":{"items":{},"type":"array"},"registrationKey":{"format":"base64","type":"string"},"registrationEnabled":{"type":"boolean"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["teams","id","name"]},"ResponseRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"object"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["parentGroup","id","name"]},"RunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["parentGroup","id","name","distance","distanceDonationAmount"]},"RunnerOrganization":{"properties":{"address":{},"key":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["distance","distanceDonationAmount","id","name"]},"RunnerTeamNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamNeedsParentError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateRunner":{"properties":{"group":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["group","firstname","lastname"]},"ImportRunner":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"team":{"type":"string"},"class":{"type":"string"}},"type":"object","required":["firstname","lastname"]},"UpdateRunner":{"properties":{"id":{"type":"integer"},"group":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","group","firstname","lastname"]},"CreateRunnerCard":{"properties":{"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"UpdateRunnerCard":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"ScanNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateScan":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["runner","distance"]},"CreateTrackScan":{"properties":{"card":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"station":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["card"]},"UpdateScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","distance"]},"UpdateTrackScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","track"]},"GroupNameNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UpdateUser":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["id","firstname","lastname","email"]},"ResponseUserPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"},"PermissionNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionNeedsPrincipalError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreatePermission":{"properties":{"principal":{"minLength":1,"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["principal","target","action"]},"UpdatePermission":{"properties":{"id":{"type":"integer"},"principal":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"target":{"minLength":1,"type":"string"},"action":{"minLength":1,"type":"string"}},"type":"object","required":["id","principal","target","action"]},"CreateRunnerGroup":{"properties":{"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"CreateRunnerOrganization":{"properties":{"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"UpdateRunnerOrganization":{"properties":{"id":{"type":"integer"},"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","name"]},"CreateRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["parentGroup","name"]},"UpdateRunnerTeam":{"properties":{"id":{"type":"integer"},"parentGroup":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","parentGroup","name"]},"CreateSelfServiceCitizenRunner":{"properties":{"email":{"format":"email","type":"string","minLength":1},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateSelfServiceRunner":{"properties":{"team":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"ResponseSelfServiceTeam":{"properties":{"name":{"type":"string","minLength":1},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["name","id"]},"ResponseSelfServiceOrganisation":{"properties":{"name":{"type":"string","minLength":1},"teams":{"items":{},"type":"array"}},"type":"object","required":["name","teams"]},"ResponseSelfServiceDonor":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"}},"type":"object","required":["id","firstname","middlename","lastname"]},"ResponseSelfServiceDonation":{"properties":{"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["donor","amount","amountPerDistance"]},"ResponseSelfServiceRunner":{"properties":{"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"group":{"type":"string"},"distanceDonations":{"type":"string"},"token":{"type":"string"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","donationAmount","group","distanceDonations","id","firstname","middlename","lastname","phone","email"]},"ResponseSelfServiceScan":{"properties":{"id":{"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"lapTime":{"minLength":1,"type":"integer"}},"type":"object","required":["id","valid","distance","lapTime"]},"CreateScanStation":{"properties":{"description":{"type":"string"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["track"]},"UpdateScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id"]},"StatsClientNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"StatsClientIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseStatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"}},"type":"object","required":["id","prefix"]},"StatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"prefix":{"type":"string"},"key":{"type":"string"},"cleartextkey":{"type":"string"}},"type":"object","required":["id","prefix","key"]},"CreateStatsClient":{"properties":{"description":{"type":"string"}},"type":"object"},"ResponseStats":{"properties":{"total_runners":{"type":"integer"},"total_teams":{"type":"integer"},"total_orgs":{"type":"integer"},"total_users":{"type":"integer"},"total_scans":{"type":"integer"},"total_distance":{"type":"integer"},"total_donation":{"type":"integer"},"average_distance":{"type":"integer"}},"type":"object","required":["total_runners","total_teams","total_orgs","total_users","total_scans","total_distance","total_donation","average_distance"]},"ResponseStatsOrgnisation":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","donationAmount"]},"ResponseStatsRunner":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"minLaptime":{"type":"integer"},"group":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","distance","donationAmount","group"]},"ResponseStatsTeam":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"parent":{"type":"object"}},"type":"object","required":["id","name","distance","donationAmount","parent"]},"CreateTrack":{"properties":{"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["name","distance"]},"UpdateTrack":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"CreateUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["firstname","lastname","email","password"]},"CreateUserGroup":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["name"]},"UpdateUserGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["id","name"]},"ResponseUserGroupPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"}},"securitySchemes":{"AuthToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A JWT based access token. Use /api/auth/login or /api/auth/refresh to get one."},"RefreshTokenCookie":{"type":"apiKey","in":"cookie","name":"lfk_backend__refresh_token","description":"A cookie containing a JWT based refreh token. Attention: Doesn't work in swagger-ui. Use /api/auth/login or /api/auth/refresh to get one."},"StatsApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new stats client (post to /api/statsclients). Only valid for obtaining stats."},"StationApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new scan station (post to /api/stations). Only valid for creating scans."}}},"info":{"title":"LfK! Backend API","version":"0.12.0","description":"The the backend API for the LfK! runner system.
[Imprint](/imprint) & [Privacy](/privacy)"},"openapi":"3.0.0","paths":{"/api/auth/login":{"post":{"operationId":"AuthController.login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuth"}}},"description":"CreateAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Login","tags":["Auth"],"description":"Login with your username/email and password.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)"}},"/api/auth/logout":{"post":{"operationId":"AuthController.logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleLogout"}}},"description":"HandleLogout","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Logout"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Logout","tags":["Auth"],"description":"Logout using your refresh token.
This instantly invalidates all your access and refresh tokens.","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/refresh":{"post":{"operationId":"AuthController.refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshAuth"}}},"description":"RefreshAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/JwtNotProvidedError"},{"$ref":"#/components/schemas/IllegalJWTError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/RefreshTokenCountInvalidError"}]}}},"description":""}},"summary":"Refresh","tags":["Auth"],"description":"Refresh your access and refresh tokens using a valid refresh token.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/reset":{"post":{"operationId":"AuthController.getResetToken","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResetToken"}}},"description":"CreateResetToken","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSendingError"}}},"description":""}},"summary":"Get reset token","tags":["Auth"],"description":"Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}."}},"/api/auth/reset/{token}":{"post":{"operationId":"AuthController.resetPassword","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPassword"}}},"description":"ResetPassword","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}]}}},"description":""}},"summary":"Reset password","tags":["Auth"],"description":"Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username."}},"/api/donations":{"get":{"operationId":"DonationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseDonation"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseDistanceDonation"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation)."}},"/api/donations/{id}":{"get":{"operationId":"DonationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation)."},"delete":{"operationId":"DonationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content)."}},"/api/donations/fixed":{"post":{"operationId":"DonationController.postFixed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFixedDonation"}}},"description":"CreateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Post fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount."}},"/api/donations/distance":{"post":{"operationId":"DonationController.postDistance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistanceDonation"}}},"description":"CreateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDistanceDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""}},"summary":"Post distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer)."}},"/api/donations/fixed/{id}":{"put":{"operationId":"DonationController.putFixed","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFixedDonation"}}},"description":"UpdateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive."}},"/api/donations/distance/{id}":{"put":{"operationId":"DonationController.putDistance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDistanceDonation"}}},"description":"UpdateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive."}},"/api/donors":{"get":{"operationId":"DonorController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseDonor"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donor.
This includes the donor's current donation amount."},"post":{"operationId":"DonorController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDonor"}}},"description":"CreateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""}},"summary":"Post","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new donor."}},"/api/donors/{id}":{"get":{"operationId":"DonorController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donor whose id got provided.
This includes the donor's current donation amount."},"put":{"operationId":"DonorController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDonor"}}},"description":"UpdateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the donor whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"DonorController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations."}},"/api/contacts":{"get":{"operationId":"GroupContactController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseGroupContact"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all contacts.
This includes the contact's associated groups."},"post":{"operationId":"GroupContactController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupContact"}}},"description":"CreateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""}},"summary":"Post","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new contact."}},"/api/contacts/{id}":{"get":{"operationId":"GroupContactController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the contact whose id got provided.
This includes the contact's associated groups."},"put":{"operationId":"GroupContactController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupContact"}}},"description":"UpdateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GroupContactNotFoundError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the contact whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"GroupContactController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact."}},"/api/scans":{"get":{"operationId":"ScanController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran."},"post":{"operationId":"ScanController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScan"}}},"description":"CreateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance."}},"/api/scans/{id}":{"get":{"operationId":"ScanController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseScan"},{"$ref":"#/components/schemas/ResponseTrackScan"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran."},"put":{"operationId":"ScanController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScan"}}},"description":"UpdateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive."},"delete":{"operationId":"ScanController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content)."}},"/api/scans/trackscans":{"post":{"operationId":"ScanController.postTrackScans","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrackScan"}}},"description":"CreateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post track scans","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track scan (for \"normal\" scans use /scans instead).
Please remember that to provide the scan's card's station's id."}},"/api/scans/trackscans/{id}":{"put":{"operationId":"ScanController.putTrackScan","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrackScan"}}},"description":"UpdateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"},{"$ref":"#/components/schemas/ScanStationNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put track scan","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track scan (not \"normal\" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed."}},"/api/cards":{"get":{"operationId":"RunnerCardController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerCard"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all card."},"post":{"operationId":"RunnerCardController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerCard"}}},"description":"CreateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new card.
You can provide a associated runner by id but you don't have to."}},"/api/cards/{id}":{"get":{"operationId":"RunnerCardController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the card whose id got provided."},"put":{"operationId":"RunnerCardController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerCard"}}},"description":"UpdateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerCardNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerCardController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardHasScansError"}}},"description":""}},"summary":"Remove","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association)."}},"/api/cards/bulk":{"post":{"operationId":"RunnerCardController.postBlancoBulk","parameters":[{"in":"query","name":"count","required":false,"schema":{"type":"number"}},{"in":"query","name":"returnCards","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Post blanco bulk","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response."}},"/api/runners":{"get":{"operationId":"RunnerController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from all teams/orgs.
This includes the runner's group and distance ran."},"post":{"operationId":"RunnerController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunner"}}},"description":"CreateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseRunner"},{"$ref":"#/components/schemas/RunnerGroupNeededError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new runner.
Please remeber to provide the runner's group's id."}},"/api/runners/{id}":{"get":{"operationId":"RunnerController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the runner whose id got provided."},"put":{"operationId":"RunnerController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunner"}}},"description":"UpdateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the runner whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerHasDistanceDonationsError"}}},"description":""}},"summary":"Remove","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content)."}},"/api/runners/{id}/scans":{"get":{"operationId":"RunnerController.getScans","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param."}},"/api/runners/import":{"post":{"operationId":"ImportController.postJSON","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import":{"post":{"operationId":"ImportController.postOrgsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import":{"post":{"operationId":"ImportController.postTeamsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided team"}},"/api/runners/import/csv":{"post":{"operationId":"ImportController.postCSV","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import/csv":{"post":{"operationId":"ImportController.postOrgsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import/csv":{"post":{"operationId":"ImportController.postTeamsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided team"}},"/api/permissions":{"get":{"operationId":"PermissionController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponsePermission"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions for all users and groups."},"post":{"operationId":"PermissionController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermission"}}},"description":"CreatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalNotFoundError"}}},"description":""}},"summary":"Post","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one."}},"/api/permissions/{id}":{"get":{"operationId":"PermissionController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the permission whose id got provided."},"put":{"operationId":"PermissionController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePermission"}}},"description":"UpdatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePrincipal"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionNotFoundError"},{"$ref":"#/components/schemas/PrincipalNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionIdsNotMatchingError"},{"$ref":"#/components/schemas/PermissionNeedsPrincipalError"}]}}},"description":""}},"summary":"Put","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed."},"delete":{"operationId":"PermissionController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content)."}},"/api/users/me/":{"get":{"operationId":"MeController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about yourself."},"put":{"operationId":"MeController.put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed."},"delete":{"operationId":"MeController.remove","parameters":[{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well."}},"/api/users/me/permissions":{"get":{"operationId":"MeController.getPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects."}},"/api/teams":{"get":{"operationId":"RunnerTeamController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerTeam"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all teams.
This includes their parent organization and contact (if existing/associated)."},"post":{"operationId":"RunnerTeamController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerTeam"}}},"description":"CreateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""}},"summary":"Post","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation.
Please remember to provide it's parent group's id."}},"/api/teams/{id}":{"get":{"operationId":"RunnerTeamController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the team whose id got provided."},"put":{"operationId":"RunnerTeamController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerTeam"}}},"description":"UpdateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the team whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerTeamController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamHasRunnersError"}}},"description":""}},"summary":"Remove","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content)."}},"/api/teams/{id}/runners":{"get":{"operationId":"RunnerTeamController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this team.
This includes the runner's group and distance ran."}},"/api/organizations":{"get":{"operationId":"RunnerOrganizationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerOrganization"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all organizations.
This includes their address, contact and teams (if existing/associated)."},"post":{"operationId":"RunnerOrganizationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerOrganization"}}},"description":"CreateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""}},"summary":"Post","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation."}},"/api/organizations/{id}":{"get":{"operationId":"RunnerOrganizationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the organization whose id got provided."},"put":{"operationId":"RunnerOrganizationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerOrganization"}}},"description":"UpdateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the organization whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerOrganizationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerOrganizationHasTeamsError"},{"$ref":"#/components/schemas/RunnerOrganizationHasRunnersError"}]}}},"description":""}},"summary":"Remove","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content)."}},"/api/organizations/{id}/runners":{"get":{"operationId":"RunnerOrganizationController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"onlyDirect","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran."}},"/api/runners/me/{jwt}":{"get":{"operationId":"RunnerSelfServiceController.get","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get","tags":["Runner Self Service"],"description":"Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."},"delete":{"operationId":"RunnerSelfServiceController.remove","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Remove","tags":["Runner Self Service"],"description":"Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."}},"/api/runners/me/{jwt}/scans":{"get":{"operationId":"RunnerSelfServiceController.getScans","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseSelfServiceScan"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner Self Service"],"description":"Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support."}},"/api/stations/me":{"get":{"operationId":"RunnerSelfServiceController.getStationMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get station me","tags":["Runner Self Service"],"description":"Lists basic information about the station whose token got provided.
This includes it's associated track.","security":[{"StationApiToken":[]}]}},"/api/runners/forgot":{"post":{"operationId":"RunnerSelfServiceController.requestNewToken","parameters":[{"in":"query","name":"mail","required":false,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Request new token","tags":["Runner Self Service"],"description":"Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs)."}},"/api/runners/register":{"post":{"operationId":"RunnerSelfServiceController.registerRunner","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceCitizenRunner"}}},"description":"CreateSelfServiceCitizenRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerEmailNeededError"}}},"description":""}},"summary":"Register runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow \"everyday citizen\" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification."}},"/api/runners/register/{token}":{"post":{"operationId":"RunnerSelfServiceController.registerOrganizationRunner","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceRunner"}}},"description":"CreateSelfServiceRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Register organization runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in a provided org.
The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint."}},"/api/organizations/selfservice/{token}":{"get":{"operationId":"RunnerSelfServiceController.getSelfserviceOrg","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get selfservice org","tags":["Runner Self Service"],"description":"Get the basic info and teams for a org."}},"/api/stations":{"get":{"operationId":"ScanStationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseScanStation"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stations.
This includes their associated tracks."},"post":{"operationId":"ScanStationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanStation"}}},"description":"CreateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation."}},"/api/stations/{id}":{"get":{"operationId":"ScanStationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the station whose id got provided.
This includes it's associated track."},"put":{"operationId":"ScanStationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScanStation"}}},"description":"UpdateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the station whose id you provided.
Please remember that only the description and enabled state can be changed."},"delete":{"operationId":"ScanStationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationHasScansError"}}},"description":""}},"summary":"Remove","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead)."}},"/api/statsclients":{"get":{"operationId":"StatsClientController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsClient"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stats clients. Please remember that the key can only be viewed on creation."},"post":{"operationId":"StatsClientController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStatsClient"}}},"description":"CreateStatsClient","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""}},"summary":"Post","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation."}},"/api/statsclients/{id}":{"get":{"operationId":"StatsClientController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsClientNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation."},"delete":{"operationId":"StatsClientController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content)."}},"/api/stats":{"get":{"operationId":"StatsController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStats"}}},"description":""}},"summary":"Get","tags":["Stats"],"description":"A very basic stats endpoint providing basic counters for a dashboard or simmilar"}},"/api/stats/runners/distance":{"get":{"operationId":"StatsController.getTopRunnersByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by distance","tags":["Stats"],"description":"Returns the top ten runners by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/donations":{"get":{"operationId":"StatsController.getTopRunnersByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by donations","tags":["Stats"],"description":"Returns the top ten runners by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/laptime":{"get":{"operationId":"StatsController.getTopRunnersByLaptime","parameters":[{"in":"query","name":"track","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by laptime","tags":["Stats"],"description":"Returns the top ten runners by fastest laptime on your selected track (track by id).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/scans":{"get":{"operationId":"StatsController.getTopRunnersByTrackTime","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by track time","tags":["Stats"],"description":"Returns the top ten fastest track times (with their runner and the runner's group).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/distance":{"get":{"operationId":"StatsController.getTopTeamsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by distance","tags":["Stats"],"description":"Returns the top ten teams by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/donations":{"get":{"operationId":"StatsController.getTopTeamsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by donations","tags":["Stats"],"description":"Returns the top ten teams by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/distance":{"get":{"operationId":"StatsController.getTopOrgsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by distance","tags":["Stats"],"description":"Returns the top ten organizations by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/donations":{"get":{"operationId":"StatsController.getTopOrgsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by donations","tags":["Stats"],"description":"Returns the top ten organizations by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/status":{"get":{"operationId":"StatusController.get","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get","tags":["Status"],"description":"A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later."}},"/api/version":{"get":{"operationId":"StatusController.getVersion","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get version","tags":["Status"],"description":"A very basic endpoint that just returns the curent package version."}},"/api/tracks":{"get":{"operationId":"TrackController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseTrack"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all tracks."},"post":{"operationId":"TrackController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrack"}}},"description":"CreateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}}},"description":""}},"summary":"Post","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track.
Please remember that the track's distance must be greater than 0."}},"/api/tracks/{id}":{"get":{"operationId":"TrackController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the track whose id got provided."},"put":{"operationId":"TrackController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrack"}}},"description":"UpdateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TrackIdsNotMatchingError"},{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}]}}},"description":""}},"summary":"Put","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"TrackController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content)."}},"/api/users":{"get":{"operationId":"UserController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUser"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all users.
This includes their groups and permissions granted to them."},"post":{"operationId":"UserController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"CreateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Post","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user."}},"/api/users/{id}":{"get":{"operationId":"UserController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here."},"put":{"operationId":"UserController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content)."}},"/api/users/{id}/permissions":{"get":{"operationId":"UserController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects."}},"/api/usergroups":{"get":{"operationId":"UserGroupController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUserGroup"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all groups.
The information provided might change while the project continues to evolve."},"post":{"operationId":"UserGroupController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserGroup"}}},"description":"CreateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserGroup"},{"$ref":"#/components/schemas/UserGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group."}},"/api/usergroups/{id}":{"get":{"operationId":"UserGroupController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve."},"put":{"operationId":"UserGroupController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserGroup"}}},"description":"UpdateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserGroupController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content)."}},"/api/usergroups/{id}/permissions":{"get":{"operationId":"UserGroupController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroupPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the group as permission response objects."}}}} \ No newline at end of file