diff --git a/loaders/pretalx/oapi/sdk.gen.ts b/loaders/pretalx/oapi/sdk.gen.ts index cdfa0e57..be5476a3 100644 --- a/loaders/pretalx/oapi/sdk.gen.ts +++ b/loaders/pretalx/oapi/sdk.gen.ts @@ -1,7 +1,7 @@ // This file is auto-generated by @hey-api/openapi-ts import { type Options as ClientOptions, type TDataShape, type Client, formDataBodySerializer } from './client'; -import type { ApiEventsListData, ApiEventsListResponses, RootRetrieveData, RootRetrieveResponses, AccessCodesListData, AccessCodesListResponses, AccessCodesCreateData, AccessCodesCreateResponses, AccessCodesDestroyData, AccessCodesDestroyResponses, AccessCodesRetrieveData, AccessCodesRetrieveResponses, AccessCodesPartialUpdateData, AccessCodesPartialUpdateResponses, AccessCodesUpdateData, AccessCodesUpdateResponses, AnswersListData, AnswersListResponses, AnswersCreateData, AnswersCreateResponses, AnswersDestroyData, AnswersDestroyResponses, AnswersRetrieveData, AnswersRetrieveResponses, AnswersPartialUpdateData, AnswersPartialUpdateResponses, AnswersUpdateData, AnswersUpdateResponses, MailTemplatesListData, MailTemplatesListResponses, MailTemplatesCreateData, MailTemplatesCreateResponses, MailTemplatesDestroyData, MailTemplatesDestroyResponses, MailTemplatesRetrieveData, MailTemplatesRetrieveResponses, MailTemplatesPartialUpdateData, MailTemplatesPartialUpdateResponses, MailTemplatesUpdateData, MailTemplatesUpdateResponses, QuestionOptionsListData, QuestionOptionsListResponses, QuestionOptionsCreateData, QuestionOptionsCreateResponses, QuestionOptionsDestroyData, QuestionOptionsDestroyResponses, QuestionOptionsRetrieveData, QuestionOptionsRetrieveResponses, QuestionOptionsPartialUpdateData, QuestionOptionsPartialUpdateResponses, QuestionOptionsUpdateData, QuestionOptionsUpdateResponses, QuestionsListData, QuestionsListResponses, QuestionsCreateData, QuestionsCreateResponses, QuestionsDestroyData, QuestionsDestroyResponses, QuestionsRetrieveData, QuestionsRetrieveResponses, QuestionsPartialUpdateData, QuestionsPartialUpdateResponses, QuestionsUpdateData, QuestionsUpdateResponses, ReviewsListData, ReviewsListResponses, ReviewsCreateData, ReviewsCreateResponses, ReviewsDestroyData, ReviewsDestroyResponses, ReviewsRetrieveData, ReviewsRetrieveResponses, ReviewsPartialUpdateData, ReviewsPartialUpdateResponses, ReviewsUpdateData, ReviewsUpdateResponses, RoomsListData, RoomsListResponses, RoomsCreateData, RoomsCreateResponses, RoomsDestroyData, RoomsDestroyResponses, RoomsRetrieveData, RoomsRetrieveResponses, RoomsPartialUpdateData, RoomsPartialUpdateResponses, RoomsUpdateData, RoomsUpdateResponses, SchedulesListData, SchedulesListResponses, SchedulesRetrieveData, SchedulesRetrieveResponses, SchedulesExportersRetrieveData, SchedulesExportersRetrieveResponses, SchedulesExportersRetrieveErrors, SchedulesByVersionRetrieveData, SchedulesByVersionRetrieveErrors, SchedulesReleaseCreateData, SchedulesReleaseCreateResponses, SchedulesReleaseCreateErrors, SlotsListData, SlotsListResponses, SlotsRetrieveData, SlotsRetrieveResponses, SlotsPartialUpdateData, SlotsPartialUpdateResponses, SlotsUpdateData, SlotsUpdateResponses, SlotsIcalRetrieveData, SlotsIcalRetrieveResponses, SpeakerInformationListData, SpeakerInformationListResponses, SpeakerInformationCreateData, SpeakerInformationCreateResponses, SpeakerInformationDestroyData, SpeakerInformationDestroyResponses, SpeakerInformationRetrieveData, SpeakerInformationRetrieveResponses, SpeakerInformationPartialUpdateData, SpeakerInformationPartialUpdateResponses, SpeakerInformationUpdateData, SpeakerInformationUpdateResponses, SpeakersListData, SpeakersListResponses, SpeakersRetrieveData, SpeakersRetrieveResponses, SpeakersPartialUpdateData, SpeakersPartialUpdateResponses, SpeakersUpdateData, SpeakersUpdateResponses, SubmissionTypesListData, SubmissionTypesListResponses, SubmissionTypesCreateData, SubmissionTypesCreateResponses, SubmissionTypesDestroyData, SubmissionTypesDestroyResponses, SubmissionTypesRetrieveData, SubmissionTypesRetrieveResponses, SubmissionTypesPartialUpdateData, SubmissionTypesPartialUpdateResponses, SubmissionTypesUpdateData, SubmissionTypesUpdateResponses, SubmissionsListData, SubmissionsListResponses, SubmissionsCreateData, SubmissionsCreateResponses, SubmissionsDestroyData, SubmissionsDestroyResponses, SubmissionsRetrieveData, SubmissionsRetrieveResponses, SubmissionsPartialUpdateData, SubmissionsPartialUpdateResponses, SubmissionsUpdateData, SubmissionsUpdateResponses, SubmissionsAcceptCreateData, SubmissionsAcceptCreateResponses, SubmissionsAddSpeakerCreateData, SubmissionsAddSpeakerCreateResponses, SubmissionsCancelCreateData, SubmissionsCancelCreateResponses, SubmissionsConfirmCreateData, SubmissionsConfirmCreateResponses, SubmissionsMakeSubmittedCreateData, SubmissionsMakeSubmittedCreateResponses, SubmissionsRejectCreateData, SubmissionsRejectCreateResponses, SubmissionsRemoveSpeakerCreateData, SubmissionsRemoveSpeakerCreateResponses, SubmissionsFavouriteDestroyData, SubmissionsFavouriteDestroyResponses, SubmissionsFavouriteDestroyErrors, SubmissionsFavouriteCreateData, SubmissionsFavouriteCreateResponses, SubmissionsFavouriteCreateErrors, SubmissionsFavouritesRetrieveData, SubmissionsFavouritesRetrieveResponses, TagsListData, TagsListResponses, TagsCreateData, TagsCreateResponses, TagsDestroyData, TagsDestroyResponses, TagsRetrieveData, TagsRetrieveResponses, TagsPartialUpdateData, TagsPartialUpdateResponses, TagsUpdateData, TagsUpdateResponses, TracksListData, TracksListResponses, TracksCreateData, TracksCreateResponses, TracksDestroyData, TracksDestroyResponses, TracksRetrieveData, TracksRetrieveResponses, TracksPartialUpdateData, TracksPartialUpdateResponses, TracksUpdateData, TracksUpdateResponses, ApiOrganisersTeamsListData, ApiOrganisersTeamsListResponses, ApiOrganisersTeamsCreateData, ApiOrganisersTeamsCreateResponses, ApiOrganisersTeamsDestroyData, ApiOrganisersTeamsDestroyResponses, ApiOrganisersTeamsRetrieveData, ApiOrganisersTeamsRetrieveResponses, ApiOrganisersTeamsPartialUpdateData, ApiOrganisersTeamsPartialUpdateResponses, ApiOrganisersTeamsUpdateData, ApiOrganisersTeamsUpdateResponses, ApiOrganisersTeamsInviteCreateData, ApiOrganisersTeamsInviteCreateResponses, ApiOrganisersTeamsInvitesDestroyData, ApiOrganisersTeamsInvitesDestroyResponses, ApiOrganisersTeamsRemoveMemberCreateData, ApiOrganisersTeamsRemoveMemberCreateResponses, ApiOrganisersTeamsRemoveMemberCreateErrors, FileUploadData, FileUploadResponses, FileUploadErrors } from './types.gen'; +import type { ApiRetrieveData, ApiRetrieveResponses, ApiEventsListData, ApiEventsListResponses, RootRetrieveData, RootRetrieveResponses, AccessCodesListData, AccessCodesListResponses, AccessCodesCreateData, AccessCodesCreateResponses, AccessCodesDestroyData, AccessCodesDestroyResponses, AccessCodesRetrieveData, AccessCodesRetrieveResponses, AccessCodesPartialUpdateData, AccessCodesPartialUpdateResponses, AccessCodesUpdateData, AccessCodesUpdateResponses, AnswersListData, AnswersListResponses, AnswersCreateData, AnswersCreateResponses, AnswersDestroyData, AnswersDestroyResponses, AnswersRetrieveData, AnswersRetrieveResponses, AnswersPartialUpdateData, AnswersPartialUpdateResponses, AnswersUpdateData, AnswersUpdateResponses, AnswersLogListData, AnswersLogListResponses, FeedbackListData, FeedbackListResponses, FeedbackCreateData, FeedbackCreateResponses, FeedbackDestroyData, FeedbackDestroyResponses, FeedbackRetrieveData, FeedbackRetrieveResponses, MailTemplatesListData, MailTemplatesListResponses, MailTemplatesCreateData, MailTemplatesCreateResponses, MailTemplatesDestroyData, MailTemplatesDestroyResponses, MailTemplatesRetrieveData, MailTemplatesRetrieveResponses, MailTemplatesPartialUpdateData, MailTemplatesPartialUpdateResponses, MailTemplatesUpdateData, MailTemplatesUpdateResponses, MailTemplatesLogListData, MailTemplatesLogListResponses, QuestionOptionsListData, QuestionOptionsListResponses, QuestionOptionsCreateData, QuestionOptionsCreateResponses, QuestionOptionsDestroyData, QuestionOptionsDestroyResponses, QuestionOptionsRetrieveData, QuestionOptionsRetrieveResponses, QuestionOptionsPartialUpdateData, QuestionOptionsPartialUpdateResponses, QuestionOptionsUpdateData, QuestionOptionsUpdateResponses, QuestionOptionsLogListData, QuestionOptionsLogListResponses, QuestionsListData, QuestionsListResponses, QuestionsCreateData, QuestionsCreateResponses, QuestionsDestroyData, QuestionsDestroyResponses, QuestionsRetrieveData, QuestionsRetrieveResponses, QuestionsPartialUpdateData, QuestionsPartialUpdateResponses, QuestionsUpdateData, QuestionsUpdateResponses, QuestionsIconRetrieveData, QuestionsIconRetrieveResponses, QuestionsLogListData, QuestionsLogListResponses, ReviewsListData, ReviewsListResponses, ReviewsCreateData, ReviewsCreateResponses, ReviewsDestroyData, ReviewsDestroyResponses, ReviewsRetrieveData, ReviewsRetrieveResponses, ReviewsPartialUpdateData, ReviewsPartialUpdateResponses, ReviewsUpdateData, ReviewsUpdateResponses, ReviewsLogListData, ReviewsLogListResponses, RoomsListData, RoomsListResponses, RoomsCreateData, RoomsCreateResponses, RoomsDestroyData, RoomsDestroyResponses, RoomsRetrieveData, RoomsRetrieveResponses, RoomsPartialUpdateData, RoomsPartialUpdateResponses, RoomsUpdateData, RoomsUpdateResponses, RoomsLogListData, RoomsLogListResponses, SchedulesListData, SchedulesListResponses, SchedulesRetrieveData, SchedulesRetrieveResponses, SchedulesExportersRetrieveData, SchedulesExportersRetrieveResponses, SchedulesExportersRetrieveErrors, SchedulesByVersionRetrieveData, SchedulesByVersionRetrieveResponses, SchedulesByVersionRetrieveErrors, SchedulesReleaseCreateData, SchedulesReleaseCreateResponses, SchedulesReleaseCreateErrors, SlotsListData, SlotsListResponses, SlotsRetrieveData, SlotsRetrieveResponses, SlotsPartialUpdateData, SlotsPartialUpdateResponses, SlotsUpdateData, SlotsUpdateResponses, SlotsIcalRetrieveData, SlotsIcalRetrieveResponses, SpeakerInformationListData, SpeakerInformationListResponses, SpeakerInformationCreateData, SpeakerInformationCreateResponses, SpeakerInformationDestroyData, SpeakerInformationDestroyResponses, SpeakerInformationRetrieveData, SpeakerInformationRetrieveResponses, SpeakerInformationPartialUpdateData, SpeakerInformationPartialUpdateResponses, SpeakerInformationUpdateData, SpeakerInformationUpdateResponses, SpeakerInformationLogListData, SpeakerInformationLogListResponses, SpeakersListData, SpeakersListResponses, SpeakersRetrieveData, SpeakersRetrieveResponses, SpeakersPartialUpdateData, SpeakersPartialUpdateResponses, SpeakersUpdateData, SpeakersUpdateResponses, SubmissionTypesListData, SubmissionTypesListResponses, SubmissionTypesCreateData, SubmissionTypesCreateResponses, SubmissionTypesDestroyData, SubmissionTypesDestroyResponses, SubmissionTypesRetrieveData, SubmissionTypesRetrieveResponses, SubmissionTypesPartialUpdateData, SubmissionTypesPartialUpdateResponses, SubmissionTypesUpdateData, SubmissionTypesUpdateResponses, SubmissionTypesLogListData, SubmissionTypesLogListResponses, SubmissionsListData, SubmissionsListResponses, SubmissionsCreateData, SubmissionsCreateResponses, SubmissionsDestroyData, SubmissionsDestroyResponses, SubmissionsRetrieveData, SubmissionsRetrieveResponses, SubmissionsPartialUpdateData, SubmissionsPartialUpdateResponses, SubmissionsUpdateData, SubmissionsUpdateResponses, SubmissionsAcceptCreateData, SubmissionsAcceptCreateResponses, SubmissionsAddSpeakerCreateData, SubmissionsAddSpeakerCreateResponses, SubmissionsCancelCreateData, SubmissionsCancelCreateResponses, SubmissionsConfirmCreateData, SubmissionsConfirmCreateResponses, SubmissionsInvitationsCreateData, SubmissionsInvitationsCreateResponses, SubmissionsInvitationsDestroyData, SubmissionsInvitationsDestroyResponses, SubmissionsLogListData, SubmissionsLogListResponses, SubmissionsMakeSubmittedCreateData, SubmissionsMakeSubmittedCreateResponses, SubmissionsRejectCreateData, SubmissionsRejectCreateResponses, SubmissionsRemoveSpeakerCreateData, SubmissionsRemoveSpeakerCreateResponses, SubmissionsResourcesCreateData, SubmissionsResourcesCreateResponses, SubmissionsResourcesDestroyData, SubmissionsResourcesDestroyResponses, SubmissionsFavouriteDestroyData, SubmissionsFavouriteDestroyResponses, SubmissionsFavouriteDestroyErrors, SubmissionsFavouriteCreateData, SubmissionsFavouriteCreateResponses, SubmissionsFavouriteCreateErrors, SubmissionsFavouritesRetrieveData, SubmissionsFavouritesRetrieveResponses, TagsListData, TagsListResponses, TagsCreateData, TagsCreateResponses, TagsDestroyData, TagsDestroyResponses, TagsRetrieveData, TagsRetrieveResponses, TagsPartialUpdateData, TagsPartialUpdateResponses, TagsUpdateData, TagsUpdateResponses, TagsLogListData, TagsLogListResponses, TracksListData, TracksListResponses, TracksCreateData, TracksCreateResponses, TracksDestroyData, TracksDestroyResponses, TracksRetrieveData, TracksRetrieveResponses, TracksPartialUpdateData, TracksPartialUpdateResponses, TracksUpdateData, TracksUpdateResponses, TracksLogListData, TracksLogListResponses, ApiOrganisersTeamsListData, ApiOrganisersTeamsListResponses, ApiOrganisersTeamsCreateData, ApiOrganisersTeamsCreateResponses, ApiOrganisersTeamsDestroyData, ApiOrganisersTeamsDestroyResponses, ApiOrganisersTeamsRetrieveData, ApiOrganisersTeamsRetrieveResponses, ApiOrganisersTeamsPartialUpdateData, ApiOrganisersTeamsPartialUpdateResponses, ApiOrganisersTeamsUpdateData, ApiOrganisersTeamsUpdateResponses, ApiOrganisersTeamsInviteCreateData, ApiOrganisersTeamsInviteCreateResponses, ApiOrganisersTeamsInvitesDestroyData, ApiOrganisersTeamsInvitesDestroyResponses, ApiOrganisersTeamsRemoveMemberCreateData, ApiOrganisersTeamsRemoveMemberCreateResponses, ApiOrganisersTeamsRemoveMemberCreateErrors, FileUploadData, FileUploadResponses, FileUploadErrors } from './types.gen'; import { client as _heyApiClient } from './client.gen'; export type Options = ClientOptions & { @@ -18,6 +18,17 @@ export type Options; }; +/** + * API Root + * Returns a link to the REST API, as well as the pretalx and API versions. + */ +export const apiRetrieve = (options?: Options) => { + return (options?.client ?? _heyApiClient).get({ + url: '/api/', + ...options + }); +}; + /** * List Events */ @@ -156,7 +167,7 @@ export const answersRetrieve = (options: O /** * Update Answer (Partial Update) - * Please note that you cannot change an answer’s related objects (question, submission, review, person). + * Please note that you cannot change an answer’s related objects (question, submission, review, speaker). */ export const answersPartialUpdate = (options: Options) => { return (options.client ?? _heyApiClient).patch({ @@ -171,7 +182,7 @@ export const answersPartialUpdate = (optio /** * Update Answer - * Please note that you cannot change an answer’s related objects (question, submission, review, person). + * Please note that you cannot change an answer’s related objects (question, submission, review, speaker). */ export const answersUpdate = (options: Options) => { return (options.client ?? _heyApiClient).put({ @@ -184,6 +195,62 @@ export const answersUpdate = (options: Opt }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const answersLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/answers/{id}/log/', + ...options + }); +}; + +/** + * List Feedback + */ +export const feedbackList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/feedback/', + ...options + }); +}; + +/** + * Create Feedback + * Submit feedback for a session. This endpoint is publicly accessible. + */ +export const feedbackCreate = (options: Options) => { + return (options.client ?? _heyApiClient).post({ + url: '/api/events/{event}/feedback/', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * Delete Feedback + */ +export const feedbackDestroy = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ + url: '/api/events/{event}/feedback/{id}/', + ...options + }); +}; + +/** + * Show Feedback + */ +export const feedbackRetrieve = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/feedback/{id}/', + ...options + }); +}; + /** * List Mail Templates */ @@ -256,6 +323,17 @@ export const mailTemplatesUpdate = (option }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const mailTemplatesLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/mail-templates/{id}/log/', + ...options + }); +}; + /** * List Question Options */ @@ -282,7 +360,7 @@ export const questionOptionsCreate = (opti /** * Delete Question Option - * Deleting a question option is only possible if it hasn't been used in any answers yet. + * Deleting a question option is only possible if it hasn’t been used in any answers yet. */ export const questionOptionsDestroy = (options: Options) => { return (options.client ?? _heyApiClient).delete({ @@ -329,6 +407,17 @@ export const questionOptionsUpdate = (opti }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const questionOptionsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/question-options/{id}/log/', + ...options + }); +}; + /** * List Questions */ @@ -403,6 +492,27 @@ export const questionsUpdate = (options: O }); }; +/** + * Returns the icon for this question as an SVG image if the question has an icon. + */ +export const questionsIconRetrieve = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/questions/{id}/icon/', + ...options + }); +}; + +/** + * Object changelog + * Changelog entries related to this object. + */ +export const questionsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/questions/{id}/log/', + ...options + }); +}; + /** * List Reviews */ @@ -475,6 +585,17 @@ export const reviewsUpdate = (options: Opt }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const reviewsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/reviews/{id}/log/', + ...options + }); +}; + /** * List Rooms */ @@ -547,6 +668,17 @@ export const roomsUpdate = (options: Optio }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const roomsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/rooms/{id}/log/', + ...options + }); +}; + /** * List Schedules * This endpoint returns a list of schedules. As schedule data can get very complex when expanded, the list endpoint only contains metadata. Please refer to the detail endpoint documentation to see how to retrieve slots, submissions and speakers. @@ -571,7 +703,7 @@ export const schedulesRetrieve = (options: /** * Get Exporter Content - * Retrieve the content of a specific schedule exporter by name. + * Retrieve the content of a specific schedule exporter by name. Requires 'action' permissions. */ export const schedulesExportersRetrieve = (options: Options) => { return (options.client ?? _heyApiClient).get({ @@ -581,11 +713,11 @@ export const schedulesExportersRetrieve = }; /** - * Redirect to a schedule by its version - * This endpoint redirects to a specific schedule using its version name (e.g., '1.0', 'My Release') instead of its numeric ID. + * Get schedule URL by version + * This endpoint returns a plain string URL for a specific schedule using its version name (e.g., '1.0', 'My Release') instead of its numeric ID. You have to pass either a version or request the latest version. Returns an empty string if the schedule is not found or not accessible. */ export const schedulesByVersionRetrieve = (options: Options) => { - return (options.client ?? _heyApiClient).get({ + return (options.client ?? _heyApiClient).get({ url: '/api/events/{event}/schedules/by-version/', ...options }); @@ -740,6 +872,17 @@ export const speakerInformationUpdate = (o }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const speakerInformationLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/speaker-information/{id}/log/', + ...options + }); +}; + /** * List Speakers */ @@ -755,7 +898,7 @@ export const speakersList = (options: Opti */ export const speakersRetrieve = (options: Options) => { return (options.client ?? _heyApiClient).get({ - url: '/api/events/{event}/speakers/{user__code__iexact}/', + url: '/api/events/{event}/speakers/{code__iexact}/', ...options }); }; @@ -765,7 +908,7 @@ export const speakersRetrieve = (options: */ export const speakersPartialUpdate = (options: Options) => { return (options.client ?? _heyApiClient).patch({ - url: '/api/events/{event}/speakers/{user__code__iexact}/', + url: '/api/events/{event}/speakers/{code__iexact}/', ...options, headers: { 'Content-Type': 'application/json', @@ -779,7 +922,7 @@ export const speakersPartialUpdate = (opti */ export const speakersUpdate = (options: Options) => { return (options.client ?? _heyApiClient).put({ - url: '/api/events/{event}/speakers/{user__code__iexact}/', + url: '/api/events/{event}/speakers/{code__iexact}/', ...options, headers: { 'Content-Type': 'application/json', @@ -860,6 +1003,17 @@ export const submissionTypesUpdate = (opti }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const submissionTypesLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/submission-types/{id}/log/', + ...options + }); +}; + /** * List Submissions */ @@ -990,6 +1144,41 @@ export const submissionsConfirmCreate = (o }); }; +/** + * Invite Speaker to Submission + */ +export const submissionsInvitationsCreate = (options: Options) => { + return (options.client ?? _heyApiClient).post({ + url: '/api/events/{event}/submissions/{code__iexact}/invitations/', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * Retract Speaker Invitation + */ +export const submissionsInvitationsDestroy = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ + url: '/api/events/{event}/submissions/{code__iexact}/invitations/{invitation_id}/', + ...options + }); +}; + +/** + * Object changelog + * Changelog entries related to this object. + */ +export const submissionsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/submissions/{code__iexact}/log/', + ...options + }); +}; + /** * Make Submission Submitted */ @@ -1032,6 +1221,30 @@ export const submissionsRemoveSpeakerCreate = (options: Options) => { + return (options.client ?? _heyApiClient).post({ + url: '/api/events/{event}/submissions/{code__iexact}/resources/', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * Remove Resource from Submission + */ +export const submissionsResourcesDestroy = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ + url: '/api/events/{event}/submissions/{code__iexact}/resources/{resource_id}/', + ...options + }); +}; + /** * Add or remove a submission from favourites * This endpoint is used by the schedule widget and uses session authentication. @@ -1137,6 +1350,17 @@ export const tagsUpdate = (options: Option }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const tagsLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/tags/{id}/log/', + ...options + }); +}; + /** * List Tracks */ @@ -1209,6 +1433,17 @@ export const tracksUpdate = (options: Opti }); }; +/** + * Object changelog + * Changelog entries related to this object. + */ +export const tracksLogList = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/api/events/{event}/tracks/{id}/log/', + ...options + }); +}; + /** * List Teams */ @@ -1321,7 +1556,7 @@ export const apiOrganisersTeamsRemoveMemberCreate = (options?: Options) => { return (options?.client ?? _heyApiClient).post({ diff --git a/loaders/pretalx/oapi/types.gen.ts b/loaders/pretalx/oapi/types.gen.ts index 662ffdb8..6d08f3ee 100644 --- a/loaders/pretalx/oapi/types.gen.ts +++ b/loaders/pretalx/oapi/types.gen.ts @@ -1,5 +1,38 @@ // This file is auto-generated by @hey-api/openapi-ts +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type ActivityLogReadable = { + readonly id: number; + readonly timestamp: string; + action_type: string; + is_orga_action?: boolean; + person: User; + readonly display: string; + data?: unknown; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type ActivityLogWritable = { + action_type: string; + is_orga_action?: boolean; + person: User; + data?: unknown; +}; + export type AddSpeakerRequest = { email: string; name?: string | null; @@ -22,7 +55,7 @@ export type AnswerReadable = { answer_file?: unknown; readonly submission: string; readonly review: number; - readonly person: string | null; + readonly person: string; options: Array; }; @@ -113,6 +146,7 @@ export type AnswerOptionReadable = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -127,6 +161,7 @@ export type AnswerOptionWritable = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -143,6 +178,7 @@ export type AnswerOptionCreateReadable = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -158,6 +194,7 @@ export type AnswerOptionCreateWritable = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -173,6 +210,7 @@ export type AnswerOptionCreateRequest = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -187,6 +225,7 @@ export type AnswerOptionRequest = { */ answer: MultiLanguageString; position?: number; + identifier?: string; }; /** @@ -269,9 +308,13 @@ export type EventReadable = { */ logo?: unknown; /** - * If you provide a header image, it will be displayed instead of your event’s color and/or header pattern at the top of all event pages. It will be center-aligned, so when the window shrinks, the center parts will continue to be displayed, and not stretched. + * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. + */ + header_image?: unknown; + /** + * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. */ - header_image?: string | null; + og_image?: unknown; /** * Default language */ @@ -330,9 +373,13 @@ export type EventWritable = { */ logo?: unknown; /** - * If you provide a header image, it will be displayed instead of your event’s color and/or header pattern at the top of all event pages. It will be center-aligned, so when the window shrinks, the center parts will continue to be displayed, and not stretched. + * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. + */ + header_image?: unknown; + /** + * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. */ - header_image?: string | null; + og_image?: unknown; /** * Default language */ @@ -366,6 +413,53 @@ export type EventList = { timezone?: TimezoneEnum; }; +/** + * A ModelSerializer that takes additional arguments for + * "fields", "omit" and "expand" in order to + * control which fields are displayed, and whether to replace simple + * values with complex, nested serializations + */ +export type FeedbackReadable = { + readonly id: number; + readonly submission: string; + readonly speaker: string; + rating?: number | null; + /** + * Feedback + */ + review: string; +}; + +/** + * A ModelSerializer that takes additional arguments for + * "fields", "omit" and "expand" in order to + * control which fields are displayed, and whether to replace simple + * values with complex, nested serializations + */ +export type FeedbackWritable = { + rating?: number | null; + /** + * Feedback + */ + review: string; +}; + +/** + * A ModelSerializer that takes additional arguments for + * "fields", "omit" and "expand" in order to + * control which fields are displayed, and whether to replace simple + * values with complex, nested serializations + */ +export type FeedbackWriteRequest = { + submission: string; + speaker?: string | null; + rating?: number | null; + /** + * Feedback + */ + review: string; +}; + /** * Serializer for file upload response. */ @@ -376,26 +470,42 @@ export type FileResponse = { id: string; }; +/** + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ +export type IconEnum = '-' | 'bsky' | 'discord' | 'github' | 'instagram' | 'linkedin' | 'mastodon' | 'twitter' | 'web' | 'youtube'; + /** * * `en` - English * * `de` - German * * `de-formal` - German (formal) * * `ar` - Arabic + * * `bg` - Bulgarian * * `cs` - Czech * * `el` - Greek * * `es` - Spanish * * `fr` - French * * `it` - Italian * * `ja-jp` - Japanese + * * `ko` - Korean * * `nl` - Dutch * * `pl` - Polish - * * `pt-br` - Brasilian Portuguese + * * `pt-br` - Brazilian Portuguese * * `pt-pt` - Portuguese * * `vi` - Vietnamese * * `zh-hant` - Traditional Chinese (Taiwan) * * `zh-hans` - Simplified Chinese */ -export type LocaleEnum = 'en' | 'de' | 'de-formal' | 'ar' | 'cs' | 'el' | 'es' | 'fr' | 'it' | 'ja-jp' | 'nl' | 'pl' | 'pt-br' | 'pt-pt' | 'vi' | 'zh-hant' | 'zh-hans'; +export type LocaleEnum = 'en' | 'de' | 'de-formal' | 'ar' | 'bg' | 'cs' | 'el' | 'es' | 'fr' | 'it' | 'ja-jp' | 'ko' | 'nl' | 'pl' | 'pt-br' | 'pt-pt' | 'vi' | 'zh-hant' | 'zh-hans'; /** * This serializer class will behave like the i18nfield serializer, @@ -512,6 +622,20 @@ export type NestedAnswerOptionRequest = { export type NullEnum = unknown; +export type PaginatedActivityLogListReadable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + +export type PaginatedActivityLogListWritable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + export type PaginatedAnswerListReadable = { count: number; next?: string | null; @@ -540,6 +664,20 @@ export type PaginatedAnswerOptionListWritable = { results: Array; }; +export type PaginatedFeedbackListReadable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + +export type PaginatedFeedbackListWritable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + export type PaginatedMailTemplateListReadable = { count: number; next?: string | null; @@ -666,20 +804,6 @@ export type PaginatedSubmissionTypeListWritable = { results: Array; }; -export type PaginatedSubmitterAccessCodeListReadable = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - -export type PaginatedSubmitterAccessCodeListWritable = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - export type PaginatedTagListReadable = { count: number; next?: string | null; @@ -736,6 +860,20 @@ export type PaginatedTrackListWritable = { results: Array; }; +export type PaginatedV1SubmitterAccessCodeListReadable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + +export type PaginatedV1SubmitterAccessCodeListWritable = { + count: number; + next?: string | null; + previous?: string | null; + results: Array; +}; + /** * * `submitted` - submitted * * `accepted` - accepted @@ -743,10 +881,9 @@ export type PaginatedTrackListWritable = { * * `rejected` - rejected * * `canceled` - canceled * * `withdrawn` - withdrawn - * * `deleted` - deleted * * `draft` - draft */ -export type PendingStateEnum = 'submitted' | 'accepted' | 'confirmed' | 'rejected' | 'canceled' | 'withdrawn' | 'deleted' | 'draft'; +export type PendingStateEnum = 'submitted' | 'accepted' | 'confirmed' | 'rejected' | 'canceled' | 'withdrawn' | 'draft'; /** * A ModelSerializer that takes additional arguments for @@ -756,6 +893,7 @@ export type PendingStateEnum = 'submitted' | 'accepted' | 'confirmed' | 'rejecte */ export type QuestionReadable = { readonly id: number; + identifier?: string; /** * Label */ @@ -793,7 +931,7 @@ export type QuestionReadable = { */ tracks?: Array; /** - * Session Types + * Session types * You can limit this field to some session types. Leave empty to apply to all session types. */ submission_types?: Array; @@ -832,6 +970,21 @@ export type QuestionReadable = { * Maximum value */ max_datetime?: string | null; + /** + * Custom URL fields that are shown publicly can use an icon when displaying the link. + * + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ + icon?: IconEnum | NullEnum | null; }; /** @@ -841,6 +994,7 @@ export type QuestionReadable = { * values with complex, nested serializations */ export type QuestionWritable = { + identifier?: string; /** * Label */ @@ -878,7 +1032,7 @@ export type QuestionWritable = { */ tracks?: Array; /** - * Session Types + * Session types * You can limit this field to some session types. Leave empty to apply to all session types. */ submission_types?: Array; @@ -917,6 +1071,21 @@ export type QuestionWritable = { * Maximum value */ max_datetime?: string | null; + /** + * Custom URL fields that are shown publicly can use an icon when displaying the link. + * + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ + icon?: IconEnum | NullEnum | null; }; /** @@ -927,6 +1096,7 @@ export type QuestionWritable = { */ export type QuestionOrgaReadable = { readonly id: number; + identifier?: string; /** * Label */ @@ -964,7 +1134,7 @@ export type QuestionOrgaReadable = { */ tracks?: Array; /** - * Session Types + * Session types * You can limit this field to some session types. Leave empty to apply to all session types. */ submission_types?: Array; @@ -1003,13 +1173,28 @@ export type QuestionOrgaReadable = { * Maximum value */ max_datetime?: string | null; + /** + * Custom URL fields that are shown publicly can use an icon when displaying the link. + * + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ + icon?: IconEnum | NullEnum | null; /** * Inactive fields will no longer be shown. */ active?: boolean; /** * Publish answers - * Responses will be shown on session or speaker pages as appropriate. Please note that you cannot make a field public after the first answers have been given, to allow speakers explicit consent before publishing information. + * Responses will be shown on session or speaker pages as appropriate. */ is_public?: boolean; /** @@ -1031,6 +1216,7 @@ export type QuestionOrgaReadable = { * values with complex, nested serializations */ export type QuestionOrgaWritable = { + identifier?: string; /** * Label */ @@ -1068,7 +1254,7 @@ export type QuestionOrgaWritable = { */ tracks?: Array; /** - * Session Types + * Session types * You can limit this field to some session types. Leave empty to apply to all session types. */ submission_types?: Array; @@ -1107,13 +1293,28 @@ export type QuestionOrgaWritable = { * Maximum value */ max_datetime?: string | null; + /** + * Custom URL fields that are shown publicly can use an icon when displaying the link. + * + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ + icon?: IconEnum | NullEnum | null; /** * Inactive fields will no longer be shown. */ active?: boolean; /** * Publish answers - * Responses will be shown on session or speaker pages as appropriate. Please note that you cannot make a field public after the first answers have been given, to allow speakers explicit consent before publishing information. + * Responses will be shown on session or speaker pages as appropriate. */ is_public?: boolean; /** @@ -1135,6 +1336,7 @@ export type QuestionOrgaWritable = { * values with complex, nested serializations */ export type QuestionOrgaRequest = { + identifier?: string; /** * Label */ @@ -1172,7 +1374,7 @@ export type QuestionOrgaRequest = { */ tracks?: Array; /** - * Session Types + * Session types * You can limit this field to some session types. Leave empty to apply to all session types. */ submission_types?: Array; @@ -1211,13 +1413,28 @@ export type QuestionOrgaRequest = { * Maximum value */ max_datetime?: string | null; + /** + * Custom URL fields that are shown publicly can use an icon when displaying the link. + * + * * `-` - No icon + * * `bsky` - Bluesky + * * `discord` - Discord + * * `github` - GitHub + * * `instagram` - Instagram + * * `linkedin` - LinkedIn + * * `mastodon` - Mastodon + * * `twitter` - Twitter + * * `web` - Website + * * `youtube` - YouTube + */ + icon?: IconEnum | NullEnum | null; /** * Inactive fields will no longer be shown. */ active?: boolean; /** * Publish answers - * Responses will be shown on session or speaker pages as appropriate. Please note that you cannot make a field public after the first answers have been given, to allow speakers explicit consent before publishing information. + * Responses will be shown on session or speaker pages as appropriate. */ is_public?: boolean; /** @@ -1243,6 +1460,21 @@ export type RemoveSpeakerRequest = { user: string; }; +/** + * Resources may not be updated, only created and deleted. Use the + * ``link`` field to provide an external link or the ``resource`` + * field to provide an uploaded file. + */ +export type ResourceWriteRequest = { + /** + * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. + */ + resource?: unknown | null; + link?: string | null; + description: string; + is_public?: boolean; +}; + /** * A ModelSerializer that takes additional arguments for * "fields", "omit" and "expand" in order to @@ -1253,7 +1485,7 @@ export type ReviewReadable = { readonly id: number; submission: string; /** - * What do you think? + * Review */ text?: string | null; readonly score: string | null; @@ -1271,7 +1503,7 @@ export type ReviewReadable = { export type ReviewWritable = { submission: string; /** - * What do you think? + * Review */ text?: string | null; scores: Array; @@ -1311,7 +1543,7 @@ export type ReviewScoreWritable = { export type ReviewWriteRequest = { submission: string; /** - * What do you think? + * Review */ text?: string | null; scores: Array; @@ -1468,6 +1700,17 @@ export type RoomOrgaRequest = { availabilities?: Array; }; +export type Root = { + name: string; + version: string; + api_version: string; + urls: RootUrls; +}; + +export type RootUrls = { + events: string; +}; + /** * A ModelSerializer that takes additional arguments for * "fields", "omit" and "expand" in order to @@ -1545,9 +1788,6 @@ export type ScheduleReleaseRequest = { export type SpeakerReadable = { readonly code: string; name: string; - /** - * You can use Markdown here. - */ biography?: string | null; readonly submissions: Array; readonly avatar_url: string; @@ -1562,9 +1802,6 @@ export type SpeakerReadable = { */ export type SpeakerWritable = { name: string; - /** - * You can use Markdown here. - */ biography?: string | null; }; @@ -1674,9 +1911,6 @@ export type SpeakerInformationRequest = { export type SpeakerOrgaReadable = { readonly code: string; name: string; - /** - * You can use Markdown here. - */ biography?: string | null; readonly submissions: Array; readonly avatar_url: string; @@ -1689,6 +1923,10 @@ export type SpeakerOrgaReadable = { */ has_arrived?: boolean; availabilities?: Array; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; }; /** @@ -1699,9 +1937,6 @@ export type SpeakerOrgaReadable = { */ export type SpeakerOrgaWritable = { name: string; - /** - * You can use Markdown here. - */ biography?: string | null; email: string; /** @@ -1709,6 +1944,10 @@ export type SpeakerOrgaWritable = { */ has_arrived?: boolean; availabilities?: Array; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; }; /** @@ -1719,9 +1958,6 @@ export type SpeakerOrgaWritable = { */ export type SpeakerUpdateRequest = { name: string; - /** - * You can use Markdown here. - */ biography?: string | null; email: string; /** @@ -1729,6 +1965,10 @@ export type SpeakerUpdateRequest = { */ has_arrived?: boolean; availabilities?: Array; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; /** * When reading data, a URL pointing to a downloadable file. When writing adata, a reference to a file uploaded via the file uploads endpoint. */ @@ -1742,10 +1982,9 @@ export type SpeakerUpdateRequest = { * * `rejected` - rejected * * `canceled` - canceled * * `withdrawn` - withdrawn - * * `deleted` - deleted * * `draft` - draft */ -export type StateEnum = 'submitted' | 'accepted' | 'confirmed' | 'rejected' | 'canceled' | 'withdrawn' | 'deleted' | 'draft'; +export type StateEnum = 'submitted' | 'accepted' | 'confirmed' | 'rejected' | 'canceled' | 'withdrawn' | 'draft'; /** * A ModelSerializer that takes additional arguments for @@ -1767,13 +2006,7 @@ export type SubmissionReadable = { * Proposal state */ state: StateEnum; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -1818,13 +2051,7 @@ export type SubmissionWritable = { * Proposal state */ state: StateEnum; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -1868,13 +2095,7 @@ export type SubmissionOrgaReadable = { * Proposal state */ state: StateEnum; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -1924,6 +2145,9 @@ export type SubmissionOrgaReadable = { readonly is_anonymised: boolean; readonly median_score: number | null; readonly mean_score: number | null; + readonly created: string; + readonly updated: string; + readonly invitations: Array; }; /** @@ -1944,13 +2168,7 @@ export type SubmissionOrgaWritable = { * Proposal state */ state: StateEnum; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -2010,13 +2228,7 @@ export type SubmissionOrgaRequest = { submission_type: number; track?: number | null; tags?: Array; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -2076,13 +2288,7 @@ export type SubmissionRequest = { submission_type: number; track?: number | null; tags?: Array; - /** - * You can use Markdown here. - */ abstract?: string | null; - /** - * You can use Markdown here. - */ description?: string | null; /** * Defaults to the submission type’s duration @@ -2180,35 +2386,70 @@ export type SubmissionTypeRequest = { }; /** - * A ModelSerializer that takes additional arguments for - * "fields", "omit" and "expand" in order to - * control which fields are displayed, and whether to replace simple - * values with complex, nested serializations + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. */ -export type SubmitterAccessCodeReadable = { +export type TagReadable = { readonly id: number; + tag: string; + description?: MultiLanguageString; /** - * Access code + * Colour */ - code: string; + color: string; /** - * You can restrict the access code to a single track, or leave it open for all tracks. + * Show tag publicly + * Public tags can be selected by submitters in the CfP if you activate the tags field. In a future release of pretalx, public tags may also be shown in the public schedule. */ - track?: number | null; + is_public?: boolean; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type TagWritable = { + tag: string; + description?: MultiLanguageString; /** - * Session Type - * You can restrict the access code to a single session type, or leave it open for all session types. + * Colour */ - submission_type?: number | null; + color: string; /** - * You can set or change this date later to invalidate the access code. + * Show tag publicly + * Public tags can be selected by submitters in the CfP if you activate the tags field. In a future release of pretalx, public tags may also be shown in the public schedule. */ - valid_until?: string | null; + is_public?: boolean; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type TagRequest = { + tag: string; + description?: MultiLanguageString; /** - * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. + * Colour */ - maximum_uses?: number | null; - readonly redeemed: number; + color: string; + /** + * Show tag publicly + * Public tags can be selected by submitters in the CfP if you activate the tags field. In a future release of pretalx, public tags may also be shown in the public schedule. + */ + is_public?: boolean; }; /** @@ -2217,126 +2458,8 @@ export type SubmitterAccessCodeReadable = { * control which fields are displayed, and whether to replace simple * values with complex, nested serializations */ -export type SubmitterAccessCodeWritable = { - /** - * Access code - */ - code: string; - /** - * You can restrict the access code to a single track, or leave it open for all tracks. - */ - track?: number | null; - /** - * Session Type - * You can restrict the access code to a single session type, or leave it open for all session types. - */ - submission_type?: number | null; - /** - * You can set or change this date later to invalidate the access code. - */ - valid_until?: string | null; - /** - * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. - */ - maximum_uses?: number | null; -}; - -/** - * A ModelSerializer that takes additional arguments for - * "fields", "omit" and "expand" in order to - * control which fields are displayed, and whether to replace simple - * values with complex, nested serializations - */ -export type SubmitterAccessCodeRequest = { - /** - * Access code - */ - code: string; - /** - * You can restrict the access code to a single track, or leave it open for all tracks. - */ - track?: number | null; - /** - * Session Type - * You can restrict the access code to a single session type, or leave it open for all session types. - */ - submission_type?: number | null; - /** - * You can set or change this date later to invalidate the access code. - */ - valid_until?: string | null; - /** - * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. - */ - maximum_uses?: number | null; -}; - -/** - * This serializer class will behave like the i18nfield serializer, - * outputting a dict/object for internationalized strings, unless if - * when it was initialized with an ``override_locale`` (taken from - * a URL queryparam, usually), in which case the string will be cast - * to the locale in question – relying on either a view or a middleware - * to apply the locale manager. - */ -export type TagReadable = { - readonly id: number; - tag: string; - description?: MultiLanguageString; - color: string; - /** - * Show tag publicly - * Tags are currently only in use for organisers and reviewers. They will be visible publicly in a future release of pretalx. - */ - is_public?: boolean; -}; - -/** - * This serializer class will behave like the i18nfield serializer, - * outputting a dict/object for internationalized strings, unless if - * when it was initialized with an ``override_locale`` (taken from - * a URL queryparam, usually), in which case the string will be cast - * to the locale in question – relying on either a view or a middleware - * to apply the locale manager. - */ -export type TagWritable = { - tag: string; - description?: MultiLanguageString; - color: string; - /** - * Show tag publicly - * Tags are currently only in use for organisers and reviewers. They will be visible publicly in a future release of pretalx. - */ - is_public?: boolean; -}; - -/** - * This serializer class will behave like the i18nfield serializer, - * outputting a dict/object for internationalized strings, unless if - * when it was initialized with an ``override_locale`` (taken from - * a URL queryparam, usually), in which case the string will be cast - * to the locale in question – relying on either a view or a middleware - * to apply the locale manager. - */ -export type TagRequest = { - tag: string; - description?: MultiLanguageString; - color: string; - /** - * Show tag publicly - * Tags are currently only in use for organisers and reviewers. They will be visible publicly in a future release of pretalx. - */ - is_public?: boolean; -}; - -/** - * A ModelSerializer that takes additional arguments for - * "fields", "omit" and "expand" in order to - * control which fields are displayed, and whether to replace simple - * values with complex, nested serializations - */ -export type TalkSlotReadable = { - readonly id: number; +export type TalkSlotReadable = { + readonly id: number; /** * The room this talk is scheduled in, if any */ @@ -2345,7 +2468,7 @@ export type TalkSlotReadable = { * When the talk starts, if it is currently scheduled */ start?: string | null; - end: string; + end?: string; readonly submission: string; readonly schedule: number; description?: MultiLanguageString | null; @@ -2371,7 +2494,7 @@ export type TalkSlotWritable = { * When the talk starts, if it is currently scheduled */ start?: string | null; - end: string; + end?: string; description?: MultiLanguageString | null; }; @@ -2390,7 +2513,7 @@ export type TalkSlotRequest = { * When the talk starts, if it is currently scheduled */ start?: string | null; - end: string; + end?: string; description?: MultiLanguageString | null; }; @@ -2554,6 +2677,9 @@ export type TrackReadable = { readonly id: number; name: MultiLanguageString; description?: MultiLanguageString; + /** + * Colour + */ color: string; /** * The position field is used to determine the order that tracks are displayed in (lowest first). @@ -2576,6 +2702,9 @@ export type TrackReadable = { export type TrackWritable = { name: MultiLanguageString; description?: MultiLanguageString; + /** + * Colour + */ color: string; /** * The position field is used to determine the order that tracks are displayed in (lowest first). @@ -2598,6 +2727,9 @@ export type TrackWritable = { export type TrackRequest = { name: MultiLanguageString; description?: MultiLanguageString; + /** + * Colour + */ color: string; /** * The position field is used to determine the order that tracks are displayed in (lowest first). @@ -2609,6 +2741,111 @@ export type TrackRequest = { requires_access_code?: boolean; }; +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type User = { + code?: string | null; + /** + * Please enter the name you wish to be displayed publicly. This name will be used for all events you are participating in on this server. + */ + name: string; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type V1SubmitterAccessCodeReadable = { + readonly id: number; + /** + * Access code + */ + code: string; + track?: number | null; + submission_type?: number | null; + /** + * You can set or change this date later to invalidate the access code. + */ + valid_until?: string | null; + /** + * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. + */ + maximum_uses?: number | null; + readonly redeemed: number; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type V1SubmitterAccessCodeWritable = { + /** + * Access code + */ + code: string; + track?: number | null; + submission_type?: number | null; + /** + * You can set or change this date later to invalidate the access code. + */ + valid_until?: string | null; + /** + * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. + */ + maximum_uses?: number | null; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; +}; + +/** + * This serializer class will behave like the i18nfield serializer, + * outputting a dict/object for internationalized strings, unless if + * when it was initialized with an ``override_locale`` (taken from + * a URL queryparam, usually), in which case the string will be cast + * to the locale in question – relying on either a view or a middleware + * to apply the locale manager. + */ +export type V1SubmitterAccessCodeRequest = { + /** + * Access code + */ + code: string; + track?: number | null; + submission_type?: number | null; + /** + * You can set or change this date later to invalidate the access code. + */ + valid_until?: string | null; + /** + * Numbers of times this access code can be used to submit a proposal. Leave empty for no limit. + */ + maximum_uses?: number | null; + /** + * Internal notes for other organisers/reviewers. Not visible to the speakers or the public. + */ + internal_notes?: string | null; +}; + /** * * `number` - Number * * `string` - Text (one-line) @@ -2631,15 +2868,33 @@ export type VariantEnum = 'number' | 'string' | 'text' | 'url' | 'date' | 'datet * * `speaker.invite` - Add a speaker to a proposal (new account) * * `speaker.invite.existing` - Add a speaker to a proposal (existing account) * * `question.reminder` - Custom fields reminder + * * `draft.reminder` - Draft proposal reminder * * `schedule.new` - New schedule published */ -export type RoleEnum = 'submission.new' | 'submission.new.internal' | 'submission.state.accepted' | 'submission.state.rejected' | 'speaker.invite' | 'speaker.invite.existing' | 'question.reminder' | 'schedule.new'; +export type RoleEnum = 'submission.new' | 'submission.new.internal' | 'submission.state.accepted' | 'submission.state.rejected' | 'speaker.invite' | 'speaker.invite.existing' | 'question.reminder' | 'draft.reminder' | 'schedule.new'; + +export type ApiRetrieveData = { + body?: never; + path?: never; + query?: never; + url: '/api/'; +}; + +export type ApiRetrieveResponses = { + 200: Root; +}; + +export type ApiRetrieveResponse = ApiRetrieveResponses[keyof ApiRetrieveResponses]; export type ApiEventsListData = { body?: never; path?: never; query?: { is_public?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A search term, searching in `"name"`. */ @@ -2686,6 +2941,10 @@ export type AccessCodesListData = { * Select fields to expand. */ expand?: Array<'submission_type' | 'track'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -2703,13 +2962,13 @@ export type AccessCodesListData = { }; export type AccessCodesListResponses = { - 200: PaginatedSubmitterAccessCodeListReadable; + 200: PaginatedV1SubmitterAccessCodeListReadable; }; export type AccessCodesListResponse = AccessCodesListResponses[keyof AccessCodesListResponses]; export type AccessCodesCreateData = { - body: SubmitterAccessCodeRequest; + body: V1SubmitterAccessCodeRequest; path: { /** * The event’s slug @@ -2721,7 +2980,7 @@ export type AccessCodesCreateData = { }; export type AccessCodesCreateResponses = { - 201: SubmitterAccessCodeReadable; + 201: V1SubmitterAccessCodeReadable; }; export type AccessCodesCreateResponse = AccessCodesCreateResponses[keyof AccessCodesCreateResponses]; @@ -2767,19 +3026,19 @@ export type AccessCodesRetrieveData = { /** * Select fields to expand. */ - expand?: Array<'submission_type' | 'track'>; + expand?: Array<'submission_type' | 'submission_types' | 'track' | 'tracks'>; }; url: '/api/events/{event}/access-codes/{id}/'; }; export type AccessCodesRetrieveResponses = { - 200: SubmitterAccessCodeReadable; + 200: V1SubmitterAccessCodeReadable; }; export type AccessCodesRetrieveResponse = AccessCodesRetrieveResponses[keyof AccessCodesRetrieveResponses]; export type AccessCodesPartialUpdateData = { - body: SubmitterAccessCodeRequest; + body: V1SubmitterAccessCodeRequest; path: { /** * The event’s slug @@ -2795,13 +3054,13 @@ export type AccessCodesPartialUpdateData = { }; export type AccessCodesPartialUpdateResponses = { - 200: SubmitterAccessCodeReadable; + 200: V1SubmitterAccessCodeReadable; }; export type AccessCodesPartialUpdateResponse = AccessCodesPartialUpdateResponses[keyof AccessCodesPartialUpdateResponses]; export type AccessCodesUpdateData = { - body: SubmitterAccessCodeRequest; + body: V1SubmitterAccessCodeRequest; path: { /** * The event’s slug @@ -2817,7 +3076,7 @@ export type AccessCodesUpdateData = { }; export type AccessCodesUpdateResponses = { - 200: SubmitterAccessCodeReadable; + 200: V1SubmitterAccessCodeReadable; }; export type AccessCodesUpdateResponse = AccessCodesUpdateResponses[keyof AccessCodesUpdateResponses]; @@ -2835,6 +3094,10 @@ export type AnswersListData = { * Select fields to expand. */ expand?: Array<'options' | 'question' | 'question.submission_types' | 'question.tracks'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -2843,13 +3106,13 @@ export type AnswersListData = { * Number of results to return per page. */ page_size?: number; - person?: string; /** * A search term, searching in `"answer"`. */ q?: string; question?: number; review?: number; + speaker?: string; submission?: string; }; url: '/api/events/{event}/answers/'; @@ -2975,6 +3238,162 @@ export type AnswersUpdateResponses = { export type AnswersUpdateResponse = AnswersUpdateResponses[keyof AnswersUpdateResponses]; +export type AnswersLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this answer. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + question?: number; + review?: number; + speaker?: string; + submission?: string; + }; + url: '/api/events/{event}/answers/{id}/log/'; +}; + +export type AnswersLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type AnswersLogListResponse = AnswersLogListResponses[keyof AnswersLogListResponses]; + +export type FeedbackListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + }; + query?: { + /** + * Select fields to expand. + */ + expand?: Array<'speaker' | 'submission'>; + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term, searching in `"submission.title"`. + */ + q?: string; + /** + * Filter by submission code + */ + submission?: string; + }; + url: '/api/events/{event}/feedback/'; +}; + +export type FeedbackListResponses = { + 200: PaginatedFeedbackListReadable; +}; + +export type FeedbackListResponse = FeedbackListResponses[keyof FeedbackListResponses]; + +export type FeedbackCreateData = { + body: FeedbackWriteRequest; + path: { + /** + * The event’s slug + */ + event: string; + }; + query?: never; + url: '/api/events/{event}/feedback/'; +}; + +export type FeedbackCreateResponses = { + 201: FeedbackReadable; +}; + +export type FeedbackCreateResponse = FeedbackCreateResponses[keyof FeedbackCreateResponses]; + +export type FeedbackDestroyData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this feedback. + */ + id: number; + }; + query?: never; + url: '/api/events/{event}/feedback/{id}/'; +}; + +export type FeedbackDestroyResponses = { + /** + * No response body + */ + 204: void; +}; + +export type FeedbackDestroyResponse = FeedbackDestroyResponses[keyof FeedbackDestroyResponses]; + +export type FeedbackRetrieveData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this feedback. + */ + id: number; + }; + query?: { + /** + * Select fields to expand. + */ + expand?: Array<'speaker' | 'submission'>; + }; + url: '/api/events/{event}/feedback/{id}/'; +}; + +export type FeedbackRetrieveResponses = { + 200: FeedbackReadable; +}; + +export type FeedbackRetrieveResponse = FeedbackRetrieveResponses[keyof FeedbackRetrieveResponses]; + export type MailTemplatesListData = { body?: never; path: { @@ -2984,6 +3403,10 @@ export type MailTemplatesListData = { event: string; }; query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3103,17 +3526,56 @@ export type MailTemplatesUpdateData = { /** * A unique integer value identifying this mail template. */ - id: number; + id: number; + }; + query?: never; + url: '/api/events/{event}/mail-templates/{id}/'; +}; + +export type MailTemplatesUpdateResponses = { + 200: MailTemplateReadable; +}; + +export type MailTemplatesUpdateResponse = MailTemplatesUpdateResponses[keyof MailTemplatesUpdateResponses]; + +export type MailTemplatesLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this mail template. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; }; - query?: never; - url: '/api/events/{event}/mail-templates/{id}/'; + url: '/api/events/{event}/mail-templates/{id}/log/'; }; -export type MailTemplatesUpdateResponses = { - 200: MailTemplateReadable; +export type MailTemplatesLogListResponses = { + 200: PaginatedActivityLogListReadable; }; -export type MailTemplatesUpdateResponse = MailTemplatesUpdateResponses[keyof MailTemplatesUpdateResponses]; +export type MailTemplatesLogListResponse = MailTemplatesLogListResponses[keyof MailTemplatesLogListResponses]; export type QuestionOptionsListData = { body?: never; @@ -3128,6 +3590,10 @@ export type QuestionOptionsListData = { * Select fields to expand. */ expand?: Array<'question' | 'question.submission_types' | 'question.tracks'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3265,6 +3731,46 @@ export type QuestionOptionsUpdateResponses = { export type QuestionOptionsUpdateResponse = QuestionOptionsUpdateResponses[keyof QuestionOptionsUpdateResponses]; +export type QuestionOptionsLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this answer option. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + question?: number; + }; + url: '/api/events/{event}/question-options/{id}/log/'; +}; + +export type QuestionOptionsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type QuestionOptionsLogListResponse = QuestionOptionsLogListResponses[keyof QuestionOptionsLogListResponses]; + export type QuestionsListData = { body?: never; path: { @@ -3280,6 +3786,10 @@ export type QuestionsListData = { expand?: Array<'options' | 'submission_types' | 'tracks'>; is_public?: boolean; is_visible_to_reviewers?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3438,6 +3948,91 @@ export type QuestionsUpdateResponses = { export type QuestionsUpdateResponse = QuestionsUpdateResponses[keyof QuestionsUpdateResponses]; +export type QuestionsIconRetrieveData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this question. + */ + id: number; + }; + query?: never; + url: '/api/events/{event}/questions/{id}/icon/'; +}; + +export type QuestionsIconRetrieveResponses = { + 200: QuestionReadable; +}; + +export type QuestionsIconRetrieveResponse = QuestionsIconRetrieveResponses[keyof QuestionsIconRetrieveResponses]; + +export type QuestionsLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this question. + */ + id: number; + }; + query?: { + is_public?: boolean; + is_visible_to_reviewers?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + /** + * Field type + * Do you require an answer from every speaker or for every session? + * + * * `submission` - per proposal + * * `speaker` - per speaker + * * `reviewer` - for reviewers + */ + target?: 'reviewer' | 'speaker' | 'submission'; + /** + * * `number` - Number + * * `string` - Text (one-line) + * * `text` - Multi-line text + * * `url` - URL + * * `date` - Date + * * `datetime` - Date and time + * * `boolean` - Yes/No + * * `file` - File upload + * * `choices` - Choose one from a list + * * `multiple_choice` - Choose multiple from a list + */ + variant?: 'boolean' | 'choices' | 'date' | 'datetime' | 'file' | 'multiple_choice' | 'number' | 'string' | 'text' | 'url'; + }; + url: '/api/events/{event}/questions/{id}/log/'; +}; + +export type QuestionsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type QuestionsLogListResponse = QuestionsLogListResponses[keyof QuestionsLogListResponses]; + export type ReviewsListData = { body?: never; path: { @@ -3451,6 +4046,10 @@ export type ReviewsListData = { * Select fields to expand. */ expand?: Array<'scores.category' | 'submission' | 'submission.speakers' | 'submission.submission_type' | 'submission.tags' | 'submission.track' | 'user'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3466,15 +4065,51 @@ export type ReviewsListData = { /** * Filter by speaker code (for the submission being reviewed) */ - speaker?: number; + speaker?: string; /** * Filter by submission code */ - submission?: number; + submission?: string; + /** + * Filter by submission content locale + */ + submission__content_locale?: string; + /** + * Filter by submission pending state + * + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + submission__pending_state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + /** + * Filter by submission state + * + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + submission__state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + /** + * Filter by submission type + */ + submission__submission_type?: number; + /** + * Filter by submission track + */ + submission__track?: number; /** * Filter by reviewer code */ - user?: number; + user?: string | null; }; url: '/api/events/{event}/reviews/'; }; @@ -3599,6 +4234,93 @@ export type ReviewsUpdateResponses = { export type ReviewsUpdateResponse = ReviewsUpdateResponses[keyof ReviewsUpdateResponses]; +export type ReviewsLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this review. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + /** + * Filter by speaker code (for the submission being reviewed) + */ + speaker?: string; + /** + * Filter by submission code + */ + submission?: string; + /** + * Filter by submission content locale + */ + submission__content_locale?: string; + /** + * Filter by submission pending state + * + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + submission__pending_state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + /** + * Filter by submission state + * + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + submission__state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + /** + * Filter by submission type + */ + submission__submission_type?: number; + /** + * Filter by submission track + */ + submission__track?: number; + /** + * Filter by reviewer code + */ + user?: string | null; + }; + url: '/api/events/{event}/reviews/{id}/log/'; +}; + +export type ReviewsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type ReviewsLogListResponse = ReviewsLogListResponses[keyof ReviewsLogListResponses]; + export type RoomsListData = { body?: never; path: { @@ -3612,6 +4334,10 @@ export type RoomsListData = { * Number of results to return per page. */ limit?: number; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * The initial index from which to return the results. */ @@ -3739,6 +4465,45 @@ export type RoomsUpdateResponses = { export type RoomsUpdateResponse = RoomsUpdateResponses[keyof RoomsUpdateResponses]; +export type RoomsLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this room. + */ + id: number; + }; + query?: { + /** + * Number of results to return per page. + */ + limit?: number; + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * The initial index from which to return the results. + */ + offset?: number; + /** + * A search term. + */ + q?: string; + }; + url: '/api/events/{event}/rooms/{id}/log/'; +}; + +export type RoomsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type RoomsLogListResponse = RoomsLogListResponses[keyof RoomsLogListResponses]; + export type SchedulesListData = { body?: never; path: { @@ -3748,6 +4513,10 @@ export type SchedulesListData = { event: string; }; query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3838,22 +4607,33 @@ export type SchedulesByVersionRetrieveData = { */ event: string; }; - query: { + query?: { + /** + * Pass this parameter to get the URL for the current schedule. + */ + latest?: boolean; /** * The version string/name of the schedule (e.g., '1.0', 'Final Version'). */ - version: string; + version?: string; }; url: '/api/events/{event}/schedules/by-version/'; }; export type SchedulesByVersionRetrieveErrors = { /** - * No response body + * Schedule not found or not accessible */ 404: unknown; }; +export type SchedulesByVersionRetrieveResponses = { + /** + * Returns a plain text URL + */ + 200: unknown; +}; + export type SchedulesReleaseCreateData = { body: ScheduleReleaseRequest; path: { @@ -3900,6 +4680,10 @@ export type SlotsListData = { */ expand?: Array<'room' | 'schedule' | 'submission' | 'submission.answers' | 'submission.answers.question' | 'submission.resources' | 'submission.speakers' | 'submission.submission_type' | 'submission.track'>; is_visible?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -3915,8 +4699,8 @@ export type SlotsListData = { room?: number; schedule?: number; schedule_version?: string | null; - speaker?: number; - submission?: number; + speaker?: string; + submission?: string; }; url: '/api/events/{event}/slots/'; }; @@ -3955,7 +4739,7 @@ export type SlotsRetrieveResponses = { export type SlotsRetrieveResponse = SlotsRetrieveResponses[keyof SlotsRetrieveResponses]; export type SlotsPartialUpdateData = { - body: TalkSlotRequest; + body?: TalkSlotRequest; path: { /** * The event’s slug @@ -3977,7 +4761,7 @@ export type SlotsPartialUpdateResponses = { export type SlotsPartialUpdateResponse = SlotsPartialUpdateResponses[keyof SlotsPartialUpdateResponses]; export type SlotsUpdateData = { - body: TalkSlotRequest; + body?: TalkSlotRequest; path: { /** * The event’s slug @@ -4033,6 +4817,10 @@ export type SpeakerInformationListData = { * Select fields to expand. */ expand?: Array<'limit_tracks' | 'limit_types'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -4169,6 +4957,45 @@ export type SpeakerInformationUpdateResponses = { export type SpeakerInformationUpdateResponse = SpeakerInformationUpdateResponses[keyof SpeakerInformationUpdateResponses]; +export type SpeakerInformationLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this speaker information. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + }; + url: '/api/events/{event}/speaker-information/{id}/log/'; +}; + +export type SpeakerInformationLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type SpeakerInformationLogListResponse = SpeakerInformationLogListResponses[keyof SpeakerInformationLogListResponses]; + export type SpeakersListData = { body?: never; path: { @@ -4207,11 +5034,11 @@ export type SpeakersListResponse = SpeakersListResponses[keyof SpeakersListRespo export type SpeakersRetrieveData = { body?: never; path: { + code__iexact: string; /** * The event’s slug */ event: string; - user__code__iexact: string; }; query?: { /** @@ -4219,7 +5046,7 @@ export type SpeakersRetrieveData = { */ expand?: Array<'answers' | 'answers.question' | 'submissions'>; }; - url: '/api/events/{event}/speakers/{user__code__iexact}/'; + url: '/api/events/{event}/speakers/{code__iexact}/'; }; export type SpeakersRetrieveResponses = { @@ -4231,14 +5058,14 @@ export type SpeakersRetrieveResponse = SpeakersRetrieveResponses[keyof SpeakersR export type SpeakersPartialUpdateData = { body: SpeakerUpdateRequest; path: { + code__iexact: string; /** * The event’s slug */ event: string; - user__code__iexact: string; }; query?: never; - url: '/api/events/{event}/speakers/{user__code__iexact}/'; + url: '/api/events/{event}/speakers/{code__iexact}/'; }; export type SpeakersPartialUpdateResponses = { @@ -4250,14 +5077,14 @@ export type SpeakersPartialUpdateResponse = SpeakersPartialUpdateResponses[keyof export type SpeakersUpdateData = { body: SpeakerUpdateRequest; path: { + code__iexact: string; /** * The event’s slug */ event: string; - user__code__iexact: string; }; query?: never; - url: '/api/events/{event}/speakers/{user__code__iexact}/'; + url: '/api/events/{event}/speakers/{code__iexact}/'; }; export type SpeakersUpdateResponses = { @@ -4275,6 +5102,10 @@ export type SubmissionTypesListData = { event: string; }; query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -4406,6 +5237,45 @@ export type SubmissionTypesUpdateResponses = { export type SubmissionTypesUpdateResponse = SubmissionTypesUpdateResponses[keyof SubmissionTypesUpdateResponses]; +export type SubmissionTypesLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this submission type. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + }; + url: '/api/events/{event}/submission-types/{id}/log/'; +}; + +export type SubmissionTypesLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type SubmissionTypesLogListResponse = SubmissionTypesLogListResponses[keyof SubmissionTypesLogListResponses]; + export type SubmissionsListData = { body?: never; path: { @@ -4421,6 +5291,10 @@ export type SubmissionsListData = { */ expand?: Array<'answers' | 'answers.question' | 'resources' | 'slots' | 'slots.room' | 'speakers' | 'speakers.answers' | 'submission_type' | 'tags' | 'track'>; is_featured?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -4436,10 +5310,9 @@ export type SubmissionsListData = { * * `rejected` - rejected * * `canceled` - canceled * * `withdrawn` - withdrawn - * * `deleted` - deleted * * `draft` - draft */ - pending_state?: Array<'accepted' | 'canceled' | 'confirmed' | 'deleted' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + pending_state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; /** * A search term, searching in `"title"`,`"speaker.name"`. */ @@ -4451,11 +5324,11 @@ export type SubmissionsListData = { * * `rejected` - rejected * * `canceled` - canceled * * `withdrawn` - withdrawn - * * `deleted` - deleted * * `draft` - draft */ - state?: Array<'accepted' | 'canceled' | 'confirmed' | 'deleted' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; submission_type?: number; + track?: number; }; url: '/api/events/{event}/submissions/'; }; @@ -4644,6 +5517,108 @@ export type SubmissionsConfirmCreateResponses = { export type SubmissionsConfirmCreateResponse = SubmissionsConfirmCreateResponses[keyof SubmissionsConfirmCreateResponses]; +export type SubmissionsInvitationsCreateData = { + body: AddSpeakerRequest; + path: { + code__iexact: string; + /** + * The event’s slug + */ + event: string; + }; + query?: never; + url: '/api/events/{event}/submissions/{code__iexact}/invitations/'; +}; + +export type SubmissionsInvitationsCreateResponses = { + 200: SubmissionOrgaReadable; +}; + +export type SubmissionsInvitationsCreateResponse = SubmissionsInvitationsCreateResponses[keyof SubmissionsInvitationsCreateResponses]; + +export type SubmissionsInvitationsDestroyData = { + body?: never; + path: { + code__iexact: string; + /** + * The event’s slug + */ + event: string; + invitation_id: string; + }; + query?: never; + url: '/api/events/{event}/submissions/{code__iexact}/invitations/{invitation_id}/'; +}; + +export type SubmissionsInvitationsDestroyResponses = { + /** + * No response body + */ + 204: void; +}; + +export type SubmissionsInvitationsDestroyResponse = SubmissionsInvitationsDestroyResponses[keyof SubmissionsInvitationsDestroyResponses]; + +export type SubmissionsLogListData = { + body?: never; + path: { + code__iexact: string; + /** + * The event’s slug + */ + event: string; + }; + query?: { + content_locale?: string; + is_featured?: boolean; + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + pending_state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + /** + * A search term. + */ + q?: string; + /** + * * `submitted` - submitted + * * `accepted` - accepted + * * `confirmed` - confirmed + * * `rejected` - rejected + * * `canceled` - canceled + * * `withdrawn` - withdrawn + * * `draft` - draft + */ + state?: Array<'accepted' | 'canceled' | 'confirmed' | 'draft' | 'rejected' | 'submitted' | 'withdrawn'>; + submission_type?: number; + track?: number; + }; + url: '/api/events/{event}/submissions/{code__iexact}/log/'; +}; + +export type SubmissionsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type SubmissionsLogListResponse = SubmissionsLogListResponses[keyof SubmissionsLogListResponses]; + export type SubmissionsMakeSubmittedCreateData = { body: SubmissionRequest; path: { @@ -4701,6 +5676,48 @@ export type SubmissionsRemoveSpeakerCreateResponses = { export type SubmissionsRemoveSpeakerCreateResponse = SubmissionsRemoveSpeakerCreateResponses[keyof SubmissionsRemoveSpeakerCreateResponses]; +export type SubmissionsResourcesCreateData = { + body: ResourceWriteRequest; + path: { + code__iexact: string; + /** + * The event’s slug + */ + event: string; + }; + query?: never; + url: '/api/events/{event}/submissions/{code__iexact}/resources/'; +}; + +export type SubmissionsResourcesCreateResponses = { + 200: SubmissionOrgaReadable; +}; + +export type SubmissionsResourcesCreateResponse = SubmissionsResourcesCreateResponses[keyof SubmissionsResourcesCreateResponses]; + +export type SubmissionsResourcesDestroyData = { + body?: never; + path: { + code__iexact: string; + /** + * The event’s slug + */ + event: string; + resource_id: string; + }; + query?: never; + url: '/api/events/{event}/submissions/{code__iexact}/resources/{resource_id}/'; +}; + +export type SubmissionsResourcesDestroyResponses = { + /** + * No response body + */ + 204: void; +}; + +export type SubmissionsResourcesDestroyResponse = SubmissionsResourcesDestroyResponses[keyof SubmissionsResourcesDestroyResponses]; + export type SubmissionsFavouriteDestroyData = { body?: never; path: { @@ -4788,6 +5805,10 @@ export type TagsListData = { event: string; }; query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -4919,6 +5940,45 @@ export type TagsUpdateResponses = { export type TagsUpdateResponse = TagsUpdateResponses[keyof TagsUpdateResponses]; +export type TagsLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this tag. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + }; + url: '/api/events/{event}/tags/{id}/log/'; +}; + +export type TagsLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type TagsLogListResponse = TagsLogListResponses[keyof TagsLogListResponses]; + export type TracksListData = { body?: never; path: { @@ -4928,6 +5988,10 @@ export type TracksListData = { event: string; }; query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ @@ -5059,6 +6123,45 @@ export type TracksUpdateResponses = { export type TracksUpdateResponse = TracksUpdateResponses[keyof TracksUpdateResponses]; +export type TracksLogListData = { + body?: never; + path: { + /** + * The event’s slug + */ + event: string; + /** + * A unique integer value identifying this track. + */ + id: number; + }; + query?: { + /** + * Which field to use when ordering the results. + */ + o?: string; + /** + * A page number within the paginated result set. + */ + page?: number; + /** + * Number of results to return per page. + */ + page_size?: number; + /** + * A search term. + */ + q?: string; + }; + url: '/api/events/{event}/tracks/{id}/log/'; +}; + +export type TracksLogListResponses = { + 200: PaginatedActivityLogListReadable; +}; + +export type TracksLogListResponse = TracksLogListResponses[keyof TracksLogListResponses]; + export type ApiOrganisersTeamsListData = { body?: never; path: { @@ -5072,6 +6175,10 @@ export type ApiOrganisersTeamsListData = { * Select fields to expand. */ expand?: Array<'invites' | 'limit_tracks' | 'members'>; + /** + * Which field to use when ordering the results. + */ + o?: string; /** * A page number within the paginated result set. */ diff --git a/loaders/pretalx/schema.yml b/loaders/pretalx/schema.yml new file mode 100644 index 00000000..3d87e248 --- /dev/null +++ b/loaders/pretalx/schema.yml @@ -0,0 +1,8129 @@ +openapi: 3.0.3 +info: + title: pretalx API + version: '' +paths: + /api/: + get: + operationId: api_retrieve + description: Returns a link to the REST API, as well as the pretalx and API + versions. + summary: API Root + tags: + - root + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Root' + description: '' + /api/events/: + get: + operationId: api_events_list + summary: List Events + parameters: + - in: query + name: is_public + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. + tags: + - events + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EventList' + description: '' + /api/events/{event}/: + get: + operationId: root_retrieve + summary: Show Events + parameters: + - in: path + name: event + schema: + type: string + title: Short form + description: The slug may only contain letters, numbers, dots and dashes. + required: true + tags: + - events + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Event' + description: '' + /api/events/{event}/access-codes/: + get: + operationId: access_codes_list + summary: List Access Codes + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - submission_type + - track + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"code"`. + tags: + - access-codes + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedV1SubmitterAccessCodeList' + description: '' + post: + operationId: access_codes_create + summary: Create Access Code + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - access-codes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCode' + description: '' + /api/events/{event}/access-codes/{id}/: + get: + operationId: access_codes_retrieve + summary: Show Access Code + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - submission_type + - submission_types + - track + - tracks + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submitter access code. + required: true + tags: + - access-codes + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCode' + description: '' + put: + operationId: access_codes_update + summary: Update Access Code + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submitter access code. + required: true + tags: + - access-codes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCode' + description: '' + patch: + operationId: access_codes_partial_update + summary: Update Access Code (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submitter access code. + required: true + tags: + - access-codes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCodeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/V1SubmitterAccessCode' + description: '' + delete: + operationId: access_codes_destroy + summary: Delete Access Code + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submitter access code. + required: true + tags: + - access-codes + responses: + '204': + description: No response body + /api/events/{event}/answers/: + get: + operationId: answers_list + summary: List Answers + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - options + - question + - question.submission_types + - question.tracks + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"answer"`. + - in: query + name: question + schema: + type: number + - in: query + name: review + schema: + type: number + - in: query + name: speaker + schema: + type: string + - in: query + name: submission + schema: + type: string + tags: + - answers + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAnswerList' + description: '' + post: + operationId: answers_create + summary: Create Answer + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - answers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerCreateRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerCreate' + description: '' + /api/events/{event}/answers/{id}/: + get: + operationId: answers_retrieve + summary: Show Answer + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - options + - question + - question.submission_types + - question.tracks + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer. + required: true + tags: + - answers + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Answer' + description: '' + put: + operationId: answers_update + description: Please note that you cannot change an answer’s related objects + (question, submission, review, speaker). + summary: Update Answer + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer. + required: true + tags: + - answers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Answer' + description: '' + patch: + operationId: answers_partial_update + description: Please note that you cannot change an answer’s related objects + (question, submission, review, speaker). + summary: Update Answer (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer. + required: true + tags: + - answers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Answer' + description: '' + delete: + operationId: answers_destroy + summary: Delete Answer + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer. + required: true + tags: + - answers + responses: + '204': + description: No response body + /api/events/{event}/answers/{id}/log/: + get: + operationId: answers_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: question + schema: + type: number + - in: query + name: review + schema: + type: number + - in: query + name: speaker + schema: + type: string + - in: query + name: submission + schema: + type: string + tags: + - answers + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/feedback/: + get: + operationId: feedback_list + summary: List Feedback + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - speaker + - submission + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"submission.title"`. + - in: query + name: submission + schema: + type: string + description: Filter by submission code + tags: + - feedback + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFeedbackList' + description: '' + post: + operationId: feedback_create + description: Submit feedback for a session. This endpoint is publicly accessible. + summary: Create Feedback + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - feedback + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FeedbackWriteRequest' + required: true + security: + - {} + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Feedback' + description: '' + /api/events/{event}/feedback/{id}/: + get: + operationId: feedback_retrieve + summary: Show Feedback + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - speaker + - submission + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this feedback. + required: true + tags: + - feedback + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Feedback' + description: '' + delete: + operationId: feedback_destroy + summary: Delete Feedback + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this feedback. + required: true + tags: + - feedback + responses: + '204': + description: No response body + /api/events/{event}/mail-templates/: + get: + operationId: mail_templates_list + summary: List Mail Templates + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"role"`,`"subject"`. + tags: + - mail-templates + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMailTemplateList' + description: '' + post: + operationId: mail_templates_create + summary: Create Mail Template + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - mail-templates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplateRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplate' + description: '' + /api/events/{event}/mail-templates/{id}/: + get: + operationId: mail_templates_retrieve + summary: Show Mail Template + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this mail template. + required: true + tags: + - mail-templates + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplate' + description: '' + put: + operationId: mail_templates_update + summary: Update Mail Template + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this mail template. + required: true + tags: + - mail-templates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplate' + description: '' + patch: + operationId: mail_templates_partial_update + summary: Update Mail Template (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this mail template. + required: true + tags: + - mail-templates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MailTemplate' + description: '' + delete: + operationId: mail_templates_destroy + summary: Delete Mail Template + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this mail template. + required: true + tags: + - mail-templates + responses: + '204': + description: No response body + /api/events/{event}/mail-templates/{id}/log/: + get: + operationId: mail_templates_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this mail template. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - mail-templates + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/question-options/: + get: + operationId: question_options_list + summary: List Question Options + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - question + - question.submission_types + - question.tracks + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"answer"`. + - in: query + name: question + schema: + type: integer + tags: + - question-options + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAnswerOptionList' + description: '' + post: + operationId: question_options_create + summary: Create Question Option + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - question-options + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOptionCreateRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOptionCreate' + description: '' + /api/events/{event}/question-options/{id}/: + get: + operationId: question_options_retrieve + summary: Show Question Option + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - question + - question.submission_types + - question.tracks + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer option. + required: true + tags: + - question-options + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOption' + description: '' + put: + operationId: question_options_update + summary: Update Question Option + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer option. + required: true + tags: + - question-options + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOptionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOption' + description: '' + patch: + operationId: question_options_partial_update + summary: Update Question Option (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer option. + required: true + tags: + - question-options + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOptionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerOption' + description: '' + delete: + operationId: question_options_destroy + description: Deleting a question option is only possible if it hasn’t been used + in any answers yet. + summary: Delete Question Option + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer option. + required: true + tags: + - question-options + responses: + '204': + description: No response body + /api/events/{event}/question-options/{id}/log/: + get: + operationId: question_options_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this answer option. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: question + schema: + type: integer + tags: + - question-options + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/questions/: + get: + operationId: questions_list + summary: List Questions + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - options + - submission_types + - tracks + description: Select fields to expand. + - in: query + name: is_public + schema: + type: boolean + - in: query + name: is_visible_to_reviewers + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"question"`. + - in: query + name: target + schema: + type: string + title: Field type + enum: + - reviewer + - speaker + - submission + description: |- + Do you require an answer from every speaker or for every session? + + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + - in: query + name: variant + schema: + type: string + enum: + - boolean + - choices + - date + - datetime + - file + - multiple_choice + - number + - string + - text + - url + description: |- + * `number` - Number + * `string` - Text (one-line) + * `text` - Multi-line text + * `url` - URL + * `date` - Date + * `datetime` - Date and time + * `boolean` - Yes/No + * `file` - File upload + * `choices` - Choose one from a list + * `multiple_choice` - Choose multiple from a list + tags: + - questions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedQuestionList' + description: '' + post: + operationId: questions_create + summary: Create Question + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - questions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrgaRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrga' + description: '' + /api/events/{event}/questions/{id}/: + get: + operationId: questions_retrieve + summary: Show Question + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - options + - submission_types + - tracks + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + tags: + - questions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Question' + description: '' + put: + operationId: questions_update + description: Please note that any update to the options field will delete the + existing question options (if still possible) and replace them with the new + ones. Use the AnswerOption API for granular question option modifications. + summary: Update Question + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + tags: + - questions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrga' + description: '' + patch: + operationId: questions_partial_update + description: Please note that any update to the options field will delete the + existing question options (if still possible) and replace them with the new + ones. Use the AnswerOption API for granular question option modifications. + summary: Update Question (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + tags: + - questions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionOrga' + description: '' + delete: + operationId: questions_destroy + summary: Delete Question + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + tags: + - questions + responses: + '204': + description: No response body + /api/events/{event}/questions/{id}/icon/: + get: + operationId: questions_icon_retrieve + description: Returns the icon for this question as an SVG image if the question + has an icon. + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + tags: + - questions + security: + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Question' + description: '' + /api/events/{event}/questions/{id}/log/: + get: + operationId: questions_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this question. + required: true + - in: query + name: is_public + schema: + type: boolean + - in: query + name: is_visible_to_reviewers + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: target + schema: + type: string + title: Field type + enum: + - reviewer + - speaker + - submission + description: |- + Do you require an answer from every speaker or for every session? + + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + - in: query + name: variant + schema: + type: string + enum: + - boolean + - choices + - date + - datetime + - file + - multiple_choice + - number + - string + - text + - url + description: |- + * `number` - Number + * `string` - Text (one-line) + * `text` - Multi-line text + * `url` - URL + * `date` - Date + * `datetime` - Date and time + * `boolean` - Yes/No + * `file` - File upload + * `choices` - Choose one from a list + * `multiple_choice` - Choose multiple from a list + tags: + - questions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/reviews/: + get: + operationId: reviews_list + summary: List Reviews + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - scores.category + - submission + - submission.speakers + - submission.submission_type + - submission.tags + - submission.track + - user + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"submission.title"`,`"user.name"`. + - in: query + name: speaker + schema: + type: string + description: Filter by speaker code (for the submission being reviewed) + - in: query + name: submission + schema: + type: string + description: Filter by submission code + - in: query + name: submission__content_locale + schema: + type: string + description: Filter by submission content locale + - in: query + name: submission__pending_state + schema: + type: array + items: + type: string + nullable: true + title: Pending proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + Filter by submission pending state + + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission__state + schema: + type: array + items: + type: string + title: Proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + Filter by submission state + + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission__submission_type + schema: + type: integer + description: Filter by submission type + - in: query + name: submission__track + schema: + type: integer + description: Filter by submission track + - in: query + name: user + schema: + type: string + nullable: true + description: Filter by reviewer code + tags: + - reviews + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReviewList' + description: '' + post: + operationId: reviews_create + summary: Create Review + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - reviews + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReviewWriteRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Review' + description: '' + /api/events/{event}/reviews/{id}/: + get: + operationId: reviews_retrieve + summary: Show Review + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - scores.category + - submission + - user + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this review. + required: true + tags: + - reviews + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Review' + description: '' + put: + operationId: reviews_update + summary: Update Reviews + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this review. + required: true + tags: + - reviews + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReviewWriteRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Review' + description: '' + patch: + operationId: reviews_partial_update + summary: Update Reviews (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this review. + required: true + tags: + - reviews + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReviewWriteRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Review' + description: '' + delete: + operationId: reviews_destroy + summary: Delete Reviews + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this review. + required: true + tags: + - reviews + responses: + '204': + description: No response body + /api/events/{event}/reviews/{id}/log/: + get: + operationId: reviews_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this review. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: speaker + schema: + type: string + description: Filter by speaker code (for the submission being reviewed) + - in: query + name: submission + schema: + type: string + description: Filter by submission code + - in: query + name: submission__content_locale + schema: + type: string + description: Filter by submission content locale + - in: query + name: submission__pending_state + schema: + type: array + items: + type: string + nullable: true + title: Pending proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + Filter by submission pending state + + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission__state + schema: + type: array + items: + type: string + title: Proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + Filter by submission state + + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission__submission_type + schema: + type: integer + description: Filter by submission type + - in: query + name: submission__track + schema: + type: integer + description: Filter by submission track + - in: query + name: user + schema: + type: string + nullable: true + description: Filter by reviewer code + tags: + - reviews + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/rooms/: + get: + operationId: rooms_list + summary: List Rooms + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: limit + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. + tags: + - rooms + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRoomList' + description: '' + post: + operationId: rooms_create + summary: Create Rooms + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - rooms + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrgaRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrga' + description: '' + /api/events/{event}/rooms/{id}/: + get: + operationId: rooms_retrieve + summary: Show Rooms + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this room. + required: true + tags: + - rooms + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Room' + description: '' + put: + operationId: rooms_update + summary: Update Rooms + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this room. + required: true + tags: + - rooms + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrga' + description: '' + patch: + operationId: rooms_partial_update + summary: Update Rooms (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this room. + required: true + tags: + - rooms + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RoomOrga' + description: '' + delete: + operationId: rooms_destroy + summary: Delete Rooms + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this room. + required: true + tags: + - rooms + responses: + '204': + description: No response body + /api/events/{event}/rooms/{id}/log/: + get: + operationId: rooms_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this room. + required: true + - name: limit + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: offset + required: false + in: query + description: The initial index from which to return the results. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - rooms + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/schedules/: + get: + operationId: schedules_list + description: This endpoint returns a list of schedules. As schedule data can + get very complex when expanded, the list endpoint only contains metadata. + Please refer to the detail endpoint documentation to see how to retrieve slots, + submissions and speakers. + summary: List Schedules + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"version"`. + tags: + - schedules + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScheduleListList' + description: '' + /api/events/{event}/schedules/{id}/: + get: + operationId: schedules_retrieve + description: In addition to the standard lookup by ID, you can also use the + special /wip/ and /latest/ URL paths to access the unpublished and latest + published schedules. To receive most schedule data, query the endpoint with + ``?expand=room,slots.submission.speakers``. + summary: Show Schedule + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - slots + - slots.room + - slots.submission + - slots.submission.speakers + - slots.submission.submission_type + - slots.submission.track + description: Select fields to expand. + - in: path + name: id + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - schedules + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Schedule' + description: '' + /api/events/{event}/schedules/{id}/exporters/{name}/: + get: + operationId: schedules_exporters_retrieve + description: Retrieve the content of a specific schedule exporter by name. Requires + 'action' permissions. + summary: Get Exporter Content + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: string + pattern: ^[^/]+$ + required: true + - in: query + name: lang + schema: + type: string + description: Language code for the export content. + - in: path + name: name + schema: + type: string + description: The name of the exporter. + required: true + tags: + - schedules + responses: + '200': + description: Format depends on the chosen exporter. + '404': + description: Exporter or schedule not found. + /api/events/{event}/schedules/by-version/: + get: + operationId: schedules_by_version_retrieve + description: This endpoint returns a plain string URL for a specific schedule + using its version name (e.g., '1.0', 'My Release') instead of its numeric + ID. You have to pass either a version or request the latest version. Returns + an empty string if the schedule is not found or not accessible. + summary: Get schedule URL by version + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: latest + schema: + type: boolean + description: Pass this parameter to get the URL for the current schedule. + - in: query + name: version + schema: + type: string + description: The version string/name of the schedule (e.g., '1.0', 'Final + Version'). + tags: + - schedules + responses: + '200': + description: Returns a plain text URL + '404': + description: Schedule not found or not accessible + /api/events/{event}/schedules/release/: + post: + operationId: schedules_release_create + description: Freezes the current Work-in-Progress (WIP) schedule, creating a + new named version. This makes the WIP schedule available under the given version + name and creates a new empty WIP schedule. + summary: Release a new schedule version + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - schedules + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleReleaseRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Schedule' + description: Schedule released successfully. + '400': + description: Invalid data provided (e.g., version name already exists). + '403': + description: Permission denied. + /api/events/{event}/slots/: + get: + operationId: slots_list + description: This endpoint always returns a filtered list. If you don’t provide + any filters of your own, it will be filtered to show only talk slots in the + latest published schedule. + summary: List Talk Slots + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - room + - schedule + - submission + - submission.answers + - submission.answers.question + - submission.resources + - submission.speakers + - submission.submission_type + - submission.track + description: Select fields to expand. + - in: query + name: is_visible + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"submission.title"`,`"submission.speakers.name"`. + - in: query + name: room + schema: + type: integer + - in: query + name: schedule + schema: + type: integer + - in: query + name: schedule_version + schema: + type: string + nullable: true + - in: query + name: speaker + schema: + type: string + - in: query + name: submission + schema: + type: string + tags: + - slots + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTalkSlotList' + description: '' + /api/events/{event}/slots/{id}/: + get: + operationId: slots_retrieve + summary: Show Talk Slot + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - room + - schedule + - submission + - submission.answers + - submission.answers.question + - submission.resources + - submission.speakers + - submission.submission_type + - submission.track + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this talk slot. + required: true + tags: + - slots + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlot' + description: '' + put: + operationId: slots_update + description: Only talk slots in the WIP schedule can be changed – once a schedule + version is frozen, its talk slots can’t be modified anymore. + summary: Update Talk Slot + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this talk slot. + required: true + tags: + - slots + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlotRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlot' + description: '' + patch: + operationId: slots_partial_update + description: Only talk slots in the WIP schedule can be changed – once a schedule + version is frozen, its talk slots can’t be modified anymore. + summary: Update Talk Slot (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this talk slot. + required: true + tags: + - slots + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlotRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlot' + description: '' + /api/events/{event}/slots/{id}/ical/: + get: + operationId: slots_ical_retrieve + description: Export a single talk slot as an iCalendar file. + summary: Export Talk Slot as iCalendar file + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this talk slot. + required: true + tags: + - slots + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TalkSlot' + description: '' + /api/events/{event}/speaker-information/: + get: + operationId: speaker_information_list + summary: List Speaker Information + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - limit_tracks + - limit_types + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"title"`. + tags: + - speaker-information + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSpeakerInformationList' + description: '' + post: + operationId: speaker_information_create + summary: Create Speaker Information + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - speaker-information + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformationRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformation' + description: '' + /api/events/{event}/speaker-information/{id}/: + get: + operationId: speaker_information_retrieve + summary: Show Speaker Information + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - limit_tracks + - limit_types + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this speaker information. + required: true + tags: + - speaker-information + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformation' + description: '' + put: + operationId: speaker_information_update + summary: Update Speaker Information + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this speaker information. + required: true + tags: + - speaker-information + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformation' + description: '' + patch: + operationId: speaker_information_partial_update + summary: Update Speaker Information (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this speaker information. + required: true + tags: + - speaker-information + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerInformation' + description: '' + delete: + operationId: speaker_information_destroy + summary: Delete Speaker Information + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this speaker information. + required: true + tags: + - speaker-information + responses: + '204': + description: No response body + /api/events/{event}/speaker-information/{id}/log/: + get: + operationId: speaker_information_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this speaker information. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - speaker-information + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/speakers/: + get: + operationId: speakers_list + summary: List Speakers + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - answers + - answers.question + - submissions + description: Select fields to expand. + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. Organiser search also includes + email addresses. + tags: + - speakers + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSpeakerList' + description: '' + /api/events/{event}/speakers/{code__iexact}/: + get: + operationId: speakers_retrieve + summary: Show Speaker + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - answers + - answers.question + - submissions + description: Select fields to expand. + tags: + - speakers + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Speaker' + description: '' + put: + operationId: speakers_update + summary: Update Speaker + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - speakers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerOrga' + description: '' + patch: + operationId: speakers_partial_update + summary: Update Speaker (Partial Update) + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - speakers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SpeakerOrga' + description: '' + /api/events/{event}/submission-types/: + get: + operationId: submission_types_list + summary: List Submission Types + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. + tags: + - submission-types + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSubmissionTypeList' + description: '' + post: + operationId: submission_types_create + summary: Create Submission Types + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submission-types + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionTypeRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionType' + description: '' + /api/events/{event}/submission-types/{id}/: + get: + operationId: submission_types_retrieve + summary: Show Submission Types + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submission type. + required: true + tags: + - submission-types + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionType' + description: '' + put: + operationId: submission_types_update + summary: Update Submission Types + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submission type. + required: true + tags: + - submission-types + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionType' + description: '' + patch: + operationId: submission_types_partial_update + summary: Update Submission Types (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submission type. + required: true + tags: + - submission-types + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionType' + description: '' + delete: + operationId: submission_types_destroy + summary: Delete Submission Types + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submission type. + required: true + tags: + - submission-types + responses: + '204': + description: No response body + /api/events/{event}/submission-types/{id}/log/: + get: + operationId: submission_types_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this submission type. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - submission-types + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/submissions/: + get: + operationId: submissions_list + summary: List Submissions + parameters: + - in: query + name: content_locale + schema: + type: string + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - answers + - answers.question + - resources + - slots + - slots.room + - speakers + - speakers.answers + - submission_type + - tags + - track + description: Select fields to expand. + - in: query + name: is_featured + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: pending_state + schema: + type: array + items: + type: string + nullable: true + title: Pending proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: q + schema: + type: string + description: A search term, searching in `"title"`,`"speaker.name"`. + - in: query + name: state + schema: + type: array + items: + type: string + title: Proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission_type + schema: + type: integer + - in: query + name: track + schema: + type: integer + tags: + - submissions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSubmissionList' + description: '' + post: + operationId: submissions_create + description: Note that a submission created via the API will start in the submitted + state and without speakers. No notification emails will be sent, and the submission + may be in an invalid state (e.g. if the event has required custom fields). + summary: Create Submission + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + /api/events/{event}/submissions/{code__iexact}/: + get: + operationId: submissions_retrieve + summary: Show Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - answers + - resources + - slots + - slots.room + - speakers + - submission_type + - tags + - track + description: Select fields to expand. + tags: + - submissions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + put: + operationId: submissions_update + summary: Update Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + patch: + operationId: submissions_partial_update + summary: Update Submission (Partial Update) + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrgaRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + delete: + operationId: submissions_destroy + description: This endpoint is only available to server administrators. + summary: Delete Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + responses: + '204': + description: No response body + /api/events/{event}/submissions/{code__iexact}/accept/: + post: + operationId: submissions_accept_create + summary: Accept Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + /api/events/{event}/submissions/{code__iexact}/add-speaker/: + post: + operationId: submissions_add_speaker_create + summary: Add Speaker to Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddSpeakerRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + /api/events/{event}/submissions/{code__iexact}/cancel/: + post: + operationId: submissions_cancel_create + summary: Cancel Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + /api/events/{event}/submissions/{code__iexact}/confirm/: + post: + operationId: submissions_confirm_create + summary: Confirm Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + /api/events/{event}/submissions/{code__iexact}/invitations/: + post: + operationId: submissions_invitations_create + summary: Invite Speaker to Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddSpeakerRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + /api/events/{event}/submissions/{code__iexact}/invitations/{invitation_id}/: + delete: + operationId: submissions_invitations_destroy + summary: Retract Speaker Invitation + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: invitation_id + schema: + type: string + pattern: ^[0-9]+$ + required: true + tags: + - submissions + responses: + '204': + description: No response body + /api/events/{event}/submissions/{code__iexact}/log/: + get: + operationId: submissions_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: query + name: content_locale + schema: + type: string + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: query + name: is_featured + schema: + type: boolean + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: pending_state + schema: + type: array + items: + type: string + nullable: true + title: Pending proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - name: q + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: state + schema: + type: array + items: + type: string + title: Proposal state + enum: + - accepted + - canceled + - confirmed + - draft + - rejected + - submitted + - withdrawn + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + explode: true + style: form + - in: query + name: submission_type + schema: + type: integer + - in: query + name: track + schema: + type: integer + tags: + - submissions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/submissions/{code__iexact}/make-submitted/: + post: + operationId: submissions_make_submitted_create + summary: Make Submission Submitted + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + /api/events/{event}/submissions/{code__iexact}/reject/: + post: + operationId: submissions_reject_create + summary: Reject Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Submission' + description: '' + /api/events/{event}/submissions/{code__iexact}/remove-speaker/: + post: + operationId: submissions_remove_speaker_create + summary: Remove Speaker from Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSpeakerRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + /api/events/{event}/submissions/{code__iexact}/resources/: + post: + operationId: submissions_resources_create + summary: Add Resource to Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceWriteRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmissionOrga' + description: '' + /api/events/{event}/submissions/{code__iexact}/resources/{resource_id}/: + delete: + operationId: submissions_resources_destroy + summary: Remove Resource from Submission + parameters: + - in: path + name: code__iexact + schema: + type: string + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: resource_id + schema: + type: string + pattern: ^[0-9]+$ + required: true + tags: + - submissions + responses: + '204': + description: No response body + /api/events/{event}/submissions/{code}/favourite/: + post: + operationId: submissions_favourite_create + description: This endpoint is used by the schedule widget and uses session authentication. + summary: Add or remove a submission from favourites + parameters: + - in: path + name: code + schema: + type: string + description: The event’s slug + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + responses: + '200': + description: No response body + '404': + description: Submission not found. + delete: + operationId: submissions_favourite_destroy + description: This endpoint is used by the schedule widget and uses session authentication. + summary: Add or remove a submission from favourites + parameters: + - in: path + name: code + schema: + type: string + description: The event’s slug + required: true + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + responses: + '200': + description: No response body + '404': + description: Submission not found. + /api/events/{event}/submissions/favourites/: + get: + operationId: submissions_favourites_retrieve + description: This endpoint is used by the schedule widget and uses session authentication. + summary: List favourite submissions + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - submissions + responses: + '200': + content: + application/json: + schema: + type: array + items: + type: string + description: '' + /api/events/{event}/tags/: + get: + operationId: tags_list + summary: List tags + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"tag"`. + tags: + - tags + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTagList' + description: '' + post: + operationId: tags_create + summary: Create Tags + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - tags + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TagRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + /api/events/{event}/tags/{id}/: + get: + operationId: tags_retrieve + summary: Show Tags + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this tag. + required: true + tags: + - tags + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + put: + operationId: tags_update + summary: Update Tags + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this tag. + required: true + tags: + - tags + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TagRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + patch: + operationId: tags_partial_update + summary: Update Tags (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this tag. + required: true + tags: + - tags + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TagRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + delete: + operationId: tags_destroy + summary: Delete Tags + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this tag. + required: true + tags: + - tags + responses: + '204': + description: No response body + /api/events/{event}/tags/{id}/log/: + get: + operationId: tags_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this tag. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - tags + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/events/{event}/tracks/: + get: + operationId: tracks_list + summary: List Tracks + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. + tags: + - tracks + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTrackList' + description: '' + post: + operationId: tracks_create + summary: Create Tracks + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + /api/events/{event}/tracks/{id}/: + get: + operationId: tracks_retrieve + summary: Show Tracks + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + put: + operationId: tracks_update + summary: Update Tracks + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + patch: + operationId: tracks_partial_update + summary: Update Tracks (Partial Update) + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + delete: + operationId: tracks_destroy + summary: Delete Tracks + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + responses: + '204': + description: No response body + /api/events/{event}/tracks/{id}/log/: + get: + operationId: tracks_log_list + description: Changelog entries related to this object. + summary: Object changelog + parameters: + - in: path + name: event + schema: + type: string + description: The event’s slug + required: true + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - name: q + required: false + in: query + description: A search term. + schema: + type: string + tags: + - tracks + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityLogList' + description: '' + /api/organisers/{organiser}/teams/: + get: + operationId: api_organisers_teams_list + summary: List Teams + parameters: + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - invites + - limit_tracks + - members + description: Select fields to expand. + - name: o + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + description: A search term, searching in `"name"`. + tags: + - teams + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTeamList' + description: '' + post: + operationId: api_organisers_teams_create + summary: Create Team + parameters: + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + /api/organisers/{organiser}/teams/{id}/: + get: + operationId: api_organisers_teams_retrieve + summary: Show Team + parameters: + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - invites + - limit_tracks + - members + description: Select fields to expand. + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + put: + operationId: api_organisers_teams_update + summary: Update Team + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + patch: + operationId: api_organisers_teams_partial_update + summary: Update Team (Partial Update) + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + delete: + operationId: api_organisers_teams_destroy + summary: Delete Team + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + responses: + '204': + description: No response body + /api/organisers/{organiser}/teams/{id}/invite/: + post: + operationId: api_organisers_teams_invite_create + description: Creates a team invite, and sends an invite. + summary: Invite Member to Team + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamInviteCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + /api/organisers/{organiser}/teams/{id}/invites/{invite_id}/: + delete: + operationId: api_organisers_teams_invites_destroy + summary: Delete Team Invite + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: invite_id + schema: + type: integer + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + responses: + '204': + description: No response body + /api/organisers/{organiser}/teams/{id}/remove_member/: + post: + operationId: api_organisers_teams_remove_member_create + summary: Remove Member from Team + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this team. + required: true + - in: path + name: organiser + schema: + type: string + description: The event’s slug + required: true + tags: + - teams + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamMemberRemoveRequest' + required: true + responses: + '204': + description: Member removed successfully. + '400': + description: Member cannot be removed as it may leave events inaccessible. + /api/upload/: + post: + operationId: File upload + description: 'Upload a file (image or PDF) for temporary storage. Allowed file + types: PNG, JPEG, GIF, PDF.' + tags: + - file-uploads + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + file: + type: string + format: binary + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FileResponse' + examples: + '': + value: + id: file:1234-5678 + description: '' + '400': + content: + application/json: + schema: + type: object + description: Validation error + description: '' +components: + schemas: + ActivityLog: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + timestamp: + type: string + format: date-time + readOnly: true + action_type: + type: string + maxLength: 200 + is_orga_action: + type: boolean + person: + $ref: '#/components/schemas/User' + display: + type: string + readOnly: true + data: + nullable: true + required: + - action_type + - display + - id + - person + - timestamp + AddSpeakerRequest: + type: object + properties: + email: + type: string + format: email + minLength: 1 + name: + type: string + nullable: true + locale: + type: string + nullable: true + required: + - email + Answer: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + question: + type: integer + readOnly: true + answer: + type: string + answer_file: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + submission: + type: string + readOnly: true + review: + type: integer + readOnly: true + person: + type: string + readOnly: true + options: + type: array + items: + type: integer + required: + - answer + - id + - options + - person + - question + - review + - submission + AnswerCreate: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + question: + type: integer + answer: + type: string + answer_file: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + submission: + type: string + nullable: true + review: + type: integer + nullable: true + person: + type: string + nullable: true + options: + type: array + items: + type: integer + required: + - answer + - id + - question + AnswerCreateRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + question: + type: integer + answer: + type: string + minLength: 1 + answer_file: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + submission: + type: string + minLength: 1 + nullable: true + review: + type: integer + nullable: true + person: + type: string + minLength: 1 + nullable: true + options: + type: array + items: + type: integer + required: + - answer + - question + AnswerOption: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + question: + type: integer + readOnly: true + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + identifier: + type: string + required: + - answer + - id + - question + AnswerOptionCreate: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + question: + type: integer + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + identifier: + type: string + required: + - answer + - id + - question + AnswerOptionCreateRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + question: + type: integer + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + identifier: + type: string + required: + - answer + - question + AnswerOptionRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + identifier: + type: string + required: + - answer + AnswerRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + answer: + type: string + minLength: 1 + answer_file: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + options: + type: array + items: + type: integer + required: + - answer + - options + Availability: + type: object + properties: + start: + type: string + format: date-time + end: + type: string + format: date-time + allDay: + type: boolean + readOnly: true + description: Computed field indicating if an availability fills an entire + day. + required: + - allDay + - end + - start + AvailabilityRequest: + type: object + properties: + start: + type: string + format: date-time + end: + type: string + format: date-time + required: + - end + - start + BlankEnum: + enum: + - '' + Event: + type: object + properties: + name: + $ref: '#/components/schemas/Multi-language string' + slug: + type: string + title: Short form + description: The slug may only contain letters, numbers, dots and dashes. + pattern: ^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$ + maxLength: 50 + is_public: + type: boolean + title: Event is public + date_from: + type: string + format: date + title: Event start date + date_to: + type: string + format: date + title: Event end date + timezone: + allOf: + - $ref: '#/components/schemas/TimezoneEnum' + description: |+ + All event dates will be localised and interpreted to be in this timezone. + + email: + type: string + format: email + title: Organiser email address + description: Will be used as Reply-To in emails. + maxLength: 254 + primary_color: + type: string + nullable: true + title: Main event colour + description: 'Provide a hex value like #00ff00 if you want to style pretalx + in your event’s colour scheme.' + pattern: '#([0-9A-Fa-f]{3}){1,2}' + maxLength: 7 + custom_domain: + type: string + format: uri + nullable: true + description: Enter a custom domain, such as https://my.event.example.org + maxLength: 200 + logo: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + header_image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + og_image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + locale: + allOf: + - $ref: '#/components/schemas/LocaleEnum' + title: Default language + locales: + type: array + items: + type: string + description: Is a list of active event locales. + readOnly: true + content_locales: + type: array + items: + type: string + description: Is a list of active content locales. + readOnly: true + required: + - content_locales + - date_from + - date_to + - email + - locales + - name + - slug + EventList: + type: object + properties: + name: + $ref: '#/components/schemas/Multi-language string' + slug: + type: string + title: Short form + description: The slug may only contain letters, numbers, dots and dashes. + pattern: ^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$ + maxLength: 50 + is_public: + type: boolean + title: Event is public + date_from: + type: string + format: date + title: Event start date + date_to: + type: string + format: date + title: Event end date + timezone: + allOf: + - $ref: '#/components/schemas/TimezoneEnum' + description: |+ + All event dates will be localised and interpreted to be in this timezone. + + required: + - date_from + - date_to + - name + - slug + Feedback: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + submission: + type: string + readOnly: true + speaker: + type: string + readOnly: true + rating: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + review: + type: string + title: Feedback + required: + - id + - review + - speaker + - submission + FeedbackWriteRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + submission: + type: string + minLength: 1 + speaker: + type: string + minLength: 1 + nullable: true + rating: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + review: + type: string + minLength: 1 + title: Feedback + required: + - review + - submission + FileResponse: + type: object + description: Serializer for file upload response. + properties: + id: + type: string + description: Cached file identifier + required: + - id + IconEnum: + enum: + - '-' + - bsky + - discord + - github + - instagram + - linkedin + - mastodon + - twitter + - web + - youtube + type: string + description: |- + * `-` - No icon + * `bsky` - Bluesky + * `discord` - Discord + * `github` - GitHub + * `instagram` - Instagram + * `linkedin` - LinkedIn + * `mastodon` - Mastodon + * `twitter` - Twitter + * `web` - Website + * `youtube` - YouTube + LocaleEnum: + enum: + - en + - de + - de-formal + - ar + - bg + - cs + - el + - es + - fr + - it + - ja-jp + - ko + - nl + - pl + - pt-br + - pt-pt + - vi + - zh-hant + - zh-hans + type: string + description: |- + * `en` - English + * `de` - German + * `de-formal` - German (formal) + * `ar` - Arabic + * `bg` - Bulgarian + * `cs` - Czech + * `el` - Greek + * `es` - Spanish + * `fr` - French + * `it` - Italian + * `ja-jp` - Japanese + * `ko` - Korean + * `nl` - Dutch + * `pl` - Polish + * `pt-br` - Brazilian Portuguese + * `pt-pt` - Portuguese + * `vi` - Vietnamese + * `zh-hant` - Traditional Chinese (Taiwan) + * `zh-hans` - Simplified Chinese + MailTemplate: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + role: + nullable: true + $ref: '#/components/schemas/RoleEnum' + subject: + $ref: '#/components/schemas/Multi-language string' + text: + $ref: '#/components/schemas/Multi-language string' + reply_to: + type: string + nullable: true + description: Change the Reply-To address if you do not want to use the default + organiser address + maxLength: 200 + bcc: + type: string + nullable: true + description: Enter comma separated addresses. Will receive a blind copy + of every mail sent from this template. This may be a LOT! + maxLength: 1000 + required: + - id + - role + - subject + - text + MailTemplateRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + subject: + $ref: '#/components/schemas/Multi-language string' + text: + $ref: '#/components/schemas/Multi-language string' + reply_to: + type: string + nullable: true + description: Change the Reply-To address if you do not want to use the default + organiser address + maxLength: 200 + bcc: + type: string + nullable: true + description: Enter comma separated addresses. Will receive a blind copy + of every mail sent from this template. This may be a LOT! + maxLength: 1000 + required: + - subject + - text + Multi-language string: + type: object + additionalProperties: + type: string + example: + en: English text + de: Deutscher Text + NestedAnswerOption: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + required: + - answer + - id + NestedAnswerOptionRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + answer: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Response + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + required: + - answer + NullEnum: + enum: + - null + PaginatedActivityLogList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ActivityLog' + PaginatedAnswerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Answer' + PaginatedAnswerOptionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/AnswerOption' + PaginatedFeedbackList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Feedback' + PaginatedMailTemplateList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/MailTemplate' + PaginatedQuestionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Question' + PaginatedReviewList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Review' + PaginatedRoomList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=400&limit=100 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?offset=200&limit=100 + results: + type: array + items: + $ref: '#/components/schemas/Room' + PaginatedScheduleListList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ScheduleList' + PaginatedSpeakerInformationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/SpeakerInformation' + PaginatedSpeakerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Speaker' + PaginatedSubmissionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Submission' + PaginatedSubmissionTypeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/SubmissionType' + PaginatedTagList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Tag' + PaginatedTalkSlotList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/TalkSlot' + PaginatedTeamList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Team' + PaginatedTrackList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Track' + PaginatedV1SubmitterAccessCodeList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/V1SubmitterAccessCode' + PendingStateEnum: + enum: + - submitted + - accepted + - confirmed + - rejected + - canceled + - withdrawn + - draft + type: string + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + Question: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + identifier: + type: string + question: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Label + help_text: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: Will appear just like this text below the custom input field. + You can use Markdown here. + default_answer: + type: string + nullable: true + variant: + $ref: '#/components/schemas/VariantEnum' + target: + allOf: + - $ref: '#/components/schemas/TargetEnum' + title: Field type + description: |- + Do you require an answer from every speaker or for every session? + + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + deadline: + type: string + format: date-time + nullable: true + description: Set a deadline to make this field required after the given + date. + freeze_after: + type: string + format: date-time + nullable: true + description: Set a deadline to stop changes to responses after the given + date. + question_required: + allOf: + - $ref: '#/components/schemas/QuestionRequiredEnum' + title: Field required + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + tracks: + type: array + items: + type: integer + description: You can limit this field to some tracks. Leave empty to apply + to all tracks. + submission_types: + type: array + items: + type: integer + title: Session types + title: Session types + description: You can limit this field to some session types. Leave empty + to apply to all session types. + options: + type: array + items: + type: integer + min_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Minimum text length + description: Minimum allowed text in characters or words (set in CfP settings). + max_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Maximum text length + description: Maximum allowed text length in characters or words (set in + CfP settings). + min_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Minimum value + max_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Maximum value + min_date: + type: string + format: date + nullable: true + title: Minimum value + max_date: + type: string + format: date + nullable: true + title: Maximum value + min_datetime: + type: string + format: date-time + nullable: true + title: Minimum value + max_datetime: + type: string + format: date-time + nullable: true + title: Maximum value + icon: + nullable: true + description: |- + Custom URL fields that are shown publicly can use an icon when displaying the link. + + * `-` - No icon + * `bsky` - Bluesky + * `discord` - Discord + * `github` - GitHub + * `instagram` - Instagram + * `linkedin` - LinkedIn + * `mastodon` - Mastodon + * `twitter` - Twitter + * `web` - Website + * `youtube` - YouTube + oneOf: + - $ref: '#/components/schemas/IconEnum' + - $ref: '#/components/schemas/NullEnum' + required: + - id + - options + - question + QuestionOrga: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + identifier: + type: string + question: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Label + help_text: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: Will appear just like this text below the custom input field. + You can use Markdown here. + default_answer: + type: string + nullable: true + variant: + $ref: '#/components/schemas/VariantEnum' + target: + allOf: + - $ref: '#/components/schemas/TargetEnum' + title: Field type + description: |- + Do you require an answer from every speaker or for every session? + + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + deadline: + type: string + format: date-time + nullable: true + description: Set a deadline to make this field required after the given + date. + freeze_after: + type: string + format: date-time + nullable: true + description: Set a deadline to stop changes to responses after the given + date. + question_required: + allOf: + - $ref: '#/components/schemas/QuestionRequiredEnum' + title: Field required + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + tracks: + type: array + items: + type: integer + description: You can limit this field to some tracks. Leave empty to apply + to all tracks. + submission_types: + type: array + items: + type: integer + title: Session types + title: Session types + description: You can limit this field to some session types. Leave empty + to apply to all session types. + options: + type: array + items: + $ref: '#/components/schemas/NestedAnswerOption' + min_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Minimum text length + description: Minimum allowed text in characters or words (set in CfP settings). + max_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Maximum text length + description: Maximum allowed text length in characters or words (set in + CfP settings). + min_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Minimum value + max_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Maximum value + min_date: + type: string + format: date + nullable: true + title: Minimum value + max_date: + type: string + format: date + nullable: true + title: Maximum value + min_datetime: + type: string + format: date-time + nullable: true + title: Minimum value + max_datetime: + type: string + format: date-time + nullable: true + title: Maximum value + icon: + nullable: true + description: |- + Custom URL fields that are shown publicly can use an icon when displaying the link. + + * `-` - No icon + * `bsky` - Bluesky + * `discord` - Discord + * `github` - GitHub + * `instagram` - Instagram + * `linkedin` - LinkedIn + * `mastodon` - Mastodon + * `twitter` - Twitter + * `web` - Website + * `youtube` - YouTube + oneOf: + - $ref: '#/components/schemas/IconEnum' + - $ref: '#/components/schemas/NullEnum' + active: + type: boolean + description: Inactive fields will no longer be shown. + is_public: + type: boolean + title: Publish answers + description: Responses will be shown on session or speaker pages as appropriate. + contains_personal_data: + type: boolean + title: Responses contain personal data + description: If a user deletes their account, responses containing personal + data will be removed, too. + is_visible_to_reviewers: + type: boolean + title: Show answers to reviewers + description: Should responses to this field be shown to reviewers? This + is helpful if you want to collect personal information, but use anonymous + reviews. + required: + - id + - question + QuestionOrgaRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + identifier: + type: string + question: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Label + help_text: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: Will appear just like this text below the custom input field. + You can use Markdown here. + default_answer: + type: string + nullable: true + variant: + $ref: '#/components/schemas/VariantEnum' + target: + allOf: + - $ref: '#/components/schemas/TargetEnum' + title: Field type + description: |- + Do you require an answer from every speaker or for every session? + + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + deadline: + type: string + format: date-time + nullable: true + description: Set a deadline to make this field required after the given + date. + freeze_after: + type: string + format: date-time + nullable: true + description: Set a deadline to stop changes to responses after the given + date. + question_required: + allOf: + - $ref: '#/components/schemas/QuestionRequiredEnum' + title: Field required + position: + type: integer + maximum: 2147483647 + minimum: -2147483648 + tracks: + type: array + items: + type: integer + description: You can limit this field to some tracks. Leave empty to apply + to all tracks. + submission_types: + type: array + items: + type: integer + title: Session types + title: Session types + description: You can limit this field to some session types. Leave empty + to apply to all session types. + options: + type: array + items: + $ref: '#/components/schemas/NestedAnswerOptionRequest' + min_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Minimum text length + description: Minimum allowed text in characters or words (set in CfP settings). + max_length: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + title: Maximum text length + description: Maximum allowed text length in characters or words (set in + CfP settings). + min_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Minimum value + max_number: + type: string + format: decimal + pattern: ^-?\d{0,10}(?:\.\d{0,6})?$ + nullable: true + title: Maximum value + min_date: + type: string + format: date + nullable: true + title: Minimum value + max_date: + type: string + format: date + nullable: true + title: Maximum value + min_datetime: + type: string + format: date-time + nullable: true + title: Minimum value + max_datetime: + type: string + format: date-time + nullable: true + title: Maximum value + icon: + nullable: true + description: |- + Custom URL fields that are shown publicly can use an icon when displaying the link. + + * `-` - No icon + * `bsky` - Bluesky + * `discord` - Discord + * `github` - GitHub + * `instagram` - Instagram + * `linkedin` - LinkedIn + * `mastodon` - Mastodon + * `twitter` - Twitter + * `web` - Website + * `youtube` - YouTube + oneOf: + - $ref: '#/components/schemas/IconEnum' + - $ref: '#/components/schemas/NullEnum' + active: + type: boolean + description: Inactive fields will no longer be shown. + is_public: + type: boolean + title: Publish answers + description: Responses will be shown on session or speaker pages as appropriate. + contains_personal_data: + type: boolean + title: Responses contain personal data + description: If a user deletes their account, responses containing personal + data will be removed, too. + is_visible_to_reviewers: + type: boolean + title: Show answers to reviewers + description: Should responses to this field be shown to reviewers? This + is helpful if you want to collect personal information, but use anonymous + reviews. + required: + - question + QuestionRequiredEnum: + enum: + - optional + - required + - after_deadline + type: string + description: |- + * `optional` - always optional + * `required` - always required + * `after_deadline` - required after a deadline + RemoveSpeakerRequest: + type: object + properties: + user: + type: string + minLength: 1 + required: + - user + ResourceWriteRequest: + type: object + description: |- + Resources may not be updated, only created and deleted. Use the + ``link`` field to provide an external link or the ``resource`` + field to provide an uploaded file. + properties: + resource: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + nullable: true + link: + type: string + format: uri + nullable: true + maxLength: 400 + description: + type: string + minLength: 1 + maxLength: 1000 + is_public: + type: boolean + default: true + required: + - description + Review: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + submission: + type: string + text: + type: string + nullable: true + title: Review + score: + type: string + format: decimal + pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ + readOnly: true + nullable: true + scores: + type: array + items: + $ref: '#/components/schemas/ReviewScore' + answers: + type: array + items: + $ref: '#/components/schemas/Answer' + readOnly: true + user: + type: string + nullable: true + readOnly: true + required: + - answers + - id + - score + - scores + - submission + - user + ReviewScore: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + category: + type: integer + value: + type: string + format: decimal + pattern: ^-?\d{0,5}(?:\.\d{0,2})?$ + label: + type: string + nullable: true + maxLength: 200 + required: + - category + - id + - value + ReviewWriteRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + submission: + type: string + minLength: 1 + text: + type: string + nullable: true + title: Review + scores: + type: array + items: + type: integer + answers: + type: array + items: + type: integer + required: + - scores + - submission + Room: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + name: + $ref: '#/components/schemas/Multi-language string' + description: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: A description for attendees, for example directions. + uuid: + type: string + format: uuid + readOnly: true + description: The uuid field is equal the the guid field if a guid has been + set. Otherwise, it will contain a computed (stable) UUID. + guid: + type: string + format: uuid + nullable: true + description: Unique identifier (UUID) to help external tools identify the + room. + capacity: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: How many people can fit in the room? + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + required: + - id + - name + - uuid + RoomOrga: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + name: + $ref: '#/components/schemas/Multi-language string' + description: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: A description for attendees, for example directions. + uuid: + type: string + format: uuid + readOnly: true + description: The uuid field is equal the the guid field if a guid has been + set. Otherwise, it will contain a computed (stable) UUID. + guid: + type: string + format: uuid + nullable: true + description: Unique identifier (UUID) to help external tools identify the + room. + capacity: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: How many people can fit in the room? + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + speaker_info: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + title: Speaker Information + description: Information relevant for speakers scheduled in this room, for + example room size, special directions, available adaptors for video input + … + availabilities: + type: array + items: + $ref: '#/components/schemas/Availability' + required: + - id + - name + - uuid + RoomOrgaRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + name: + $ref: '#/components/schemas/Multi-language string' + description: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: A description for attendees, for example directions. + guid: + type: string + format: uuid + nullable: true + description: Unique identifier (UUID) to help external tools identify the + room. + capacity: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: How many people can fit in the room? + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + speaker_info: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + title: Speaker Information + description: Information relevant for speakers scheduled in this room, for + example room size, special directions, available adaptors for video input + … + availabilities: + type: array + items: + $ref: '#/components/schemas/AvailabilityRequest' + required: + - name + Root: + type: object + properties: + name: + type: string + version: + type: string + api_version: + type: string + urls: + $ref: '#/components/schemas/RootUrls' + required: + - api_version + - name + - urls + - version + RootUrls: + type: object + properties: + events: + type: string + format: uri + required: + - events + Schedule: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + version: + type: string + published: + type: string + format: date-time + nullable: true + comment: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + description: This text will be shown in the public changelog and the RSS + feed. You can use Markdown here. + slots: + type: array + items: + type: integer + readOnly: true + required: + - id + - slots + - version + ScheduleList: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + version: + type: string + published: + type: string + format: date-time + nullable: true + required: + - id + - version + ScheduleReleaseRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + version: + type: string + minLength: 1 + comment: + type: string + nullable: true + required: + - version + Speaker: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + code: + type: string + readOnly: true + name: + type: string + biography: + type: string + nullable: true + submissions: + type: array + items: + type: string + readOnly: true + avatar_url: + type: string + format: uri + readOnly: true + answers: + type: array + items: + type: integer + readOnly: true + required: + - answers + - avatar_url + - code + - name + - submissions + SpeakerInformation: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + target_group: + $ref: '#/components/schemas/TargetGroupEnum' + title: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Subject + text: + allOf: + - $ref: '#/components/schemas/Multi-language string' + description: You can use Markdown here. + resource: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + limit_tracks: + type: array + items: + type: integer + title: Limit to tracks + title: Limit to tracks + description: Leave empty to show this information to all tracks. + limit_types: + type: array + items: + type: integer + title: Limit to proposal types + title: Limit to proposal types + description: Leave empty to show this information for all proposal types. + required: + - id + - text + - title + SpeakerInformationRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + target_group: + $ref: '#/components/schemas/TargetGroupEnum' + title: + allOf: + - $ref: '#/components/schemas/Multi-language string' + title: Subject + text: + allOf: + - $ref: '#/components/schemas/Multi-language string' + description: You can use Markdown here. + resource: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + limit_tracks: + type: array + items: + type: integer + title: Limit to tracks + title: Limit to tracks + description: Leave empty to show this information to all tracks. + limit_types: + type: array + items: + type: integer + title: Limit to proposal types + title: Limit to proposal types + description: Leave empty to show this information for all proposal types. + required: + - text + - title + SpeakerOrga: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + code: + type: string + readOnly: true + name: + type: string + biography: + type: string + nullable: true + submissions: + type: array + items: + type: string + readOnly: true + avatar_url: + type: string + format: uri + readOnly: true + answers: + type: array + items: + type: integer + readOnly: true + email: + type: string + format: email + timezone: + type: string + readOnly: true + locale: + type: string + readOnly: true + has_arrived: + type: boolean + title: The speaker has arrived + availabilities: + type: array + items: + $ref: '#/components/schemas/Availability' + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + required: + - answers + - avatar_url + - code + - email + - locale + - name + - submissions + - timezone + SpeakerUpdateRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + name: + type: string + minLength: 1 + biography: + type: string + nullable: true + email: + type: string + format: email + minLength: 1 + has_arrived: + type: boolean + title: The speaker has arrived + availabilities: + type: array + items: + $ref: '#/components/schemas/AvailabilityRequest' + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + avatar: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + required: + - email + - name + StateEnum: + enum: + - submitted + - accepted + - confirmed + - rejected + - canceled + - withdrawn + - draft + type: string + description: |- + * `submitted` - submitted + * `accepted` - accepted + * `confirmed` - confirmed + * `rejected` - rejected + * `canceled` - canceled + * `withdrawn` - withdrawn + * `draft` - draft + Submission: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + code: + type: string + readOnly: true + title: + type: string + title: Proposal title + maxLength: 200 + speakers: + type: array + items: + type: string + readOnly: true + submission_type: + type: integer + track: + type: integer + nullable: true + tags: + type: array + items: + type: integer + state: + allOf: + - $ref: '#/components/schemas/StateEnum' + readOnly: true + title: Proposal state + abstract: + type: string + nullable: true + description: + type: string + nullable: true + duration: + type: integer + description: Defaults to the submission type’s duration + slot_count: + type: integer + maximum: 2147483647 + minimum: 1 + description: How many times this session will take place. + content_locale: + type: string + title: Language + maxLength: 32 + do_not_record: + type: boolean + title: Don’t record this session. + image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + resources: + type: array + items: + type: integer + readOnly: true + slots: + type: array + items: + type: integer + readOnly: true + answers: + type: array + items: + type: integer + readOnly: true + required: + - answers + - code + - resources + - slots + - speakers + - state + - submission_type + - title + SubmissionOrga: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + code: + type: string + readOnly: true + title: + type: string + title: Proposal title + maxLength: 200 + speakers: + type: array + items: + type: string + readOnly: true + submission_type: + type: integer + track: + type: integer + nullable: true + tags: + type: array + items: + type: integer + state: + allOf: + - $ref: '#/components/schemas/StateEnum' + readOnly: true + title: Proposal state + abstract: + type: string + nullable: true + description: + type: string + nullable: true + duration: + type: integer + description: Defaults to the submission type’s duration + slot_count: + type: integer + maximum: 2147483647 + minimum: 1 + description: How many times this session will take place. + content_locale: + type: string + title: Language + maxLength: 32 + do_not_record: + type: boolean + title: Don’t record this session. + image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + resources: + type: array + items: + type: integer + readOnly: true + slots: + type: array + items: + type: integer + readOnly: true + answers: + type: array + items: + type: integer + readOnly: true + pending_state: + nullable: true + title: Pending proposal state + oneOf: + - $ref: '#/components/schemas/PendingStateEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + is_featured: + type: boolean + title: Show this session in public list of featured sessions. + notes: + type: string + nullable: true + description: These notes are meant for the organiser and won’t be made public. + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + invitation_token: + type: string + maxLength: 32 + access_code: + type: integer + nullable: true + review_code: + type: string + nullable: true + maxLength: 32 + anonymised_data: + type: string + nullable: true + reviews: + type: array + items: + type: integer + assigned_reviewers: + type: array + items: + type: string + nullable: true + is_anonymised: + type: boolean + readOnly: true + median_score: + type: number + format: double + nullable: true + readOnly: true + mean_score: + type: number + format: double + nullable: true + readOnly: true + created: + type: string + format: date-time + readOnly: true + updated: + type: string + format: date-time + readOnly: true + invitations: + type: array + items: + type: integer + readOnly: true + required: + - answers + - code + - created + - invitations + - is_anonymised + - mean_score + - median_score + - resources + - slots + - speakers + - state + - submission_type + - title + - updated + SubmissionOrgaRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + title: + type: string + minLength: 1 + title: Proposal title + maxLength: 200 + submission_type: + type: integer + track: + type: integer + nullable: true + tags: + type: array + items: + type: integer + abstract: + type: string + nullable: true + description: + type: string + nullable: true + duration: + type: integer + description: Defaults to the submission type’s duration + slot_count: + type: integer + maximum: 2147483647 + minimum: 1 + description: How many times this session will take place. + content_locale: + type: string + minLength: 1 + title: Language + maxLength: 32 + do_not_record: + type: boolean + title: Don’t record this session. + image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + pending_state: + nullable: true + title: Pending proposal state + oneOf: + - $ref: '#/components/schemas/PendingStateEnum' + - $ref: '#/components/schemas/BlankEnum' + - $ref: '#/components/schemas/NullEnum' + is_featured: + type: boolean + title: Show this session in public list of featured sessions. + notes: + type: string + nullable: true + description: These notes are meant for the organiser and won’t be made public. + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + invitation_token: + type: string + minLength: 1 + maxLength: 32 + access_code: + type: integer + nullable: true + review_code: + type: string + nullable: true + maxLength: 32 + anonymised_data: + type: string + nullable: true + reviews: + type: array + items: + type: integer + assigned_reviewers: + type: array + items: + type: string + nullable: true + minLength: 1 + required: + - submission_type + - title + SubmissionRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + title: + type: string + minLength: 1 + title: Proposal title + maxLength: 200 + submission_type: + type: integer + track: + type: integer + nullable: true + tags: + type: array + items: + type: integer + abstract: + type: string + nullable: true + description: + type: string + nullable: true + duration: + type: integer + description: Defaults to the submission type’s duration + slot_count: + type: integer + maximum: 2147483647 + minimum: 1 + description: How many times this session will take place. + content_locale: + type: string + minLength: 1 + title: Language + maxLength: 32 + do_not_record: + type: boolean + title: Don’t record this session. + image: + type: str + description: When reading data, a URL pointing to a downloadable file. When + writing adata, a reference to a file uploaded via the file + uploads endpoint. + required: + - submission_type + - title + SubmissionType: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + name: + $ref: '#/components/schemas/Multi-language string' + default_duration: + type: integer + maximum: 2147483647 + minimum: 0 + description: Default duration in minutes + deadline: + type: string + format: date-time + nullable: true + description: If you want a different deadline than the global deadline for + this session type, enter it here. + requires_access_code: + type: boolean + description: This session type will only be shown to submitters with a matching + access code. + required: + - id + - name + SubmissionTypeRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + name: + $ref: '#/components/schemas/Multi-language string' + default_duration: + type: integer + maximum: 2147483647 + minimum: 0 + description: Default duration in minutes + deadline: + type: string + format: date-time + nullable: true + description: If you want a different deadline than the global deadline for + this session type, enter it here. + requires_access_code: + type: boolean + description: This session type will only be shown to submitters with a matching + access code. + required: + - name + Tag: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + tag: + type: string + maxLength: 50 + description: + $ref: '#/components/schemas/Multi-language string' + color: + type: string + title: Colour + pattern: '#([0-9A-Fa-f]{3}){1,2}' + maxLength: 7 + is_public: + type: boolean + title: Show tag publicly + description: Public tags can be selected by submitters in the CfP if you + activate the tags field. In a future release of pretalx, public tags may + also be shown in the public schedule. + required: + - color + - id + - tag + TagRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + tag: + type: string + minLength: 1 + maxLength: 50 + description: + $ref: '#/components/schemas/Multi-language string' + color: + type: string + minLength: 1 + title: Colour + pattern: '#([0-9A-Fa-f]{3}){1,2}' + maxLength: 7 + is_public: + type: boolean + title: Show tag publicly + description: Public tags can be selected by submitters in the CfP if you + activate the tags field. In a future release of pretalx, public tags may + also be shown in the public schedule. + required: + - color + - tag + TalkSlot: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + room: + type: integer + nullable: true + description: The room this talk is scheduled in, if any + start: + type: string + format: date-time + nullable: true + description: When the talk starts, if it is currently scheduled + end: + type: string + format: date-time + submission: + type: string + readOnly: true + schedule: + type: integer + readOnly: true + description: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + duration: + type: integer + description: |- + Returns the actual duration in minutes if the talk is scheduled, and + the planned duration in minutes otherwise. + readOnly: true + required: + - duration + - id + - schedule + - submission + TalkSlotRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + room: + type: integer + nullable: true + description: The room this talk is scheduled in, if any + start: + type: string + format: date-time + nullable: true + description: When the talk starts, if it is currently scheduled + end: + type: string + format: date-time + description: + allOf: + - $ref: '#/components/schemas/Multi-language string' + nullable: true + TargetEnum: + enum: + - submission + - speaker + - reviewer + type: string + description: |- + * `submission` - per proposal + * `speaker` - per speaker + * `reviewer` - for reviewers + TargetGroupEnum: + enum: + - submitters + - accepted + - confirmed + type: string + description: |- + * `submitters` - all + * `accepted` - All accepted speakers + * `confirmed` - Only confirmed speakers + Team: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + id: + type: integer + readOnly: true + name: + type: string + title: Team name + maxLength: 190 + members: + type: array + items: + type: string + nullable: true + invites: + type: array + items: + type: integer + all_events: + type: boolean + title: Apply permissions to all events by this organiser (including newly + created ones) + limit_events: + type: array + items: + type: string + title: Short form + description: The slug may only contain letters, numbers, dots and dashes. + limit_tracks: + type: array + items: + type: integer + can_create_events: + type: boolean + can_change_teams: + type: boolean + title: Can change teams and permissions + can_change_organiser_settings: + type: boolean + can_change_event_settings: + type: boolean + can_change_submissions: + type: boolean + title: Can work with and change proposals + is_reviewer: + type: boolean + title: Is a reviewer + force_hide_speaker_names: + type: boolean + title: Always hide speaker names + description: Normally, anonymisation is configured in the event review settings. + This setting will override the event settings and always + hide speaker names for this team. + required: + - id + - name + TeamInviteCreateRequest: + type: object + properties: + email: + type: string + format: email + minLength: 1 + required: + - email + TeamMemberRemoveRequest: + type: object + properties: + user_code: + type: string + minLength: 1 + required: + - user_code + TeamRequest: + type: object + description: |- + A ModelSerializer that takes additional arguments for + "fields", "omit" and "expand" in order to + control which fields are displayed, and whether to replace simple + values with complex, nested serializations + properties: + name: + type: string + minLength: 1 + title: Team name + maxLength: 190 + members: + type: array + items: + type: string + nullable: true + minLength: 1 + invites: + type: array + items: + type: integer + all_events: + type: boolean + title: Apply permissions to all events by this organiser (including newly + created ones) + limit_events: + type: array + items: + type: string + minLength: 1 + title: Short form + description: The slug may only contain letters, numbers, dots and dashes. + limit_tracks: + type: array + items: + type: integer + can_create_events: + type: boolean + can_change_teams: + type: boolean + title: Can change teams and permissions + can_change_organiser_settings: + type: boolean + can_change_event_settings: + type: boolean + can_change_submissions: + type: boolean + title: Can work with and change proposals + is_reviewer: + type: boolean + title: Is a reviewer + force_hide_speaker_names: + type: boolean + title: Always hide speaker names + description: Normally, anonymisation is configured in the event review settings. + This setting will override the event settings and always + hide speaker names for this team. + required: + - name + TimezoneEnum: + enum: [] + Track: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + name: + $ref: '#/components/schemas/Multi-language string' + description: + $ref: '#/components/schemas/Multi-language string' + color: + type: string + title: Colour + pattern: '#([0-9A-Fa-f]{3}){1,2}' + maxLength: 7 + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: The position field is used to determine the order that tracks + are displayed in (lowest first). + requires_access_code: + type: boolean + description: This track will only be shown to submitters with a matching + access code. + required: + - color + - id + - name + TrackRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + name: + $ref: '#/components/schemas/Multi-language string' + description: + $ref: '#/components/schemas/Multi-language string' + color: + type: string + minLength: 1 + title: Colour + pattern: '#([0-9A-Fa-f]{3}){1,2}' + maxLength: 7 + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: The position field is used to determine the order that tracks + are displayed in (lowest first). + requires_access_code: + type: boolean + description: This track will only be shown to submitters with a matching + access code. + required: + - color + - name + User: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + code: + type: string + nullable: true + maxLength: 16 + name: + type: string + description: Please enter the name you wish to be displayed publicly. This + name will be used for all events you are participating in on this server. + maxLength: 120 + required: + - name + V1SubmitterAccessCode: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + id: + type: integer + readOnly: true + code: + type: string + title: Access code + pattern: ^[a-zA-Z0-9]+$ + maxLength: 255 + track: + type: integer + nullable: true + submission_type: + type: integer + nullable: true + valid_until: + type: string + format: date-time + nullable: true + description: You can set or change this date later to invalidate the access + code. + maximum_uses: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: Numbers of times this access code can be used to submit a proposal. + Leave empty for no limit. + redeemed: + type: integer + readOnly: true + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + required: + - code + - id + - redeemed + V1SubmitterAccessCodeRequest: + type: object + description: |- + This serializer class will behave like the i18nfield serializer, + outputting a dict/object for internationalized strings, unless if + when it was initialized with an ``override_locale`` (taken from + a URL queryparam, usually), in which case the string will be cast + to the locale in question – relying on either a view or a middleware + to apply the locale manager. + properties: + code: + type: string + minLength: 1 + title: Access code + pattern: ^[a-zA-Z0-9]+$ + maxLength: 255 + track: + type: integer + nullable: true + submission_type: + type: integer + nullable: true + valid_until: + type: string + format: date-time + nullable: true + description: You can set or change this date later to invalidate the access + code. + maximum_uses: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + description: Numbers of times this access code can be used to submit a proposal. + Leave empty for no limit. + internal_notes: + type: string + nullable: true + description: Internal notes for other organisers/reviewers. Not visible + to the speakers or the public. + required: + - code + VariantEnum: + enum: + - number + - string + - text + - url + - date + - datetime + - boolean + - file + - choices + - multiple_choice + type: string + description: |- + * `number` - Number + * `string` - Text (one-line) + * `text` - Multi-line text + * `url` - URL + * `date` - Date + * `datetime` - Date and time + * `boolean` - Yes/No + * `file` - File upload + * `choices` - Choose one from a list + * `multiple_choice` - Choose multiple from a list + RoleEnum: + enum: + - submission.new + - submission.new.internal + - submission.state.accepted + - submission.state.rejected + - speaker.invite + - speaker.invite.existing + - question.reminder + - draft.reminder + - schedule.new + type: string + description: |- + * `submission.new` - Acknowledge proposal submission + * `submission.new.internal` - New proposal (organiser notification) + * `submission.state.accepted` - Proposal accepted + * `submission.state.rejected` - Proposal rejected + * `speaker.invite` - Add a speaker to a proposal (new account) + * `speaker.invite.existing` - Add a speaker to a proposal (existing account) + * `question.reminder` - Custom fields reminder + * `draft.reminder` - Draft proposal reminder + * `schedule.new` - New schedule published +servers: + - url: https://pretalx.com +externalDocs: + url: https://docs.pretalx.org/api/ +tags: + - name: root + description: The API root endpoint provides version information and links to the + main API resources. + - name: events + description: The events endpoints are currently read-only, though we hope to add + write actions for event settings eventually. + - name: teams + description: Access permissions for events are organised in teams within an organiser. + This is the only API endpoint that does not use the event setting on your access + token, as teams exist outside the event structure. + - name: submissions + description: Submissions are the central component of pretalx. The submissions available + to an authenticated user via the API depend on their permissions within the event, + the current review phase, and so on. To a non-authenticated user, only submissions + that are a part of the current public schedule will be visible. Note that changing + the speakers and state of a submission requires you to use the individual action + endpoints rather than a plain update. + externalDocs: + url: https://docs.pretalx.org/user/sessions/ + description: User documentation + - name: speakers + description: Speakers can currently only updated, not created or deleted, as a speaker + refers to a user object, and users can only be deleted by administrators. Organisers + will see additional fields in the API, in line with the response to the update + actions. + - name: schedules + description: In pretalx, an event’s schedule is versioned, and each version is a + schedule object in the API. In addition to the normal ID based routing, you can + use the `latest` shortcut to see the current public schedule, and as organiser, + the `wip` shortcut will show the current unpublished working copy. As retrieving + the fully expanded endpoint is expensive on the pretalx side, consider using the + redirect offered at ``by-version/?latest=1`` to check for a new release. + - name: slots + description: Every block in a published pretalx schedule is a talk slot. Note that + there are talk slots without associated submission (e.g. breaks). Each slot belongs + to a schedule version – refer to the schedule endpoint for further documentation. + Note that slots cannot be created or deleted via the API – this happens automatically + when a submission’s state changes. + - name: rooms + description: Rooms are part of conference schedules. Only once the conference schedule + is public will the rooms API be available to unauthenticated users. Authenticated + organisers will see additional fields in the API, in line with the create and + update actions. + - name: submission-types + description: Submission types define the types of proposals that can be submitted + to an event, including their default duration. + externalDocs: + url: https://docs.pretalx.org/user/sessions/#session-types + description: User documentation + - name: tags + description: Tags are currently only used in the organiser backend and not publicly. + As such, all tag endpoints require authentication. + externalDocs: + url: https://docs.pretalx.org/user/sessions/#tags + description: User documentation + - name: tracks + description: Tracks are a way to organise proposals and talks into categories, usually + for thematic grouping. + externalDocs: + url: https://docs.pretalx.org/user/sessions/#tracks + description: User documentation + - name: questions + description: The questions resource represents all fields created by organisers + via the flexible “custom fields” model, with the answers available under the ``/answers/`` + endpoint. + - name: question-options + description: 'Question options are used in questions of type ``CHOICE`` and ``MULTIPLE_CHOICE``. ' + - name: answers + description: 'The answers resource represents all data collected by organisers via + the flexible “custom fields” model, which allows for nearly arbitrary data collection + from speakers or reviewers. ' + - name: reviews + description: Reviews can be created, updated and deleted in the API depending on + permissions (user, token and team), the current review phase, and so on. As with + the other endpoints, this endpoint is not available to users/tokens with only + reviewer permissions while an anonymised review phase is active. Otherwise, the + reviews available depend on the current review phase and the user’s access permissions, + so e.g. only the user’s own reviews may be available. + - name: mail-templates + description: Mail templates are used to define standardized mail formats for standard + situations, like acceptance or rejection mails, or to add custom email templates + for your own use. Please note that the role attribute cannot be changed. + - name: speaker-information + description: Speaker information can be used to provide important information to + speakers, either to all speakers or only to accepted or confirmed speakers. + - name: access-codes + description: Access codes can be used to grant access to restricted tracks, or to + allow for proposals to be submitted past the public deadline. + - name: file-uploads + description: Upload files for further use in other resources of the pretalx API. + externalDocs: + url: https://docs.pretalx.org/api/fundamentals/#file-uploads + description: API documentation diff --git a/openapi-ts.config.ts b/openapi-ts.config.ts index 6c342bdb..4a5f0306 100644 --- a/openapi-ts.config.ts +++ b/openapi-ts.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from '@hey-api/openapi-ts' export default defineConfig({ - input: 'https://docs.pretalx.org/schema.yml', + input: 'loaders/pretalx/schema.yml', output: { path: 'loaders/pretalx/oapi', }, diff --git a/package.json b/package.json index 640c916e..e9bc2155 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "node": ">=22.14.0" }, "scripts": { - "postinstall": "openapi-ts", + "gen:pretalx": "openapi-ts", + "gen:pretalx:refresh": "curl -fsSL https://docs.pretalx.org/schema.yml -o loaders/pretalx/schema.yml && openapi-ts", "dev": "env-cmd -- vitepress dev", "build": "vitepress build", "preview": "vitepress preview",