openapi: 3.0.3 info: title: Instanssi.org version: 2.0.0 description: Instanssi.org APIv2 paths: /api/v2/admin/auditlog/: get: operationId: admin_auditlog_list description: |- Read-only viewset for viewing audit log entries. Requires auditlog.view_logentry permission. Model-specific filtering is handled in get_queryset(). parameters: - in: query name: app_label schema: type: string - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: model schema: type: string - in: query name: object_pk schema: type: string - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLogEntryList' description: '' /api/v2/admin/auditlog/{id}/: get: operationId: admin_auditlog_retrieve description: |- Read-only viewset for viewing audit log entries. Requires auditlog.view_logentry permission. Model-specific filtering is handled in get_queryset(). parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this log entry. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogEntry' description: '' /api/v2/admin/blog/: get: operationId: admin_blog_list description: Staff viewset for managing blog entries. parameters: - in: query name: event schema: type: integer - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: user schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedBlogEntryList' description: '' post: operationId: admin_blog_create description: Staff viewset for managing blog entries. tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/BlogEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BlogEntryRequest' multipart/form-data: schema: $ref: '#/components/schemas/BlogEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/BlogEntry' description: '' /api/v2/admin/blog/{id}/: get: operationId: admin_blog_retrieve description: Staff viewset for managing blog entries. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this entry. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BlogEntry' description: '' put: operationId: admin_blog_update description: Staff viewset for managing blog entries. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this entry. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/BlogEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BlogEntryRequest' multipart/form-data: schema: $ref: '#/components/schemas/BlogEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BlogEntry' description: '' patch: operationId: admin_blog_partial_update description: Staff viewset for managing blog entries. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this entry. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedBlogEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedBlogEntryRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedBlogEntryRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BlogEntry' description: '' delete: operationId: admin_blog_destroy description: Staff viewset for managing blog entries. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this entry. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/arkisto/archiver/hide/: post: operationId: admin_event_arkisto_archiver_hide_create description: Hides the event from the public archive. summary: Hide event from archive parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/archiver/optimize-scores/: post: operationId: admin_event_arkisto_archiver_optimize_scores_create description: Pre-calculates and stores entry ranks and scores. Cannot be run while event is ongoing. summary: Optimize voting scores parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/archiver/remove-old-votes/: post: operationId: admin_event_arkisto_archiver_remove_old_votes_create description: Deletes vote records after scores have been optimized. Cannot be run while event is ongoing or if scores are not optimized. summary: Remove old votes parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/archiver/show/: post: operationId: admin_event_arkisto_archiver_show_create description: Makes the event visible in the public archive. summary: Show event in archive parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/archiver/status/: get: operationId: admin_event_arkisto_archiver_status_retrieve description: Returns the current archiving status for the event. summary: Get archiver status parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/archiver/transfer-rights/: post: operationId: admin_event_arkisto_archiver_transfer_rights_create description: Transfers entry and competition participation ownership to the 'arkisto' user. Cannot be run while event is ongoing. summary: Transfer rights to archive user parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArchiverStatus' description: '' /api/v2/admin/event/{event_pk}/arkisto/video_categories/: get: operationId: admin_event_arkisto_video_categories_list description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOtherVideoCategoryList' description: '' post: operationId: admin_event_arkisto_video_categories_create description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' multipart/form-data: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategory' description: '' /api/v2/admin/event/{event_pk}/arkisto/video_categories/{id}/: get: operationId: admin_event_arkisto_video_categories_retrieve description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this videokategoria. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategory' description: '' put: operationId: admin_event_arkisto_video_categories_update description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this videokategoria. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' multipart/form-data: schema: $ref: '#/components/schemas/OtherVideoCategoryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategory' description: '' patch: operationId: admin_event_arkisto_video_categories_partial_update description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this videokategoria. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedOtherVideoCategoryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedOtherVideoCategoryRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedOtherVideoCategoryRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideoCategory' description: '' delete: operationId: admin_event_arkisto_video_categories_destroy description: Staff viewset for managing archive video categories. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this videokategoria. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/arkisto/videos/: get: operationId: admin_event_arkisto_videos_list description: Staff viewset for managing archive videos. parameters: - in: query name: category schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOtherVideoList' description: '' post: operationId: admin_event_arkisto_videos_create description: Staff viewset for managing archive videos. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/OtherVideoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OtherVideoRequest' multipart/form-data: schema: $ref: '#/components/schemas/OtherVideoRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/OtherVideo' description: '' /api/v2/admin/event/{event_pk}/arkisto/videos/{id}/: get: operationId: admin_event_arkisto_videos_retrieve description: Staff viewset for managing archive videos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this muu video. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideo' description: '' put: operationId: admin_event_arkisto_videos_update description: Staff viewset for managing archive videos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this muu video. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/OtherVideoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OtherVideoRequest' multipart/form-data: schema: $ref: '#/components/schemas/OtherVideoRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideo' description: '' patch: operationId: admin_event_arkisto_videos_partial_update description: Staff viewset for managing archive videos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this muu video. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedOtherVideoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedOtherVideoRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedOtherVideoRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OtherVideo' description: '' delete: operationId: admin_event_arkisto_videos_destroy description: Staff viewset for managing archive videos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this muu video. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/kompomaatti/competition_participations/: get: operationId: admin_event_kompomaatti_competition_participations_list description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: query name: competition schema: type: integer - in: query name: disqualified schema: type: boolean - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: user schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompetitionParticipationList' description: '' post: operationId: admin_event_kompomaatti_competition_participations_create description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipation' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/competition_participations/{id}/: get: operationId: admin_event_kompomaatti_competition_participations_retrieve description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipation' description: '' put: operationId: admin_event_kompomaatti_competition_participations_update description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompetitionParticipationRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipation' description: '' patch: operationId: admin_event_kompomaatti_competition_participations_partial_update description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCompetitionParticipationRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompetitionParticipation' description: '' delete: operationId: admin_event_kompomaatti_competition_participations_destroy description: |- Staff viewset for managing competition participations. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/kompomaatti/competitions/: get: operationId: admin_event_kompomaatti_competitions_list description: Staff viewset for managing competitions. parameters: - in: query name: active schema: type: boolean - in: path name: event_pk schema: type: integer required: true - in: query name: hide_from_archive schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: show_results schema: type: boolean tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompetitionList' description: '' post: operationId: admin_event_kompomaatti_competitions_create description: Staff viewset for managing competitions. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompetitionRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompetitionRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Competition' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/competitions/{id}/: get: operationId: admin_event_kompomaatti_competitions_retrieve description: Staff viewset for managing competitions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kilpailu. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Competition' description: '' put: operationId: admin_event_kompomaatti_competitions_update description: Staff viewset for managing competitions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kilpailu. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompetitionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompetitionRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompetitionRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Competition' description: '' patch: operationId: admin_event_kompomaatti_competitions_partial_update description: Staff viewset for managing competitions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kilpailu. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCompetitionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCompetitionRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCompetitionRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Competition' description: '' delete: operationId: admin_event_kompomaatti_competitions_destroy description: Staff viewset for managing competitions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kilpailu. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/kompomaatti/compos/: get: operationId: admin_event_kompomaatti_compos_list description: Staff viewset for managing compos. parameters: - in: query name: active schema: type: boolean - in: path name: event_pk schema: type: integer required: true - in: query name: hide_from_archive schema: type: boolean - in: query name: hide_from_frontpage schema: type: boolean - in: query name: is_votable schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: show_voting_results schema: type: boolean tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompoList' description: '' post: operationId: admin_event_kompomaatti_compos_create description: Staff viewset for managing compos. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompoRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompoRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Compo' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/compos/{id}/: get: operationId: admin_event_kompomaatti_compos_retrieve description: Staff viewset for managing compos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kompo. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Compo' description: '' put: operationId: admin_event_kompomaatti_compos_update description: Staff viewset for managing compos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kompo. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/CompoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompoRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompoRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Compo' description: '' patch: operationId: admin_event_kompomaatti_compos_partial_update description: Staff viewset for managing compos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kompo. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCompoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCompoRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCompoRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Compo' description: '' delete: operationId: admin_event_kompomaatti_compos_destroy description: Staff viewset for managing compos. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kompo. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/kompomaatti/entries/: get: operationId: admin_event_kompomaatti_entries_list description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: query name: compo schema: type: integer - in: query name: disqualified schema: type: boolean - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: user schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompoEntryList' description: '' post: operationId: admin_event_kompomaatti_entries_create description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/CompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompoEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CompoEntry' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/entries/{id}/: get: operationId: admin_event_kompomaatti_entries_retrieve description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompoEntry' description: '' put: operationId: admin_event_kompomaatti_entries_update description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/CompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompoEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompoEntry' description: '' patch: operationId: admin_event_kompomaatti_entries_partial_update description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PatchedCompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCompoEntryRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CompoEntry' description: '' delete: operationId: admin_event_kompomaatti_entries_destroy description: |- Staff viewset for managing compo entries. Staff can manage entries without deadline restrictions. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/kompomaatti/entries/download-archive/: get: operationId: admin_event_kompomaatti_entries_download_archive_retrieve description: Streams all entry files as a ZIP archive organized by compo directory. summary: Download entry files archive parameters: - in: query name: compo schema: type: integer description: Filter by compo ID - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/zip: schema: type: string format: binary description: '' /api/v2/admin/event/{event_pk}/kompomaatti/entries/validate-archive/: get: operationId: admin_event_kompomaatti_entries_validate_archive_retrieve description: Checks that all entry files exist on disk before downloading. Call this before download-archive to get actionable error messages. summary: Validate entry files archive parameters: - in: query name: compo schema: type: integer description: Filter by compo ID - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ValidateArchiveOk' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/ValidateArchiveError' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/ticket_vote_codes/: get: operationId: admin_event_kompomaatti_ticket_vote_codes_list description: Staff viewset for viewing ticket vote codes (read-only). parameters: - in: query name: associated_to schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: ticket schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTicketVoteCodeList' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/ticket_vote_codes/{id}/: get: operationId: admin_event_kompomaatti_ticket_vote_codes_retrieve description: Staff viewset for viewing ticket vote codes (read-only). parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this lippuäänestusavain. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TicketVoteCode' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/vote_code_requests/: get: operationId: admin_event_kompomaatti_vote_code_requests_list description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: integer title: Tila enum: - 0 - 1 - 2 description: |- * `0` - Odottaa hyväksyntää * `1` - Hyväksytty * `2` - Hylätty - in: query name: user schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedVoteCodeRequestList' description: '' post: operationId: admin_event_kompomaatti_vote_code_requests_create description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequest' description: '' /api/v2/admin/event/{event_pk}/kompomaatti/vote_code_requests/{id}/: get: operationId: admin_event_kompomaatti_vote_code_requests_retrieve description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequest' description: '' put: operationId: admin_event_kompomaatti_vote_code_requests_update description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/VoteCodeRequestRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequest' description: '' patch: operationId: admin_event_kompomaatti_vote_code_requests_partial_update description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedVoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedVoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedVoteCodeRequestRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/VoteCodeRequest' description: '' delete: operationId: admin_event_kompomaatti_vote_code_requests_destroy description: Staff viewset for managing vote code requests. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/program/events/: get: operationId: admin_event_program_events_list description: Staff viewset for managing program events. parameters: - in: query name: active schema: type: boolean - in: path name: event_pk schema: type: integer required: true - in: query name: event_type schema: type: integer title: Tapahtuman tyyppi enum: - 0 - 1 description: |- Määrittää tapahtuman tyypin. Yksityiskohtaiset tapahtumat näkyvät etusivun tapahtumalistassa. * `0` - Yksinkertainen * `1` - Yksityiskohtainen - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedProgramEventList' description: '' post: operationId: admin_event_program_events_create description: Staff viewset for managing program events. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/ProgramEventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ProgramEventRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ProgramEvent' description: '' /api/v2/admin/event/{event_pk}/program/events/{id}/: get: operationId: admin_event_program_events_retrieve description: Staff viewset for managing program events. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ohjelmatapahtuma. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProgramEvent' description: '' put: operationId: admin_event_program_events_update description: Staff viewset for managing program events. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ohjelmatapahtuma. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/ProgramEventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ProgramEventRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProgramEvent' description: '' patch: operationId: admin_event_program_events_partial_update description: Staff viewset for managing program events. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ohjelmatapahtuma. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PatchedProgramEventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedProgramEventRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProgramEvent' description: '' delete: operationId: admin_event_program_events_destroy description: Staff viewset for managing program events. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ohjelmatapahtuma. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/store/item_variants/: get: operationId: admin_event_store_item_variants_list description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true - in: query name: item schema: type: integer - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedStoreItemVariantList' description: '' post: operationId: admin_event_store_item_variants_create description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/StoreItemVariantRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreItemVariantRequest' multipart/form-data: schema: $ref: '#/components/schemas/StoreItemVariantRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/StoreItemVariant' description: '' /api/v2/admin/event/{event_pk}/store/item_variants/{id}/: get: operationId: admin_event_store_item_variants_retrieve description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotevariantti. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItemVariant' description: '' put: operationId: admin_event_store_item_variants_update description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotevariantti. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/StoreItemVariantRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreItemVariantRequest' multipart/form-data: schema: $ref: '#/components/schemas/StoreItemVariantRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItemVariant' description: '' patch: operationId: admin_event_store_item_variants_partial_update description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotevariantti. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedStoreItemVariantRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedStoreItemVariantRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedStoreItemVariantRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItemVariant' description: '' delete: operationId: admin_event_store_item_variants_destroy description: Staff viewset for managing store item variants. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotevariantti. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/store/items/: get: operationId: admin_event_store_items_list description: Staff viewset for managing store items. parameters: - in: query name: available schema: type: boolean - in: query name: event schema: type: integer - in: path name: event_pk schema: type: integer required: true - in: query name: is_secret schema: type: boolean - in: query name: is_ticket schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedStoreItemList' description: '' post: operationId: admin_event_store_items_create description: Staff viewset for managing store items. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/StoreItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreItemRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/StoreItem' description: '' /api/v2/admin/event/{event_pk}/store/items/{id}/: get: operationId: admin_event_store_items_retrieve description: Staff viewset for managing store items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuote. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItem' description: '' put: operationId: admin_event_store_items_update description: Staff viewset for managing store items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuote. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/StoreItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreItemRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItem' description: '' patch: operationId: admin_event_store_items_partial_update description: Staff viewset for managing store items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuote. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PatchedStoreItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedStoreItemRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreItem' description: '' delete: operationId: admin_event_store_items_destroy description: Staff viewset for managing store items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuote. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/store/receipts/: get: operationId: admin_event_store_receipts_list description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: sent schema: type: string format: date-time - in: query name: transaction schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedReceiptList' description: '' post: operationId: admin_event_store_receipts_create description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/ReceiptRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ReceiptRequest' multipart/form-data: schema: $ref: '#/components/schemas/ReceiptRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Receipt' description: '' /api/v2/admin/event/{event_pk}/store/receipts/{id}/: get: operationId: admin_event_store_receipts_retrieve description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kuitti. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Receipt' description: '' put: operationId: admin_event_store_receipts_update description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kuitti. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/ReceiptRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ReceiptRequest' multipart/form-data: schema: $ref: '#/components/schemas/ReceiptRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Receipt' description: '' patch: operationId: admin_event_store_receipts_partial_update description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kuitti. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedReceiptRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedReceiptRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedReceiptRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Receipt' description: '' delete: operationId: admin_event_store_receipts_destroy description: |- Staff viewset for managing receipts. Custom actions: - POST /receipts//resend/: Resend the receipt email parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kuitti. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/store/receipts/{id}/resend/: post: operationId: admin_event_store_receipts_resend_create description: Resend the receipt email. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kuitti. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/ReceiptRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ReceiptRequest' multipart/form-data: schema: $ref: '#/components/schemas/ReceiptRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Receipt' description: '' /api/v2/admin/event/{event_pk}/store/summary/: get: operationId: admin_event_store_summary_list description: |- Staff viewset for aggregated store sales summary. Returns pre-aggregated statistics (totals, per-item breakdown, sales per day, sales per hour) without exposing any PII. Permission is derived from StoreItem (store.view_storeitem). parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreSummary' description: '' /api/v2/admin/event/{event_pk}/store/transaction_items/: get: operationId: admin_event_store_transaction_items_list description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true - in: query name: item schema: type: integer - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: transaction schema: type: integer - in: query name: variant schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTransactionItemList' description: '' post: operationId: admin_event_store_transaction_items_create description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionItemRequest' multipart/form-data: schema: $ref: '#/components/schemas/TransactionItemRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/TransactionItem' description: '' /api/v2/admin/event/{event_pk}/store/transaction_items/{id}/: get: operationId: admin_event_store_transaction_items_retrieve description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktiotuote. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransactionItem' description: '' put: operationId: admin_event_store_transaction_items_update description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktiotuote. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionItemRequest' multipart/form-data: schema: $ref: '#/components/schemas/TransactionItemRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransactionItem' description: '' patch: operationId: admin_event_store_transaction_items_partial_update description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktiotuote. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTransactionItemRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedTransactionItemRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedTransactionItemRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransactionItem' description: '' delete: operationId: admin_event_store_transaction_items_destroy description: Staff viewset for managing transaction items. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktiotuote. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/store/transactions/: get: operationId: admin_event_store_transactions_list description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: time_cancelled schema: type: string format: date-time - in: query name: time_paid schema: type: string format: date-time tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedStoreTransactionList' description: '' post: operationId: admin_event_store_transactions_create description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/StoreTransactionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreTransactionRequest' multipart/form-data: schema: $ref: '#/components/schemas/StoreTransactionRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/StoreTransaction' description: '' /api/v2/admin/event/{event_pk}/store/transactions/{id}/: get: operationId: admin_event_store_transactions_retrieve description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktio. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreTransaction' description: '' put: operationId: admin_event_store_transactions_update description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktio. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/StoreTransactionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/StoreTransactionRequest' multipart/form-data: schema: $ref: '#/components/schemas/StoreTransactionRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreTransaction' description: '' patch: operationId: admin_event_store_transactions_partial_update description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktio. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedStoreTransactionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedStoreTransactionRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedStoreTransactionRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/StoreTransaction' description: '' delete: operationId: admin_event_store_transactions_destroy description: Staff viewset for managing store transactions. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this transaktio. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/event/{event_pk}/uploads/files/: get: operationId: admin_event_uploads_files_list description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: user schema: type: integer tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUploadedFileList' description: '' post: operationId: admin_event_uploads_files_create description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadedFileRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UploadedFileRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UploadedFile' description: '' /api/v2/admin/event/{event_pk}/uploads/files/{id}/: get: operationId: admin_event_uploads_files_retrieve description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tiedosto. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadedFile' description: '' put: operationId: admin_event_uploads_files_update description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tiedosto. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadedFileRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UploadedFileRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadedFile' description: '' patch: operationId: admin_event_uploads_files_partial_update description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tiedosto. required: true tags: - admin requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PatchedUploadedFileRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUploadedFileRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadedFile' description: '' delete: operationId: admin_event_uploads_files_destroy description: |- Uploaded files for an event. Staff with admin_upload permissions can manage uploaded files. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tiedosto. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/events/: get: operationId: admin_events_list description: Staff viewset for managing events. parameters: - in: query name: archived schema: type: boolean - in: query name: hidden schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedEventList' description: '' post: operationId: admin_events_create description: Staff viewset for managing events. tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/EventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/EventRequest' multipart/form-data: schema: $ref: '#/components/schemas/EventRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Event' description: '' /api/v2/admin/events/{id}/: get: operationId: admin_events_retrieve description: Staff viewset for managing events. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tapahtuma. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Event' description: '' put: operationId: admin_events_update description: Staff viewset for managing events. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tapahtuma. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/EventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/EventRequest' multipart/form-data: schema: $ref: '#/components/schemas/EventRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Event' description: '' patch: operationId: admin_events_partial_update description: Staff viewset for managing events. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tapahtuma. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedEventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedEventRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedEventRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Event' description: '' delete: operationId: admin_events_destroy description: Staff viewset for managing events. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tapahtuma. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/admin/groups/: get: operationId: admin_groups_list description: Read-only viewset for listing groups. parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedGroupList' description: '' /api/v2/admin/groups/{id}/: get: operationId: admin_groups_retrieve description: Read-only viewset for listing groups. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this group. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group' description: '' /api/v2/admin/users/: get: operationId: admin_users_list description: Staff viewset for managing users. parameters: - in: query name: email schema: type: string - in: query name: is_active schema: type: boolean - in: query name: is_staff schema: type: boolean - in: query name: is_superuser schema: type: boolean - in: query name: is_system schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: username schema: type: string tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserList' description: '' post: operationId: admin_users_create description: Staff viewset for managing users. tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/v2/admin/users/{id}/: get: operationId: admin_users_retrieve description: Staff viewset for managing users. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' put: operationId: admin_users_update description: Staff viewset for managing users. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' patch: operationId: admin_users_partial_update description: Staff viewset for managing users. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - admin requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' delete: operationId: admin_users_destroy description: Staff viewset for managing users. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - admin security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/auth/login/: post: operationId: login description: Authenticate a user with username and password. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/UserLoginRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserLoginRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserLoginRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] - {} responses: '200': description: No response body '400': description: No response body '401': description: No response body /api/v2/auth/logout/: post: operationId: logout description: End the current user session. tags: - auth security: - knoxApiToken: [] - cookieAuth: [] responses: '200': description: No response body /api/v2/auth/social_urls/: get: operationId: get_social_auth_urls description: |- Returns a list of URLs that can be used to begin a social authentication process. Also ensures the CSRF cookie is set, which is needed for the SPA login flow. Without this, the first login attempt in a fresh browser session would fail because no Django template renders {% csrf_token %} to trigger cookie creation. parameters: - in: query name: next schema: type: string tags: - auth security: - {} responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/SocialAuthURL' description: '' /api/v2/event/{event_pk}/user/kompomaatti/entries/: get: operationId: event_user_kompomaatti_entries_list description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: query name: compo schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserCompoEntryList' description: '' post: operationId: event_user_kompomaatti_entries_create description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true tags: - event requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UserCompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserCompoEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserCompoEntry' description: '' /api/v2/event/{event_pk}/user/kompomaatti/entries/{id}/: get: operationId: event_user_kompomaatti_entries_retrieve description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompoEntry' description: '' put: operationId: event_user_kompomaatti_entries_update description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - event requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UserCompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserCompoEntryRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompoEntry' description: '' patch: operationId: event_user_kompomaatti_entries_partial_update description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - event requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserCompoEntryRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserCompoEntryRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompoEntry' description: '' delete: operationId: event_user_kompomaatti_entries_destroy description: |- Manage the current user's own compo entries. Supports ordering by rank and score. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/event/{event_pk}/user/kompomaatti/participations/: get: operationId: event_user_kompomaatti_participations_list description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: query name: competition schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserCompetitionParticipationList' description: '' post: operationId: event_user_kompomaatti_participations_create description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: path name: event_pk schema: type: integer required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipation' description: '' /api/v2/event/{event_pk}/user/kompomaatti/participations/{id}/: get: operationId: event_user_kompomaatti_participations_retrieve description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipation' description: '' put: operationId: event_user_kompomaatti_participations_update description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserCompetitionParticipationRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipation' description: '' patch: operationId: event_user_kompomaatti_participations_partial_update description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserCompetitionParticipationRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserCompetitionParticipationRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserCompetitionParticipationRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserCompetitionParticipation' description: '' delete: operationId: event_user_kompomaatti_participations_destroy description: |- API endpoint for managing user's own competition participations. Users can create, read, update and delete their own participations within the allowed time window (before participation_end). parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/event/{event_pk}/user/kompomaatti/ticket_vote_codes/: get: operationId: event_user_kompomaatti_ticket_vote_codes_list description: |- API endpoint for managing user's own ticket vote codes. Users can associate a ticket key (from their purchase) to their account to gain voting rights. This is a create/read-only endpoint - users cannot update or delete their vote codes. To create a vote code, POST with: - ticket_key: At least 8 characters of the ticket key (from purchase receipt) The ticket_key must: - Match a paid ticket for the specified event - Not already be associated with another user parameters: - in: query name: event schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserTicketVoteCodeList' description: '' post: operationId: event_user_kompomaatti_ticket_vote_codes_create description: |- API endpoint for managing user's own ticket vote codes. Users can associate a ticket key (from their purchase) to their account to gain voting rights. This is a create/read-only endpoint - users cannot update or delete their vote codes. To create a vote code, POST with: - ticket_key: At least 8 characters of the ticket key (from purchase receipt) The ticket_key must: - Match a paid ticket for the specified event - Not already be associated with another user parameters: - in: path name: event_pk schema: type: integer required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserTicketVoteCodeRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserTicketVoteCodeRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserTicketVoteCodeRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserTicketVoteCode' description: '' /api/v2/event/{event_pk}/user/kompomaatti/ticket_vote_codes/{id}/: get: operationId: event_user_kompomaatti_ticket_vote_codes_retrieve description: |- API endpoint for managing user's own ticket vote codes. Users can associate a ticket key (from their purchase) to their account to gain voting rights. This is a create/read-only endpoint - users cannot update or delete their vote codes. To create a vote code, POST with: - ticket_key: At least 8 characters of the ticket key (from purchase receipt) The ticket_key must: - Match a paid ticket for the specified event - Not already be associated with another user parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this lippuäänestusavain. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserTicketVoteCode' description: '' /api/v2/event/{event_pk}/user/kompomaatti/vote_code_requests/: get: operationId: event_user_kompomaatti_vote_code_requests_list description: |- API endpoint for managing user's own vote code requests. Users can create, read, and update their own vote code requests. Delete is not supported (requests can only be rejected by staff). Status field meanings: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) Note: The status field is read-only for users. Only staff can change it. parameters: - in: query name: event schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: status schema: type: integer title: Tila enum: - 0 - 1 - 2 description: |- * `0` - Odottaa hyväksyntää * `1` - Hyväksytty * `2` - Hylätty tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserVoteCodeRequestList' description: '' post: operationId: event_user_kompomaatti_vote_code_requests_create description: |- API endpoint for managing user's own vote code requests. Users can create, read, and update their own vote code requests. Delete is not supported (requests can only be rejected by staff). Status field meanings: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) Note: The status field is read-only for users. Only staff can change it. parameters: - in: path name: event_pk schema: type: integer required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequest' description: '' /api/v2/event/{event_pk}/user/kompomaatti/vote_code_requests/{id}/: get: operationId: event_user_kompomaatti_vote_code_requests_retrieve description: |- API endpoint for managing user's own vote code requests. Users can create, read, and update their own vote code requests. Delete is not supported (requests can only be rejected by staff). Status field meanings: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) Note: The status field is read-only for users. Only staff can change it. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequest' description: '' put: operationId: event_user_kompomaatti_vote_code_requests_update description: |- API endpoint for managing user's own vote code requests. Users can create, read, and update their own vote code requests. Delete is not supported (requests can only be rejected by staff). Status field meanings: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) Note: The status field is read-only for users. Only staff can change it. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserVoteCodeRequestRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequest' description: '' patch: operationId: event_user_kompomaatti_vote_code_requests_partial_update description: |- API endpoint for managing user's own vote code requests. Users can create, read, and update their own vote code requests. Delete is not supported (requests can only be rejected by staff). Status field meanings: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) Note: The status field is read-only for users. Only staff can change it. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this äänestyskoodipyyntö. required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserVoteCodeRequestRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserVoteCodeRequestRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserVoteCodeRequestRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserVoteCodeRequest' description: '' /api/v2/event/{event_pk}/user/kompomaatti/votes/: get: operationId: event_user_kompomaatti_votes_list description: |- API endpoint for managing user's votes. Users submit a ranked list of entries to vote for a compo. The order of entries in the list determines the ranking (first = highest rank). To vote, POST with: - compo: The compo ID - entries: List of entry IDs in order of preference Re-submitting votes for the same compo replaces previous votes. Users can only vote if they have voting rights (TicketVoteCode or approved VoteCodeRequest). Votes can only be submitted while the compo voting is open. Note: Update and delete are not supported. To change votes, simply POST again. parameters: - in: query name: compo schema: type: integer - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserVoteGroupList' description: '' post: operationId: event_user_kompomaatti_votes_create description: |- API endpoint for managing user's votes. Users submit a ranked list of entries to vote for a compo. The order of entries in the list determines the ranking (first = highest rank). To vote, POST with: - compo: The compo ID - entries: List of entry IDs in order of preference Re-submitting votes for the same compo replaces previous votes. Users can only vote if they have voting rights (TicketVoteCode or approved VoteCodeRequest). Votes can only be submitted while the compo voting is open. Note: Update and delete are not supported. To change votes, simply POST again. parameters: - in: path name: event_pk schema: type: integer required: true tags: - event requestBody: content: application/json: schema: $ref: '#/components/schemas/UserVoteGroupRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserVoteGroupRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserVoteGroupRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserVoteGroup' description: '' /api/v2/event/{event_pk}/user/kompomaatti/votes/{id}/: get: operationId: event_user_kompomaatti_votes_retrieve description: |- API endpoint for managing user's votes. Users submit a ranked list of entries to vote for a compo. The order of entries in the list determines the ranking (first = highest rank). To vote, POST with: - compo: The compo ID - entries: List of entry IDs in order of preference Re-submitting votes for the same compo replaces previous votes. Users can only vote if they have voting rights (TicketVoteCode or approved VoteCodeRequest). Votes can only be submitted while the compo voting is open. Note: Update and delete are not supported. To change votes, simply POST again. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ääniryhmä. required: true tags: - event security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserVoteGroup' description: '' /api/v2/notifications/subscriptions/: get: operationId: notifications_subscriptions_list description: |- Viewset for managing the current user's push notification subscriptions. Supports create (subscribe), destroy (unsubscribe), and list (view subscriptions). Subscriptions are scoped to the current user. Create performs upsert by endpoint. tags: - notifications security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/PushSubscription' description: '' post: operationId: notifications_subscriptions_create description: |- Create or update a push subscription (upsert by endpoint). A push endpoint is a browser-level resource — the same physical push channel regardless of which user subscribed. The lookup uses endpoint alone (matching the model's unique constraint) so that if a different user subscribes from the same browser, the subscription is reassigned to them rather than creating a duplicate that would cause the browser to show the same notification twice. tags: - notifications requestBody: content: application/json: schema: $ref: '#/components/schemas/PushSubscriptionRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PushSubscriptionRequest' multipart/form-data: schema: $ref: '#/components/schemas/PushSubscriptionRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/PushSubscription' description: '' /api/v2/notifications/subscriptions/{id}/: delete: operationId: notifications_subscriptions_destroy description: |- Viewset for managing the current user's push notification subscriptions. Supports create (subscribe), destroy (unsubscribe), and list (view subscriptions). Subscriptions are scoped to the current user. Create performs upsert by endpoint. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this push subscription. required: true tags: - notifications security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/public/blog_entries/: get: operationId: public_blog_entries_list description: Public read-only endpoint for blog entries. Only public entries are shown. parameters: - in: query name: event schema: type: integer - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicBlogEntryList' description: '' /api/v2/public/blog_entries/{id}/: get: operationId: public_blog_entries_retrieve description: Public read-only endpoint for blog entries. Only public entries are shown. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this entry. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicBlogEntry' description: '' /api/v2/public/event/{event_pk}/archive/video_categories/: get: operationId: public_event_archive_video_categories_list description: |- Public read-only endpoint for archive video categories. Only categories from archived events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicOtherVideoCategoryList' description: '' /api/v2/public/event/{event_pk}/archive/video_categories/{id}/: get: operationId: public_event_archive_video_categories_retrieve description: |- Public read-only endpoint for archive video categories. Only categories from archived events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this videokategoria. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicOtherVideoCategory' description: '' /api/v2/public/event/{event_pk}/archive/videos/: get: operationId: public_event_archive_videos_list description: Public read-only endpoint for archive videos. Only videos from archived events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicOtherVideoList' description: '' /api/v2/public/event/{event_pk}/archive/videos/{id}/: get: operationId: public_event_archive_videos_retrieve description: Public read-only endpoint for archive videos. Only videos from archived events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this muu video. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicOtherVideo' description: '' /api/v2/public/event/{event_pk}/kompomaatti/competition_participations/: get: operationId: public_event_kompomaatti_competition_participations_list description: |- Public read-only endpoint for competition participations. Only participations from active competitions that have started are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicCompetitionParticipationList' description: '' /api/v2/public/event/{event_pk}/kompomaatti/competition_participations/{id}/: get: operationId: public_event_kompomaatti_competition_participations_retrieve description: |- Public read-only endpoint for competition participations. Only participations from active competitions that have started are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ilmoittautuminen. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicCompetitionParticipation' description: '' /api/v2/public/event/{event_pk}/kompomaatti/competitions/: get: operationId: public_event_kompomaatti_competitions_list description: Public read-only endpoint for competitions. Only active competitions are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicCompetitionList' description: '' /api/v2/public/event/{event_pk}/kompomaatti/competitions/{id}/: get: operationId: public_event_kompomaatti_competitions_retrieve description: Public read-only endpoint for competitions. Only active competitions are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kilpailu. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicCompetition' description: '' /api/v2/public/event/{event_pk}/kompomaatti/compos/: get: operationId: public_event_kompomaatti_compos_list description: Public read-only endpoint for compos. Only active compos are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicCompoList' description: '' /api/v2/public/event/{event_pk}/kompomaatti/compos/{id}/: get: operationId: public_event_kompomaatti_compos_retrieve description: Public read-only endpoint for compos. Only active compos are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this kompo. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicCompo' description: '' /api/v2/public/event/{event_pk}/kompomaatti/entries/: get: operationId: public_event_kompomaatti_entries_list description: |- Public read-only endpoint for compo entries. Only entries from active compos where voting has started (or the event is archived) are shown. Supports ordering by rank and score when results are visible. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicCompoEntryList' description: '' /api/v2/public/event/{event_pk}/kompomaatti/entries/{id}/: get: operationId: public_event_kompomaatti_entries_retrieve description: |- Public read-only endpoint for compo entries. Only entries from active compos where voting has started (or the event is archived) are shown. Supports ordering by rank and score when results are visible. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this tuotos. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicCompoEntry' description: '' /api/v2/public/event/{event_pk}/program/events/: get: operationId: public_event_program_events_list description: Public read-only endpoint for program events. Only active events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicProgramEventList' description: '' /api/v2/public/event/{event_pk}/program/events/{id}/: get: operationId: public_event_program_events_retrieve description: Public read-only endpoint for program events. Only active events are shown. parameters: - in: path name: event_pk schema: type: integer required: true - in: path name: id schema: type: integer description: A unique integer value identifying this ohjelmatapahtuma. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicProgramEvent' description: '' /api/v2/public/events/: get: operationId: public_events_list description: Public read-only endpoint for events. parameters: - in: query name: archived schema: type: boolean - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: search required: false in: query description: A search term. schema: type: string tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicEventList' description: '' /api/v2/public/events/{id}/: get: operationId: public_events_retrieve description: Public read-only endpoint for events. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tapahtuma. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicEvent' description: '' /api/v2/public/notifications/vapid-key/: get: operationId: public_notifications_vapid_key_retrieve description: Returns the VAPID public key for push subscriptions. tags: - public responses: '200': content: application/json: schema: $ref: '#/components/schemas/VapidPublicKey' description: '' /api/v2/public/store/checkout/: post: operationId: public_store_checkout_create description: |- Public ViewSet for creating store transactions (checkout). This endpoint allows anonymous users to create store transactions. No authentication is required. POST: Create a new transaction and return the payment URL. tags: - public requestBody: content: application/json: schema: $ref: '#/components/schemas/PublicStoreTransactionCheckoutRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PublicStoreTransactionCheckoutRequest' multipart/form-data: schema: $ref: '#/components/schemas/PublicStoreTransactionCheckoutRequest' required: true security: - {} responses: '201': content: application/json: schema: $ref: '#/components/schemas/PublicStoreTransactionCheckout' description: '' /api/v2/public/store/items/: get: operationId: public_store_items_list description: |- Public read-only endpoint for store items. Returns only available store items. Supports secret_key query parameter to reveal hidden items. parameters: - in: query name: event schema: type: integer - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPublicStoreItemList' description: '' /api/v2/public/store/items/{id}/: get: operationId: public_store_items_retrieve description: |- Public read-only endpoint for store items. Returns only available store items. Supports secret_key query parameter to reveal hidden items. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this tuote. required: true tags: - public security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicStoreItem' description: '' /api/v2/tokens/: get: operationId: tokens_list description: |- Manage API authentication tokens for the current user. Requires knox.view_authtoken permission to list tokens. Requires knox.delete_authtoken permission to delete tokens. Requires knox.add_authtoken permission to create tokens. Users can only see and delete their own tokens. parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - tokens security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAuthTokenList' description: '' /api/v2/tokens/{digest}/: delete: operationId: tokens_destroy description: |- Manage API authentication tokens for the current user. Requires knox.view_authtoken permission to list tokens. Requires knox.delete_authtoken permission to delete tokens. Requires knox.add_authtoken permission to create tokens. Users can only see and delete their own tokens. parameters: - in: path name: digest schema: type: string description: A unique value identifying this auth token. required: true tags: - tokens security: - knoxApiToken: [] - cookieAuth: [] responses: '204': description: No response body /api/v2/tokens/create/: post: operationId: user_tokens_create_token description: Create a new API token. The plain token is returned only once. tags: - tokens requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthTokenCreateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AuthTokenCreateRequest' multipart/form-data: schema: $ref: '#/components/schemas/AuthTokenCreateRequest' required: true security: - knoxApiToken: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/AuthTokenCreateResponse' description: '' /api/v2/user_info/: get: operationId: user_info_retrieve description: Retrieve and update the current authenticated user's profile and permissions. tags: - user_info security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInfo' description: '' patch: operationId: user_info_partial_update description: Retrieve and update the current authenticated user's profile and permissions. tags: - user_info requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserInfoRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserInfoRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserInfoRequest' security: - knoxApiToken: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserInfo' description: '' components: schemas: ActionEnum: enum: - 0 - 1 - 2 - 3 type: integer description: |- * `0` - create * `1` - update * `2` - delete * `3` - access Actor: type: object description: Serializer for the actor (user) who made the change. properties: id: type: integer readOnly: true username: type: string description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 required: - id - username AlternateEntryFile: type: object description: Staff serializer for alternate entry files (transcoded media). properties: format: type: string readOnly: true url: type: string readOnly: true required: - format - url ArchiverStatus: type: object description: Serializer for archiver status response. properties: is_archived: type: boolean description: Whether the event is visible in the public archive has_non_archived_items: type: boolean description: Whether there are entries/participations not owned by archive user ongoing_activity: type: boolean description: Whether the event is still ongoing votes_unoptimized: type: boolean description: Whether voting results need to be pre-calculated (archive_score/archive_rank not set) old_votes_found: type: boolean description: Whether there are old vote records to clean up required: - has_non_archived_items - is_archived - old_votes_found - ongoing_activity - votes_unoptimized AuthToken: type: object description: Read-only serializer for listing tokens. properties: pk: type: string readOnly: true title: Digest token_key: type: string readOnly: true created: type: string format: date-time readOnly: true expiry: type: string format: date-time readOnly: true nullable: true user: type: integer readOnly: true required: - created - expiry - pk - token_key - user AuthTokenCreateRequest: type: object description: Input serializer for token creation. properties: expiry: type: string format: date-time required: - expiry AuthTokenCreateResponse: type: object description: Response with plain token (shown only once). properties: pk: type: string token_key: type: string token: type: string created: type: string format: date-time expiry: type: string format: date-time required: - created - expiry - pk - token - token_key BlankEnum: enum: - '' BlogEntry: type: object description: |- Serializer for staff - includes all fields. The user field is read-only and set automatically to the current user on create. properties: id: type: integer readOnly: true user: type: integer readOnly: true nullable: true title: Käyttäjä date: type: string format: date-time readOnly: true title: Aika title: type: string title: Otsikko description: Lyhyt otsikko entrylle. maxLength: 128 text: type: string title: Teksti public: type: boolean title: Julkinen description: Mikäli entry on julkinen, tulee se näkyviin sekä tapahtuman sivuille että RSS-syötteeseen. event: type: integer title: Tapahtuma created_by: type: string readOnly: true required: - created_by - date - event - id - text - title - user BlogEntryRequest: type: object description: |- Serializer for staff - includes all fields. The user field is read-only and set automatically to the current user on create. properties: title: type: string minLength: 1 title: Otsikko description: Lyhyt otsikko entrylle. maxLength: 128 text: type: string minLength: 1 title: Teksti public: type: boolean title: Julkinen description: Mikäli entry on julkinen, tulee se näkyviin sekä tapahtuman sivuille että RSS-syötteeseen. event: type: integer title: Tapahtuma required: - event - text - title Competition: type: object description: Staff serializer for competitions. properties: id: type: integer readOnly: true event: type: integer readOnly: true title: Tapahtuma description: Tapahtuma johon kilpailu kuuluu name: type: string title: Nimi description: Kilpailun nimi (max 32 merkkiä). maxLength: 32 description: type: string title: Kuvaus participation_end: type: string format: date-time title: Deadline osallistumiselle. description: Tämän jälkeen kilpailuun ei voi enää osallistua. start: type: string format: date-time title: Kilpailun alku description: Kilpailun aloitusaika. end: type: string format: date-time nullable: true title: Kilpailun loppu description: Kilpailun päättymisaika. score_type: type: string title: Pisteiden tyyppi description: Pisteiden tyyppi (km, m, sek, ...). Maksimipituus 8 merkkiä. maxLength: 8 score_sort: allOf: - $ref: '#/components/schemas/ScoreSortEnum' title: Pisteiden järjestely description: |- Onko suurimman vai pienimmän tuloksen saavuttanut voittaja? * `0` - Korkein tulos ensin * `1` - Matalin tulos ensin minimum: -9223372036854775808 maximum: 9223372036854775807 show_results: type: boolean title: Näytä tulokset description: Näytä kilpailun tulokset. active: type: boolean title: Aktiivinen description: Onko kilpailu aktiivinen, eli näytetäänkö se kompomaatissa kaikille. hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilotetaanko kilpailun tulokset arkistosta ? Tämä ylikirjoittaa eventin asetuksen. required: - description - event - id - name - participation_end - score_type - start CompetitionParticipation: type: object description: |- Staff serializer for competition participations. Requires queryset to have with_rank() annotation applied. properties: id: type: integer readOnly: true competition: type: integer title: Kilpailu description: Kilpailu johon osallistuttu user: type: integer title: Käyttäjä description: Osallistuja participant_name: type: string title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 score: type: number format: double title: Pisteet description: Kilpailijan saavuttamat pisteet disqualified: type: boolean title: Diskattu description: Suoritus on diskattu sääntörikon tai teknisten virheiden takia. disqualified_reason: type: string title: Diskauksen syy computed_rank: type: integer readOnly: true required: - competition - computed_rank - id - user CompetitionParticipationRequest: type: object description: |- Staff serializer for competition participations. Requires queryset to have with_rank() annotation applied. properties: competition: type: integer title: Kilpailu description: Kilpailu johon osallistuttu user: type: integer title: Käyttäjä description: Osallistuja participant_name: type: string minLength: 1 title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 score: type: number format: double title: Pisteet description: Kilpailijan saavuttamat pisteet disqualified: type: boolean title: Diskattu description: Suoritus on diskattu sääntörikon tai teknisten virheiden takia. disqualified_reason: type: string title: Diskauksen syy required: - competition - user CompetitionRequest: type: object description: Staff serializer for competitions. properties: name: type: string minLength: 1 title: Nimi description: Kilpailun nimi (max 32 merkkiä). maxLength: 32 description: type: string minLength: 1 title: Kuvaus participation_end: type: string format: date-time title: Deadline osallistumiselle. description: Tämän jälkeen kilpailuun ei voi enää osallistua. start: type: string format: date-time title: Kilpailun alku description: Kilpailun aloitusaika. end: type: string format: date-time nullable: true title: Kilpailun loppu description: Kilpailun päättymisaika. score_type: type: string minLength: 1 title: Pisteiden tyyppi description: Pisteiden tyyppi (km, m, sek, ...). Maksimipituus 8 merkkiä. maxLength: 8 score_sort: allOf: - $ref: '#/components/schemas/ScoreSortEnum' title: Pisteiden järjestely description: |- Onko suurimman vai pienimmän tuloksen saavuttanut voittaja? * `0` - Korkein tulos ensin * `1` - Matalin tulos ensin minimum: -9223372036854775808 maximum: 9223372036854775807 show_results: type: boolean title: Näytä tulokset description: Näytä kilpailun tulokset. active: type: boolean title: Aktiivinen description: Onko kilpailu aktiivinen, eli näytetäänkö se kompomaatissa kaikille. hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilotetaanko kilpailun tulokset arkistosta ? Tämä ylikirjoittaa eventin asetuksen. required: - description - name - participation_end - score_type - start Compo: type: object description: Staff serializer for compos. properties: id: type: integer readOnly: true event: type: integer readOnly: true title: Tapahtuma description: Tapahtuma johon kompo kuuluu name: type: string title: Nimi description: Kompon nimi (max 32 merkkiä). maxLength: 32 description: type: string title: Kuvaus adding_end: type: string format: date-time title: Deadline entryjen lisäyksille description: Tämän jälkeen kompoon ei voi enää lähettää uusia entryjä. Muokkaus toimii vielä. editing_end: type: string format: date-time title: Deadline entryjen muokkauksille description: Tämän jälkeen entryjen tiedostoja tai muita tietoja ei voi enää muokata. compo_start: type: string format: date-time title: Kompon aloitusaika description: Kompon alkamisaika tapahtumassa (tapahtumakalenteria varten). voting_start: type: string format: date-time title: Äänestyksen alkamisaika description: Alkamisaika entryjen äänestykselle. voting_end: type: string format: date-time title: Äänestyksen päättymisaika description: Päättymisaika entryjen äänestykselle. entry_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja entryille description: Kokoraja entrytiedostoille (tavua). source_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja sorsille description: Kokoraja sorsatiedostoille (tavua). formats: type: string title: Sallitut tiedostopäätteet description: Entrypaketille sallitut tiedostopäätteet pystyviivalla eroteltuna, esim. "png|jpg". maxLength: 128 source_formats: type: string title: Sallitut lähdekoodipaketin päätteet description: Entryn lähdekoodipaketille sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 image_formats: type: string title: Sallitut kuvatiedoston päätteet description: Entryn pikkukuvalle sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 max_source_size: type: integer readOnly: true max_entry_size: type: integer readOnly: true source_format_list: type: array items: type: string readOnly: true entry_format_list: type: array items: type: string readOnly: true image_format_list: type: array items: type: string readOnly: true active: type: boolean title: Aktiivinen description: Onko kompo aktiivinen, eli näytetäänkö se kompomaatissa kaikille. show_voting_results: type: boolean title: Näytä tulokset description: Näytä äänestustulokset. entry_view_type: allOf: - $ref: '#/components/schemas/EntryViewTypeEnum' title: Entryesittely description: |- Ilmoittaa millainen näkymä näytetään entryn tiedoissa. Latauslinkki näytetään aina. * `0` - Ei mitään * `1` - Youtube ensin, sitten kuva * `2` - Vain kuva * `3` - (deprecated) minimum: -9223372036854775808 maximum: 9223372036854775807 hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilottaa kompon tulokset arkistosta. Tämä asetus ohittaa tapahtuman tiedoissa valitun asetuksen. hide_from_frontpage: type: boolean title: Piilotus etusivulta description: Piilottaa kompon nimen ja kuvauksen tapahtuman etusivulta. Käytä esim. jos kompon kuvaus on vielä suunnitteilla. is_votable: type: boolean title: Äänestettävissä description: Teosta voi ylipäätään äänestää (Pois esim. robocodelle). thumbnail_pref: allOf: - $ref: '#/components/schemas/ThumbnailPrefEnum' title: Pikkukuvan asetukset description: |- Pikkukuvan luonti ja asettaminen. * `0` - Vaadi erillinen pikkukuva. * `1` - Käytä pikkukuvana teoksen tiedostoa (Toimii vain png/jpg-tiedostoille). * `2` - Salli pikkukuva (ei vaadittu). * `3` - Älä salli pikkukuvaa. minimum: -9223372036854775808 maximum: 9223372036854775807 required: - adding_end - compo_start - description - editing_end - entry_format_list - event - id - image_format_list - max_entry_size - max_source_size - name - source_format_list - voting_end - voting_start CompoEntry: type: object description: Staff serializer for compo entries. properties: id: type: integer readOnly: true user: type: integer title: Käyttäjä description: Käyttäjä jolle entry kuuluu compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile: type: string format: uri title: Tiedosto description: Tuotospaketti. sourcefile: type: string format: uri nullable: true title: Lähdekoodi description: Lähdekoodipaketti. imagefile_original: type: string format: uri nullable: true title: Kuva description: Edustava kuva teokselle. Ei pakollinen, mutta suositeltava. entryfile_url: type: string nullable: true readOnly: true sourcefile_url: type: string nullable: true readOnly: true imagefile_original_url: type: string nullable: true readOnly: true imagefile_thumbnail_url: type: string nullable: true readOnly: true imagefile_medium_url: type: string nullable: true readOnly: true youtube_url: type: string nullable: true disqualified: type: boolean title: Diskattu description: Entry on diskattu sääntörikon tai teknisten ongelmien takia. DISKAUS ON TEHTÄVÄ ENNEN ÄÄNESTYKSEN ALKUA! disqualified_reason: type: string title: Syy diskaukseen description: Diskauksen syy. archive_score: type: number format: double nullable: true title: Pisteet description: Arkistoidun entryn kompossa saamat pisteet. Mikäli tätä ei määritetä, lasketaan pisteet suoraan äänestystuloksista. archive_rank: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 nullable: true title: Sijoitus description: Arkistoidun entryn kompossa saama sijoitus. Tämä voidaan laskea myös pistemääristä automaattisesti. computed_score: type: number format: double description: Return the entry's score. Requires queryset to have with_rank() annotation applied. readOnly: true computed_rank: type: integer description: Return the entry's rank. Requires queryset to have with_rank() annotation applied. readOnly: true alternate_files: type: array items: $ref: '#/components/schemas/AlternateEntryFile' readOnly: true required: - alternate_files - compo - computed_rank - computed_score - creator - description - entryfile - entryfile_url - id - imagefile_medium_url - imagefile_original_url - imagefile_thumbnail_url - name - sourcefile_url - user CompoEntryRequest: type: object description: Staff serializer for compo entries. properties: user: type: integer title: Käyttäjä description: Käyttäjä jolle entry kuuluu compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string minLength: 1 title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string minLength: 1 title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile: type: string format: binary title: Tiedosto description: Tuotospaketti. sourcefile: type: string format: binary nullable: true title: Lähdekoodi description: Lähdekoodipaketti. imagefile_original: type: string format: binary nullable: true title: Kuva description: Edustava kuva teokselle. Ei pakollinen, mutta suositeltava. youtube_url: type: string nullable: true disqualified: type: boolean title: Diskattu description: Entry on diskattu sääntörikon tai teknisten ongelmien takia. DISKAUS ON TEHTÄVÄ ENNEN ÄÄNESTYKSEN ALKUA! disqualified_reason: type: string title: Syy diskaukseen description: Diskauksen syy. archive_score: type: number format: double nullable: true title: Pisteet description: Arkistoidun entryn kompossa saamat pisteet. Mikäli tätä ei määritetä, lasketaan pisteet suoraan äänestystuloksista. archive_rank: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 nullable: true title: Sijoitus description: Arkistoidun entryn kompossa saama sijoitus. Tämä voidaan laskea myös pistemääristä automaattisesti. required: - compo - creator - description - entryfile - name - user CompoRequest: type: object description: Staff serializer for compos. properties: name: type: string minLength: 1 title: Nimi description: Kompon nimi (max 32 merkkiä). maxLength: 32 description: type: string minLength: 1 title: Kuvaus adding_end: type: string format: date-time title: Deadline entryjen lisäyksille description: Tämän jälkeen kompoon ei voi enää lähettää uusia entryjä. Muokkaus toimii vielä. editing_end: type: string format: date-time title: Deadline entryjen muokkauksille description: Tämän jälkeen entryjen tiedostoja tai muita tietoja ei voi enää muokata. compo_start: type: string format: date-time title: Kompon aloitusaika description: Kompon alkamisaika tapahtumassa (tapahtumakalenteria varten). voting_start: type: string format: date-time title: Äänestyksen alkamisaika description: Alkamisaika entryjen äänestykselle. voting_end: type: string format: date-time title: Äänestyksen päättymisaika description: Päättymisaika entryjen äänestykselle. entry_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja entryille description: Kokoraja entrytiedostoille (tavua). source_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja sorsille description: Kokoraja sorsatiedostoille (tavua). formats: type: string minLength: 1 title: Sallitut tiedostopäätteet description: Entrypaketille sallitut tiedostopäätteet pystyviivalla eroteltuna, esim. "png|jpg". maxLength: 128 source_formats: type: string minLength: 1 title: Sallitut lähdekoodipaketin päätteet description: Entryn lähdekoodipaketille sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 image_formats: type: string minLength: 1 title: Sallitut kuvatiedoston päätteet description: Entryn pikkukuvalle sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 active: type: boolean title: Aktiivinen description: Onko kompo aktiivinen, eli näytetäänkö se kompomaatissa kaikille. show_voting_results: type: boolean title: Näytä tulokset description: Näytä äänestustulokset. entry_view_type: allOf: - $ref: '#/components/schemas/EntryViewTypeEnum' title: Entryesittely description: |- Ilmoittaa millainen näkymä näytetään entryn tiedoissa. Latauslinkki näytetään aina. * `0` - Ei mitään * `1` - Youtube ensin, sitten kuva * `2` - Vain kuva * `3` - (deprecated) minimum: -9223372036854775808 maximum: 9223372036854775807 hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilottaa kompon tulokset arkistosta. Tämä asetus ohittaa tapahtuman tiedoissa valitun asetuksen. hide_from_frontpage: type: boolean title: Piilotus etusivulta description: Piilottaa kompon nimen ja kuvauksen tapahtuman etusivulta. Käytä esim. jos kompon kuvaus on vielä suunnitteilla. is_votable: type: boolean title: Äänestettävissä description: Teosta voi ylipäätään äänestää (Pois esim. robocodelle). thumbnail_pref: allOf: - $ref: '#/components/schemas/ThumbnailPrefEnum' title: Pikkukuvan asetukset description: |- Pikkukuvan luonti ja asettaminen. * `0` - Vaadi erillinen pikkukuva. * `1` - Käytä pikkukuvana teoksen tiedostoa (Toimii vain png/jpg-tiedostoille). * `2` - Salli pikkukuva (ei vaadittu). * `3` - Älä salli pikkukuvaa. minimum: -9223372036854775808 maximum: 9223372036854775807 required: - adding_end - compo_start - description - editing_end - name - voting_end - voting_start ContentType: type: object description: Serializer for content type information. properties: id: type: integer readOnly: true app_label: type: string maxLength: 100 model: type: string title: Python model class name maxLength: 100 required: - app_label - id - model CountryEnum: enum: - AF - AX - AL - DZ - AS - AD - AO - AI - AQ - AG - AR - AM - AW - AU - AT - AZ - BS - BH - BD - BB - BY - BE - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - BN - BG - BF - BI - CV - KH - CM - CA - KY - CF - TD - CL - CN - CX - CC - CO - KM - CG - CK - CR - CI - HR - CU - CW - CY - CZ - CD - DK - DJ - DM - DO - EC - EG - SV - GQ - ER - EE - SZ - ET - FK - FO - FJ - FI - FR - GF - PF - TF - GA - GM - GE - DE - GH - GI - GR - GL - GD - GP - GU - GT - GG - GN - GW - GY - HT - HM - HN - HK - HU - IS - IN - ID - IR - IQ - IE - IM - IL - IT - JM - JP - JE - JO - KZ - KE - KI - KW - KG - LA - LV - LB - LS - LR - LY - LI - LT - LU - MO - MG - MW - MY - MV - ML - MT - MH - MQ - MR - MU - YT - MX - FM - MD - MC - MN - ME - MS - MA - MZ - MM - NA - NR - NP - NL - NC - NZ - NI - NE - NG - NU - NF - KP - MK - MP - 'NO' - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PL - PT - PR - QA - RE - RO - RU - RW - BL - SH - KN - LC - MF - PM - VC - WS - SM - ST - SA - SN - RS - SC - SL - SG - SX - SK - SI - SB - SO - ZA - GS - KR - SS - ES - LK - SD - SR - SJ - SE - CH - SY - TW - TJ - TZ - TH - TL - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - GB - UM - US - UY - UZ - VU - VA - VE - VN - VG - VI - WF - EH - YE - ZM - ZW type: string description: |- * `AF` - Afghanistan * `AX` - Åland Islands * `AL` - Albania * `DZ` - Algeria * `AS` - American Samoa * `AD` - Andorra * `AO` - Angola * `AI` - Anguilla * `AQ` - Antarctica * `AG` - Antigua and Barbuda * `AR` - Argentina * `AM` - Armenia * `AW` - Aruba * `AU` - Australia * `AT` - Austria * `AZ` - Azerbaijan * `BS` - Bahamas (The) * `BH` - Bahrain * `BD` - Bangladesh * `BB` - Barbados * `BY` - Belarus * `BE` - Belgium * `BZ` - Belize * `BJ` - Benin * `BM` - Bermuda * `BT` - Bhutan * `BO` - Bolivia * `BQ` - Bonaire, Sint Eustatius and Saba * `BA` - Bosnia and Herzegovina * `BW` - Botswana * `BV` - Bouvet Island * `BR` - Brazil * `IO` - British Indian Ocean Territory * `BN` - Brunei * `BG` - Bulgaria * `BF` - Burkina Faso * `BI` - Burundi * `CV` - Cabo Verde * `KH` - Cambodia * `CM` - Cameroon * `CA` - Canada * `KY` - Cayman Islands * `CF` - Central African Republic * `TD` - Chad * `CL` - Chile * `CN` - China * `CX` - Christmas Island * `CC` - Cocos (Keeling) Islands * `CO` - Colombia * `KM` - Comoros * `CG` - Congo * `CK` - Cook Islands * `CR` - Costa Rica * `CI` - Côte d'Ivoire * `HR` - Croatia * `CU` - Cuba * `CW` - Curaçao * `CY` - Cyprus * `CZ` - Czechia * `CD` - Democratic Republic of the Congo * `DK` - Denmark * `DJ` - Djibouti * `DM` - Dominica * `DO` - Dominican Republic * `EC` - Ecuador * `EG` - Egypt * `SV` - El Salvador * `GQ` - Equatorial Guinea * `ER` - Eritrea * `EE` - Estonia * `SZ` - Eswatini * `ET` - Ethiopia * `FK` - Falkland Islands (Malvinas) * `FO` - Faroe Islands * `FJ` - Fiji * `FI` - Finland * `FR` - France * `GF` - French Guiana * `PF` - French Polynesia * `TF` - French Southern Territories * `GA` - Gabon * `GM` - Gambia * `GE` - Georgia * `DE` - Germany * `GH` - Ghana * `GI` - Gibraltar * `GR` - Greece * `GL` - Greenland * `GD` - Grenada * `GP` - Guadeloupe * `GU` - Guam * `GT` - Guatemala * `GG` - Guernsey * `GN` - Guinea * `GW` - Guinea-Bissau * `GY` - Guyana * `HT` - Haiti * `HM` - Heard Island and McDonald Islands * `HN` - Honduras * `HK` - Hong Kong * `HU` - Hungary * `IS` - Iceland * `IN` - India * `ID` - Indonesia * `IR` - Iran * `IQ` - Iraq * `IE` - Ireland * `IM` - Isle of Man * `IL` - Israel * `IT` - Italy * `JM` - Jamaica * `JP` - Japan * `JE` - Jersey * `JO` - Jordan * `KZ` - Kazakhstan * `KE` - Kenya * `KI` - Kiribati * `KW` - Kuwait * `KG` - Kyrgyzstan * `LA` - Laos * `LV` - Latvia * `LB` - Lebanon * `LS` - Lesotho * `LR` - Liberia * `LY` - Libya * `LI` - Liechtenstein * `LT` - Lithuania * `LU` - Luxembourg * `MO` - Macao * `MG` - Madagascar * `MW` - Malawi * `MY` - Malaysia * `MV` - Maldives * `ML` - Mali * `MT` - Malta * `MH` - Marshall Islands * `MQ` - Martinique * `MR` - Mauritania * `MU` - Mauritius * `YT` - Mayotte * `MX` - Mexico * `FM` - Micronesia * `MD` - Moldova * `MC` - Monaco * `MN` - Mongolia * `ME` - Montenegro * `MS` - Montserrat * `MA` - Morocco * `MZ` - Mozambique * `MM` - Myanmar * `NA` - Namibia * `NR` - Nauru * `NP` - Nepal * `NL` - Netherlands * `NC` - New Caledonia * `NZ` - New Zealand * `NI` - Nicaragua * `NE` - Niger * `NG` - Nigeria * `NU` - Niue * `NF` - Norfolk Island * `KP` - North Korea * `MK` - North Macedonia * `MP` - Northern Mariana Islands * `NO` - Norway * `OM` - Oman * `PK` - Pakistan * `PW` - Palau * `PS` - Palestine * `PA` - Panama * `PG` - Papua New Guinea * `PY` - Paraguay * `PE` - Peru * `PH` - Philippines * `PN` - Pitcairn * `PL` - Poland * `PT` - Portugal * `PR` - Puerto Rico * `QA` - Qatar * `RE` - Réunion * `RO` - Romania * `RU` - Russia * `RW` - Rwanda * `BL` - Saint Barthélemy * `SH` - Saint Helena * `KN` - Saint Kitts and Nevis * `LC` - Saint Lucia * `MF` - Saint Martin (French part) * `PM` - Saint Pierre and Miquelon * `VC` - Saint Vincent and the Grenadines * `WS` - Samoa * `SM` - San Marino * `ST` - Sao Tome and Principe * `SA` - Saudi Arabia * `SN` - Senegal * `RS` - Serbia * `SC` - Seychelles * `SL` - Sierra Leone * `SG` - Singapore * `SX` - Sint Maarten (Dutch part) * `SK` - Slovakia * `SI` - Slovenia * `SB` - Solomon Islands * `SO` - Somalia * `ZA` - South Africa * `GS` - South Georgia * `KR` - South Korea * `SS` - South Sudan * `ES` - Spain * `LK` - Sri Lanka * `SD` - Sudan * `SR` - Suriname * `SJ` - Svalbard and Jan Mayen * `SE` - Sweden * `CH` - Switzerland * `SY` - Syria * `TW` - Taiwan * `TJ` - Tajikistan * `TZ` - Tanzania * `TH` - Thailand * `TL` - Timor-Leste * `TG` - Togo * `TK` - Tokelau * `TO` - Tonga * `TT` - Trinidad and Tobago * `TN` - Tunisia * `TR` - Türkiye * `TM` - Turkmenistan * `TC` - Turks and Caicos Islands * `TV` - Tuvalu * `UG` - Uganda * `UA` - Ukraine * `AE` - United Arab Emirates * `GB` - United Kingdom * `UM` - United States Minor Outlying Islands * `US` - United States of America * `UY` - Uruguay * `UZ` - Uzbekistan * `VU` - Vanuatu * `VA` - Vatican City * `VE` - Venezuela * `VN` - Vietnam * `VG` - Virgin Islands (British) * `VI` - Virgin Islands (U.S.) * `WF` - Wallis and Futuna * `EH` - Western Sahara * `YE` - Yemen * `ZM` - Zambia * `ZW` - Zimbabwe EntryViewTypeEnum: enum: - 0 - 1 - 2 - 3 type: integer description: |- * `0` - Ei mitään * `1` - Youtube ensin, sitten kuva * `2` - Vain kuva * `3` - (deprecated) Event: type: object description: Staff serializer for events. properties: id: type: integer readOnly: true name: type: string title: Nimi description: Tapahtuman nimi maxLength: 64 tag: type: string nullable: true title: Lyhyt esitys description: Lyhyt nimi, eg. vuosi maxLength: 8 date: type: string format: date title: Päivämäärä description: Tapahtuman päivämäärä (alku) archived: type: boolean title: Arkistoitu description: Saa näyttää arkistossa hidden: type: boolean title: Piilotettu description: Piilottaa tapahtuman julkisesta ja käyttäjä-API:sta mainurl: type: string format: uri title: Tapahtuman pääsivu description: URL Tapahtuman pääsivustolle maxLength: 200 required: - date - id - name EventRequest: type: object description: Staff serializer for events. properties: name: type: string minLength: 1 title: Nimi description: Tapahtuman nimi maxLength: 64 tag: type: string nullable: true minLength: 1 title: Lyhyt esitys description: Lyhyt nimi, eg. vuosi maxLength: 8 date: type: string format: date title: Päivämäärä description: Tapahtuman päivämäärä (alku) archived: type: boolean title: Arkistoitu description: Saa näyttää arkistossa hidden: type: boolean title: Piilotettu description: Piilottaa tapahtuman julkisesta ja käyttäjä-API:sta mainurl: type: string format: uri title: Tapahtuman pääsivu description: URL Tapahtuman pääsivustolle maxLength: 200 required: - date - name EventTypeEnum: enum: - 0 - 1 type: integer description: |- * `0` - Yksinkertainen * `1` - Yksityiskohtainen Group: type: object description: Serializer for user groups (used in user info responses). properties: id: type: integer readOnly: true name: type: string maxLength: 150 required: - id - name GroupRequest: type: object description: Serializer for user groups (used in user info responses). properties: name: type: string minLength: 1 maxLength: 150 required: - name LanguageEnum: enum: - en - fi type: string description: |- * `` - Not set * `en` - English * `fi` - Finnish LogEntry: type: object description: Serializer for audit log entries. properties: id: type: integer readOnly: true content_type: allOf: - $ref: '#/components/schemas/ContentType' readOnly: true object_pk: type: string maxLength: 255 object_repr: type: string title: Object representation action: allOf: - $ref: '#/components/schemas/ActionEnum' minimum: 0 maximum: 9223372036854775807 changes: type: object additionalProperties: {} description: Return the changes as a dictionary. readOnly: true timestamp: type: string format: date-time actor: allOf: - $ref: '#/components/schemas/Actor' readOnly: true remote_addr: type: string nullable: true title: Remote address required: - action - actor - changes - content_type - id - object_pk - object_repr NestedReceipt: type: object description: Serializer for Receipt model (nested in transaction response). properties: id: type: integer readOnly: true subject: type: string readOnly: true title: Aihe mail_to: type: string readOnly: true title: Vastaanottajan osoite mail_from: type: string readOnly: true title: Lähettäjän osoite sent: type: string format: date-time readOnly: true nullable: true title: Lähetysaika is_sent: type: boolean readOnly: true content: type: string readOnly: true nullable: true title: Kuitin sisältö required: - content - id - is_sent - mail_from - mail_to - sent - subject OtherVideo: type: object description: Staff serializer for archive videos. properties: id: type: integer readOnly: true category: type: integer title: Kategoria name: type: string title: Nimi description: Videon nimi. maxLength: 64 description: type: string title: Kuvaus description: Videon kuvaus. youtube_url: type: string nullable: true required: - category - description - id - name - youtube_url OtherVideoCategory: type: object description: Staff serializer for archive video categories. properties: id: type: integer readOnly: true event: type: integer readOnly: true title: Tapahtuma name: type: string title: Nimi description: Kategorian nimi maxLength: 64 required: - event - id - name OtherVideoCategoryRequest: type: object description: Staff serializer for archive video categories. properties: name: type: string minLength: 1 title: Nimi description: Kategorian nimi maxLength: 64 required: - name OtherVideoRequest: type: object description: Staff serializer for archive videos. properties: category: type: integer title: Kategoria name: type: string minLength: 1 title: Nimi description: Videon nimi. maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Videon kuvaus. youtube_url: type: string nullable: true required: - category - description - name - youtube_url PaginatedAuthTokenList: 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/AuthToken' PaginatedBlogEntryList: 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/BlogEntry' PaginatedCompetitionList: 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/Competition' PaginatedCompetitionParticipationList: 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/CompetitionParticipation' PaginatedCompoEntryList: 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/CompoEntry' PaginatedCompoList: 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/Compo' PaginatedEventList: 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/Event' PaginatedGroupList: 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/Group' PaginatedLogEntryList: 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/LogEntry' PaginatedOtherVideoCategoryList: 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/OtherVideoCategory' PaginatedOtherVideoList: 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/OtherVideo' PaginatedProgramEventList: 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/ProgramEvent' PaginatedPublicBlogEntryList: 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/PublicBlogEntry' PaginatedPublicCompetitionList: 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/PublicCompetition' PaginatedPublicCompetitionParticipationList: 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/PublicCompetitionParticipation' PaginatedPublicCompoEntryList: 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/PublicCompoEntry' PaginatedPublicCompoList: 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/PublicCompo' PaginatedPublicEventList: 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/PublicEvent' PaginatedPublicOtherVideoCategoryList: 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/PublicOtherVideoCategory' PaginatedPublicOtherVideoList: 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/PublicOtherVideo' PaginatedPublicProgramEventList: 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/PublicProgramEvent' PaginatedPublicStoreItemList: 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/PublicStoreItem' PaginatedReceiptList: 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/Receipt' PaginatedStoreItemList: 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/StoreItem' PaginatedStoreItemVariantList: 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/StoreItemVariant' PaginatedStoreTransactionList: 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/StoreTransaction' PaginatedTicketVoteCodeList: 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/TicketVoteCode' PaginatedTransactionItemList: 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/TransactionItem' PaginatedUploadedFileList: 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/UploadedFile' PaginatedUserCompetitionParticipationList: 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/UserCompetitionParticipation' PaginatedUserCompoEntryList: 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/UserCompoEntry' PaginatedUserList: 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/User' PaginatedUserTicketVoteCodeList: 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/UserTicketVoteCode' PaginatedUserVoteCodeRequestList: 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/UserVoteCodeRequest' PaginatedUserVoteGroupList: 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/UserVoteGroup' PaginatedVoteCodeRequestList: 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/VoteCodeRequest' PatchedBlogEntryRequest: type: object description: |- Serializer for staff - includes all fields. The user field is read-only and set automatically to the current user on create. properties: title: type: string minLength: 1 title: Otsikko description: Lyhyt otsikko entrylle. maxLength: 128 text: type: string minLength: 1 title: Teksti public: type: boolean title: Julkinen description: Mikäli entry on julkinen, tulee se näkyviin sekä tapahtuman sivuille että RSS-syötteeseen. event: type: integer title: Tapahtuma PatchedCompetitionParticipationRequest: type: object description: |- Staff serializer for competition participations. Requires queryset to have with_rank() annotation applied. properties: competition: type: integer title: Kilpailu description: Kilpailu johon osallistuttu user: type: integer title: Käyttäjä description: Osallistuja participant_name: type: string minLength: 1 title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 score: type: number format: double title: Pisteet description: Kilpailijan saavuttamat pisteet disqualified: type: boolean title: Diskattu description: Suoritus on diskattu sääntörikon tai teknisten virheiden takia. disqualified_reason: type: string title: Diskauksen syy PatchedCompetitionRequest: type: object description: Staff serializer for competitions. properties: name: type: string minLength: 1 title: Nimi description: Kilpailun nimi (max 32 merkkiä). maxLength: 32 description: type: string minLength: 1 title: Kuvaus participation_end: type: string format: date-time title: Deadline osallistumiselle. description: Tämän jälkeen kilpailuun ei voi enää osallistua. start: type: string format: date-time title: Kilpailun alku description: Kilpailun aloitusaika. end: type: string format: date-time nullable: true title: Kilpailun loppu description: Kilpailun päättymisaika. score_type: type: string minLength: 1 title: Pisteiden tyyppi description: Pisteiden tyyppi (km, m, sek, ...). Maksimipituus 8 merkkiä. maxLength: 8 score_sort: allOf: - $ref: '#/components/schemas/ScoreSortEnum' title: Pisteiden järjestely description: |- Onko suurimman vai pienimmän tuloksen saavuttanut voittaja? * `0` - Korkein tulos ensin * `1` - Matalin tulos ensin minimum: -9223372036854775808 maximum: 9223372036854775807 show_results: type: boolean title: Näytä tulokset description: Näytä kilpailun tulokset. active: type: boolean title: Aktiivinen description: Onko kilpailu aktiivinen, eli näytetäänkö se kompomaatissa kaikille. hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilotetaanko kilpailun tulokset arkistosta ? Tämä ylikirjoittaa eventin asetuksen. PatchedCompoEntryRequest: type: object description: Staff serializer for compo entries. properties: user: type: integer title: Käyttäjä description: Käyttäjä jolle entry kuuluu compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string minLength: 1 title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string minLength: 1 title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile: type: string format: binary title: Tiedosto description: Tuotospaketti. sourcefile: type: string format: binary nullable: true title: Lähdekoodi description: Lähdekoodipaketti. imagefile_original: type: string format: binary nullable: true title: Kuva description: Edustava kuva teokselle. Ei pakollinen, mutta suositeltava. youtube_url: type: string nullable: true disqualified: type: boolean title: Diskattu description: Entry on diskattu sääntörikon tai teknisten ongelmien takia. DISKAUS ON TEHTÄVÄ ENNEN ÄÄNESTYKSEN ALKUA! disqualified_reason: type: string title: Syy diskaukseen description: Diskauksen syy. archive_score: type: number format: double nullable: true title: Pisteet description: Arkistoidun entryn kompossa saamat pisteet. Mikäli tätä ei määritetä, lasketaan pisteet suoraan äänestystuloksista. archive_rank: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 nullable: true title: Sijoitus description: Arkistoidun entryn kompossa saama sijoitus. Tämä voidaan laskea myös pistemääristä automaattisesti. PatchedCompoRequest: type: object description: Staff serializer for compos. properties: name: type: string minLength: 1 title: Nimi description: Kompon nimi (max 32 merkkiä). maxLength: 32 description: type: string minLength: 1 title: Kuvaus adding_end: type: string format: date-time title: Deadline entryjen lisäyksille description: Tämän jälkeen kompoon ei voi enää lähettää uusia entryjä. Muokkaus toimii vielä. editing_end: type: string format: date-time title: Deadline entryjen muokkauksille description: Tämän jälkeen entryjen tiedostoja tai muita tietoja ei voi enää muokata. compo_start: type: string format: date-time title: Kompon aloitusaika description: Kompon alkamisaika tapahtumassa (tapahtumakalenteria varten). voting_start: type: string format: date-time title: Äänestyksen alkamisaika description: Alkamisaika entryjen äänestykselle. voting_end: type: string format: date-time title: Äänestyksen päättymisaika description: Päättymisaika entryjen äänestykselle. entry_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja entryille description: Kokoraja entrytiedostoille (tavua). source_sizelimit: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kokoraja sorsille description: Kokoraja sorsatiedostoille (tavua). formats: type: string minLength: 1 title: Sallitut tiedostopäätteet description: Entrypaketille sallitut tiedostopäätteet pystyviivalla eroteltuna, esim. "png|jpg". maxLength: 128 source_formats: type: string minLength: 1 title: Sallitut lähdekoodipaketin päätteet description: Entryn lähdekoodipaketille sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 image_formats: type: string minLength: 1 title: Sallitut kuvatiedoston päätteet description: Entryn pikkukuvalle sallitut tiedostopäätteet pystyviivalla eroteltuna maxLength: 128 active: type: boolean title: Aktiivinen description: Onko kompo aktiivinen, eli näytetäänkö se kompomaatissa kaikille. show_voting_results: type: boolean title: Näytä tulokset description: Näytä äänestustulokset. entry_view_type: allOf: - $ref: '#/components/schemas/EntryViewTypeEnum' title: Entryesittely description: |- Ilmoittaa millainen näkymä näytetään entryn tiedoissa. Latauslinkki näytetään aina. * `0` - Ei mitään * `1` - Youtube ensin, sitten kuva * `2` - Vain kuva * `3` - (deprecated) minimum: -9223372036854775808 maximum: 9223372036854775807 hide_from_archive: type: boolean title: Piilotus arkistosta description: Piilottaa kompon tulokset arkistosta. Tämä asetus ohittaa tapahtuman tiedoissa valitun asetuksen. hide_from_frontpage: type: boolean title: Piilotus etusivulta description: Piilottaa kompon nimen ja kuvauksen tapahtuman etusivulta. Käytä esim. jos kompon kuvaus on vielä suunnitteilla. is_votable: type: boolean title: Äänestettävissä description: Teosta voi ylipäätään äänestää (Pois esim. robocodelle). thumbnail_pref: allOf: - $ref: '#/components/schemas/ThumbnailPrefEnum' title: Pikkukuvan asetukset description: |- Pikkukuvan luonti ja asettaminen. * `0` - Vaadi erillinen pikkukuva. * `1` - Käytä pikkukuvana teoksen tiedostoa (Toimii vain png/jpg-tiedostoille). * `2` - Salli pikkukuva (ei vaadittu). * `3` - Älä salli pikkukuvaa. minimum: -9223372036854775808 maximum: 9223372036854775807 PatchedEventRequest: type: object description: Staff serializer for events. properties: name: type: string minLength: 1 title: Nimi description: Tapahtuman nimi maxLength: 64 tag: type: string nullable: true minLength: 1 title: Lyhyt esitys description: Lyhyt nimi, eg. vuosi maxLength: 8 date: type: string format: date title: Päivämäärä description: Tapahtuman päivämäärä (alku) archived: type: boolean title: Arkistoitu description: Saa näyttää arkistossa hidden: type: boolean title: Piilotettu description: Piilottaa tapahtuman julkisesta ja käyttäjä-API:sta mainurl: type: string format: uri title: Tapahtuman pääsivu description: URL Tapahtuman pääsivustolle maxLength: 200 PatchedOtherVideoCategoryRequest: type: object description: Staff serializer for archive video categories. properties: name: type: string minLength: 1 title: Nimi description: Kategorian nimi maxLength: 64 PatchedOtherVideoRequest: type: object description: Staff serializer for archive videos. properties: category: type: integer title: Kategoria name: type: string minLength: 1 title: Nimi description: Videon nimi. maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Videon kuvaus. youtube_url: type: string nullable: true PatchedProgramEventRequest: type: object description: Staff serializer for programme events. properties: start: type: string format: date-time title: Alku description: Tapahtuman alkamisaika. end: type: string format: date-time nullable: true title: Loppu description: Tapahtuman loppumisaika. title: type: string minLength: 1 title: Otsikko description: Lyhyt otsikko. maxLength: 128 description: type: string title: Kuvaus presenters: type: string title: Henkilöt description: Esityksen pitäjät tms. maxLength: 256 presenters_titles: type: string title: Nimikkeet description: Henkilön arvo-, ammatti- tai virkanimike. maxLength: 256 place: type: string title: Paikka description: Tarkka paikka tapahtuma-areenalla maxLength: 64 icon_original: type: string format: binary title: Kuva 1 description: Kuva 1 tapahtumalle. icon2_original: type: string format: binary title: Kuva 2 description: Kuva 2 tapahtumalle. email: type: string format: email title: Sähköposti description: Tapahtumaan liittyvä sähköposti-osoite (esim. esiintyjän). maxLength: 254 home_url: type: string format: uri title: Kotiurli description: Tapahtumaan liittyvä URL. maxLength: 200 twitter_url: type: string format: uri title: Twitter description: Tapahtumaan liittyvä Twitter-url. maxLength: 200 github_url: type: string format: uri title: Github description: Tapahtumaan liittyvä Github-url maxLength: 200 facebook_url: type: string format: uri title: Facebook description: Tapahtumaan liittyvä facebook-url. maxLength: 200 linkedin_url: type: string format: uri title: LinkedIn description: Tapahtumaan liittyvä LinkedIn-url. maxLength: 200 wiki_url: type: string format: uri title: Wikipedia description: Tapahtumaan liittyvä Wikipedia-url. maxLength: 200 event_type: allOf: - $ref: '#/components/schemas/EventTypeEnum' title: Tapahtuman tyyppi description: |- Määrittää tapahtuman tyypin. Yksityiskohtaiset tapahtumat näkyvät etusivun tapahtumalistassa. * `0` - Yksinkertainen * `1` - Yksityiskohtainen minimum: -9223372036854775808 maximum: 9223372036854775807 active: type: boolean title: Aktiivinen description: Deaktivoidut piilotetaan. PatchedReceiptRequest: type: object description: Serializer for Receipt model (staff access). properties: transaction: type: integer nullable: true subject: type: string minLength: 1 title: Aihe maxLength: 256 mail_to: type: string minLength: 1 title: Vastaanottajan osoite maxLength: 256 mail_from: type: string minLength: 1 title: Lähettäjän osoite maxLength: 256 params: type: string nullable: true minLength: 1 title: Lähetysparametrit content: type: string nullable: true minLength: 1 title: Kuitin sisältö PatchedStoreItemRequest: type: object description: Staff serializer for StoreItem model. properties: name: type: string minLength: 1 title: Tuotteen nimi description: Tuotteen lyhyt nimi. maxLength: 255 description: type: string minLength: 1 title: Tuotteen kuvaus description: Tuotteen pitkä kuvaus. price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta. max: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kappaletta saatavilla description: Kuinka monta kappaletta on ostettavissa ennen myynnin lopettamista. available: type: boolean title: Ostettavissa description: Ilmoittaa, näkyykö tuote kaupassa. imagefile_original: type: string format: binary nullable: true title: Tuotekuva description: Edustava kuva tuotteelle. max_per_order: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Maksimi per tilaus description: Kuinka monta kappaletta voidaan ostaa kerralla. sort_index: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Järjestysarvo description: Tuotteet esitetään kaupassa tämän luvun mukaan järjestettynä, pienempilukuiset ensin. discount_amount: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusmäärä description: Pienin määrä tuotteita joka oikeuttaa alennukseen (-1 = ei mitään) discount_percentage: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusprosentti description: Alennuksen määrä prosentteina kun tuotteiden määrä saavuttaa alennusmäärän. is_ticket: type: boolean title: Tuote on lipputuote description: Tuote on lipputuote, ja sitä voi käyttää esim. kompomaatissa äänestysoikeuden hankkimiseen is_secret: type: boolean title: Tuote on salainen description: Tuote näkyy kaupassa vain salaisella linkillä secret_key: type: string title: Salasana description: Salaisen linkin avain. Jos salasana on kissa, salainen tuote näkyy vain osoitteessa https://instanssi.org/store/order/?secret_key=kissa maxLength: 255 PatchedStoreItemVariantRequest: type: object description: Staff serializer for store item variants. properties: item: type: integer name: type: string minLength: 1 title: Tuotevariantin nimi maxLength: 32 PatchedStoreTransactionRequest: type: object description: Serializer for StoreTransaction model (staff access). properties: time_created: type: string format: date-time nullable: true title: Luontiaika time_paid: type: string format: date-time nullable: true title: Maksun varmistumisaika time_pending: type: string format: date-time nullable: true title: Maksun maksuaika time_cancelled: type: string format: date-time nullable: true title: Peruutusaika payment_method_name: type: string title: Maksutapa description: Tapa jolla tilaus maksettiin maxLength: 32 firstname: type: string minLength: 1 title: Etunimi maxLength: 64 lastname: type: string minLength: 1 title: Sukunimi maxLength: 64 company: type: string title: Yritys maxLength: 128 email: type: string format: email minLength: 1 title: Sähköposti description: Sähköpostiosoitteen on oltava toimiva, sillä liput ja tuotteiden lunastukseen tarvittavat koodit lähetetään sinne. maxLength: 255 telephone: type: string title: Puhelinnumero maxLength: 64 mobile: type: string title: Matkapuhelin maxLength: 64 street: type: string minLength: 1 title: Katuosoite description: Katusoite tarvitaan maksupalvelun vaatimuksesta. maxLength: 128 postalcode: type: string minLength: 1 title: Postinumero maxLength: 16 city: type: string minLength: 1 title: Postitoimipaikka maxLength: 64 country: allOf: - $ref: '#/components/schemas/CountryEnum' title: Maa information: type: string title: Lisätiedot description: Mikäli tilaukseen kuuluu T-paitoja, määritä niiden koot tässä. PatchedTransactionItemRequest: type: object description: Serializer for TransactionItem model (staff access). properties: item: type: integer title: Tuote variant: type: integer nullable: true title: Tuotevariantti transaction: type: integer title: Ostotapahtuma time_delivered: type: string format: date-time nullable: true title: Toimitusaika purchase_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta ostoshetkellä original_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen alkuperäinen hinta description: Tuotteen hinta ostoshetkellä ilman alennuksia PatchedUploadedFileRequest: type: object description: Staff serializer for uploaded files. properties: user: type: integer nullable: true title: Käyttäjä description: type: string title: Kuvaus description: Lyhyt kuvaus siitä, mihin/missä tiedostoa käytetään. file: type: string format: binary title: Tiedosto PatchedUserCompetitionParticipationRequest: type: object description: User serializer for managing own competition participations. properties: competition: type: integer participant_name: type: string minLength: 1 title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 PatchedUserCompoEntryRequest: type: object description: User serializer for managing own compo entries. properties: compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string minLength: 1 title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string minLength: 1 title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile: type: string format: binary writeOnly: true title: Tiedosto description: Tuotospaketti. sourcefile: type: string format: binary writeOnly: true nullable: true title: Lähdekoodi description: Lähdekoodipaketti. imagefile_original: type: string format: binary writeOnly: true nullable: true title: Kuva description: Edustava kuva teokselle. Ei pakollinen, mutta suositeltava. youtube_url: type: string nullable: true PatchedUserInfoRequest: type: object description: Serializer for the authenticated user's own profile and permissions. properties: first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 language: oneOf: - $ref: '#/components/schemas/LanguageEnum' - $ref: '#/components/schemas/BlankEnum' notify_vote_code_requests: type: boolean notify_program_events: type: boolean notify_compo_starts: type: boolean notify_competition_starts: type: boolean PatchedUserRequest: type: object description: Staff serializer for users, includes all fields for admin management. properties: username: type: string minLength: 1 description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email title: Email address maxLength: 254 language: oneOf: - $ref: '#/components/schemas/LanguageEnum' - $ref: '#/components/schemas/BlankEnum' group_ids: type: array items: type: integer writeOnly: true writeOnly: true is_active: type: boolean title: Active description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. PatchedUserVoteCodeRequestRequest: type: object description: |- Serializer for user's own vote code requests. Users can create and read their own vote code requests. The status field is read-only for users (only staff can change it). Event and user are set by the viewset, not from the request body. Status values: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) properties: text: type: string minLength: 1 title: Kuvaus description: Lyhyt aneluteksti admineille :) PatchedVoteCodeRequestRequest: type: object description: Staff serializer for vote code requests. properties: user: type: integer title: Käyttäjä description: Pyynnön esittänyt käyttäjä text: type: string minLength: 1 title: Kuvaus description: Lyhyt aneluteksti admineille :) status: allOf: - $ref: '#/components/schemas/StatusEnum' title: Tila minimum: -9223372036854775808 maximum: 9223372036854775807 PaymentMethodEnum: enum: - -1 - 1 type: integer description: |- * `-1` - -1 * `1` - 1 ProgramEvent: type: object description: Staff serializer for programme events. properties: id: type: integer readOnly: true event: type: integer readOnly: true title: Tapahtuma start: type: string format: date-time title: Alku description: Tapahtuman alkamisaika. end: type: string format: date-time nullable: true title: Loppu description: Tapahtuman loppumisaika. title: type: string title: Otsikko description: Lyhyt otsikko. maxLength: 128 description: type: string title: Kuvaus presenters: type: string title: Henkilöt description: Esityksen pitäjät tms. maxLength: 256 presenters_titles: type: string title: Nimikkeet description: Henkilön arvo-, ammatti- tai virkanimike. maxLength: 256 place: type: string title: Paikka description: Tarkka paikka tapahtuma-areenalla maxLength: 64 icon_original: type: string format: uri title: Kuva 1 description: Kuva 1 tapahtumalle. icon_small_url: type: string nullable: true description: Return URL for small icon thumbnail, or None if no icon exists. readOnly: true icon2_original: type: string format: uri title: Kuva 2 description: Kuva 2 tapahtumalle. icon2_small_url: type: string nullable: true description: Return URL for small icon2 thumbnail, or None if no icon2 exists. readOnly: true email: type: string format: email title: Sähköposti description: Tapahtumaan liittyvä sähköposti-osoite (esim. esiintyjän). maxLength: 254 home_url: type: string format: uri title: Kotiurli description: Tapahtumaan liittyvä URL. maxLength: 200 twitter_url: type: string format: uri title: Twitter description: Tapahtumaan liittyvä Twitter-url. maxLength: 200 github_url: type: string format: uri title: Github description: Tapahtumaan liittyvä Github-url maxLength: 200 facebook_url: type: string format: uri title: Facebook description: Tapahtumaan liittyvä facebook-url. maxLength: 200 linkedin_url: type: string format: uri title: LinkedIn description: Tapahtumaan liittyvä LinkedIn-url. maxLength: 200 wiki_url: type: string format: uri title: Wikipedia description: Tapahtumaan liittyvä Wikipedia-url. maxLength: 200 event_type: allOf: - $ref: '#/components/schemas/EventTypeEnum' title: Tapahtuman tyyppi description: |- Määrittää tapahtuman tyypin. Yksityiskohtaiset tapahtumat näkyvät etusivun tapahtumalistassa. * `0` - Yksinkertainen * `1` - Yksityiskohtainen minimum: -9223372036854775808 maximum: 9223372036854775807 active: type: boolean title: Aktiivinen description: Deaktivoidut piilotetaan. required: - event - icon2_small_url - icon_small_url - id - start - title ProgramEventRequest: type: object description: Staff serializer for programme events. properties: start: type: string format: date-time title: Alku description: Tapahtuman alkamisaika. end: type: string format: date-time nullable: true title: Loppu description: Tapahtuman loppumisaika. title: type: string minLength: 1 title: Otsikko description: Lyhyt otsikko. maxLength: 128 description: type: string title: Kuvaus presenters: type: string title: Henkilöt description: Esityksen pitäjät tms. maxLength: 256 presenters_titles: type: string title: Nimikkeet description: Henkilön arvo-, ammatti- tai virkanimike. maxLength: 256 place: type: string title: Paikka description: Tarkka paikka tapahtuma-areenalla maxLength: 64 icon_original: type: string format: binary title: Kuva 1 description: Kuva 1 tapahtumalle. icon2_original: type: string format: binary title: Kuva 2 description: Kuva 2 tapahtumalle. email: type: string format: email title: Sähköposti description: Tapahtumaan liittyvä sähköposti-osoite (esim. esiintyjän). maxLength: 254 home_url: type: string format: uri title: Kotiurli description: Tapahtumaan liittyvä URL. maxLength: 200 twitter_url: type: string format: uri title: Twitter description: Tapahtumaan liittyvä Twitter-url. maxLength: 200 github_url: type: string format: uri title: Github description: Tapahtumaan liittyvä Github-url maxLength: 200 facebook_url: type: string format: uri title: Facebook description: Tapahtumaan liittyvä facebook-url. maxLength: 200 linkedin_url: type: string format: uri title: LinkedIn description: Tapahtumaan liittyvä LinkedIn-url. maxLength: 200 wiki_url: type: string format: uri title: Wikipedia description: Tapahtumaan liittyvä Wikipedia-url. maxLength: 200 event_type: allOf: - $ref: '#/components/schemas/EventTypeEnum' title: Tapahtuman tyyppi description: |- Määrittää tapahtuman tyypin. Yksityiskohtaiset tapahtumat näkyvät etusivun tapahtumalistassa. * `0` - Yksinkertainen * `1` - Yksityiskohtainen minimum: -9223372036854775808 maximum: 9223372036854775807 active: type: boolean title: Aktiivinen description: Deaktivoidut piilotetaan. required: - start - title PublicAlternateEntryFile: type: object description: Public read-only serializer for alternate entry files (transcoded media). properties: format: type: string readOnly: true url: type: string readOnly: true required: - format - url PublicBlogEntry: type: object description: Serializer for public blog entries - excludes user, public, and created_by fields properties: id: type: integer readOnly: true date: type: string format: date-time title: Aika title: type: string title: Otsikko description: Lyhyt otsikko entrylle. maxLength: 128 text: type: string title: Teksti event: type: integer title: Tapahtuma required: - event - id - text - title PublicCompetition: type: object description: Public read-only serializer for competitions. properties: id: type: integer readOnly: true event: type: integer title: Tapahtuma description: Tapahtuma johon kilpailu kuuluu name: type: string title: Nimi description: Kilpailun nimi (max 32 merkkiä). maxLength: 32 description: type: string title: Kuvaus participation_end: type: string format: date-time title: Deadline osallistumiselle. description: Tämän jälkeen kilpailuun ei voi enää osallistua. start: type: string format: date-time title: Kilpailun alku description: Kilpailun aloitusaika. end: type: string format: date-time nullable: true title: Kilpailun loppu description: Kilpailun päättymisaika. score_type: type: string title: Pisteiden tyyppi description: Pisteiden tyyppi (km, m, sek, ...). Maksimipituus 8 merkkiä. maxLength: 8 score_sort: allOf: - $ref: '#/components/schemas/ScoreSortEnum' title: Pisteiden järjestely description: |- Onko suurimman vai pienimmän tuloksen saavuttanut voittaja? * `0` - Korkein tulos ensin * `1` - Matalin tulos ensin minimum: -9223372036854775808 maximum: 9223372036854775807 show_results: type: boolean title: Näytä tulokset description: Näytä kilpailun tulokset. required: - description - event - id - name - participation_end - score_type - start PublicCompetitionParticipation: type: object description: |- Public serializer for competition participations. Drops sensitive/staff-only fields: user FK, disqualified_reason. Rank/score/disqualified are shown only when competition.show_results is True. properties: id: type: integer readOnly: true competition: type: integer title: Kilpailu description: Kilpailu johon osallistuttu participant_name: type: string title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 score: type: number format: double nullable: true readOnly: true disqualified: type: boolean nullable: true readOnly: true disqualified_reason: type: string nullable: true readOnly: true rank: type: integer nullable: true readOnly: true required: - competition - disqualified - disqualified_reason - id - rank - score PublicCompo: type: object description: Public read-only serializer for compos. properties: id: type: integer readOnly: true event: type: integer title: Tapahtuma description: Tapahtuma johon kompo kuuluu name: type: string title: Nimi description: Kompon nimi (max 32 merkkiä). maxLength: 32 description: type: string title: Kuvaus adding_end: type: string format: date-time title: Deadline entryjen lisäyksille description: Tämän jälkeen kompoon ei voi enää lähettää uusia entryjä. Muokkaus toimii vielä. editing_end: type: string format: date-time title: Deadline entryjen muokkauksille description: Tämän jälkeen entryjen tiedostoja tai muita tietoja ei voi enää muokata. compo_start: type: string format: date-time title: Kompon aloitusaika description: Kompon alkamisaika tapahtumassa (tapahtumakalenteria varten). voting_start: type: string format: date-time title: Äänestyksen alkamisaika description: Alkamisaika entryjen äänestykselle. voting_end: type: string format: date-time title: Äänestyksen päättymisaika description: Päättymisaika entryjen äänestykselle. entry_view_type: allOf: - $ref: '#/components/schemas/EntryViewTypeEnum' title: Entryesittely description: |- Ilmoittaa millainen näkymä näytetään entryn tiedoissa. Latauslinkki näytetään aina. * `0` - Ei mitään * `1` - Youtube ensin, sitten kuva * `2` - Vain kuva * `3` - (deprecated) minimum: -9223372036854775808 maximum: 9223372036854775807 is_votable: type: boolean title: Äänestettävissä description: Teosta voi ylipäätään äänestää (Pois esim. robocodelle). required: - adding_end - compo_start - description - editing_end - event - id - name - voting_end - voting_start PublicCompoEntry: type: object description: |- Public serializer for compo entries. Drops sensitive/staff-only fields: user FK, file upload fields (entryfile, sourcefile, imagefile_original), file URL fields (entryfile_url, sourcefile_url), disqualified_reason, archive_score, archive_rank. Rank/score are shown only when compo.show_voting_results is True. properties: id: type: integer readOnly: true compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 imagefile_original_url: type: string nullable: true readOnly: true imagefile_thumbnail_url: type: string nullable: true readOnly: true imagefile_medium_url: type: string nullable: true readOnly: true youtube_url: type: string nullable: true disqualified: type: boolean nullable: true readOnly: true disqualified_reason: type: string nullable: true readOnly: true computed_score: type: number format: double nullable: true readOnly: true computed_rank: type: integer nullable: true readOnly: true alternate_files: type: array items: $ref: '#/components/schemas/PublicAlternateEntryFile' readOnly: true required: - alternate_files - compo - computed_rank - computed_score - creator - description - disqualified - disqualified_reason - id - imagefile_medium_url - imagefile_original_url - imagefile_thumbnail_url - name PublicEvent: type: object description: Public read-only serializer for events. properties: id: type: integer readOnly: true name: type: string title: Nimi description: Tapahtuman nimi maxLength: 64 tag: type: string nullable: true title: Lyhyt esitys description: Lyhyt nimi, eg. vuosi maxLength: 8 date: type: string format: date title: Päivämäärä description: Tapahtuman päivämäärä (alku) archived: type: boolean title: Arkistoitu description: Saa näyttää arkistossa mainurl: type: string format: uri title: Tapahtuman pääsivu description: URL Tapahtuman pääsivustolle maxLength: 200 required: - date - id - name PublicOtherVideo: type: object description: Public read-only serializer for archive videos. properties: id: type: integer readOnly: true category: type: integer title: Kategoria name: type: string title: Nimi description: Videon nimi. maxLength: 64 description: type: string title: Kuvaus description: Videon kuvaus. youtube_url: type: string nullable: true readOnly: true required: - category - description - id - name - youtube_url PublicOtherVideoCategory: type: object description: Public read-only serializer for archive video categories. properties: id: type: integer readOnly: true event: type: integer title: Tapahtuma name: type: string title: Nimi description: Kategorian nimi maxLength: 64 required: - event - id - name PublicProgramEvent: type: object description: Public read-only serializer for programme events. properties: id: type: integer readOnly: true event: type: integer title: Tapahtuma start: type: string format: date-time title: Alku description: Tapahtuman alkamisaika. end: type: string format: date-time nullable: true title: Loppu description: Tapahtuman loppumisaika. title: type: string title: Otsikko description: Lyhyt otsikko. maxLength: 128 description: type: string title: Kuvaus presenters: type: string title: Henkilöt description: Esityksen pitäjät tms. maxLength: 256 presenters_titles: type: string title: Nimikkeet description: Henkilön arvo-, ammatti- tai virkanimike. maxLength: 256 place: type: string title: Paikka description: Tarkka paikka tapahtuma-areenalla maxLength: 64 icon_small_url: type: string nullable: true readOnly: true icon2_small_url: type: string nullable: true readOnly: true home_url: type: string format: uri title: Kotiurli description: Tapahtumaan liittyvä URL. maxLength: 200 twitter_url: type: string format: uri title: Twitter description: Tapahtumaan liittyvä Twitter-url. maxLength: 200 github_url: type: string format: uri title: Github description: Tapahtumaan liittyvä Github-url maxLength: 200 facebook_url: type: string format: uri title: Facebook description: Tapahtumaan liittyvä facebook-url. maxLength: 200 linkedin_url: type: string format: uri title: LinkedIn description: Tapahtumaan liittyvä LinkedIn-url. maxLength: 200 wiki_url: type: string format: uri title: Wikipedia description: Tapahtumaan liittyvä Wikipedia-url. maxLength: 200 event_type: allOf: - $ref: '#/components/schemas/EventTypeEnum' title: Tapahtuman tyyppi description: |- Määrittää tapahtuman tyypin. Yksityiskohtaiset tapahtumat näkyvät etusivun tapahtumalistassa. * `0` - Yksinkertainen * `1` - Yksityiskohtainen minimum: -9223372036854775808 maximum: 9223372036854775807 required: - event - icon2_small_url - icon_small_url - id - start - title PublicStoreItem: type: object description: |- Public read-only serializer for StoreItem model. This serializer is used for the public store endpoint (/api/v2/store/items/). It does NOT expose sensitive fields like is_secret, secret_key, or is_ticket. properties: id: type: integer readOnly: true event: type: integer nullable: true title: Tapahtuma description: Tapahtuma johon tuote liittyy. name: type: string title: Tuotteen nimi description: Tuotteen lyhyt nimi. maxLength: 255 description: type: string title: Tuotteen kuvaus description: Tuotteen pitkä kuvaus. price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta. max: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kappaletta saatavilla description: Kuinka monta kappaletta on ostettavissa ennen myynnin lopettamista. available: type: boolean title: Ostettavissa description: Ilmoittaa, näkyykö tuote kaupassa. imagefile_original_url: type: string nullable: true readOnly: true imagefile_thumbnail_url: type: string nullable: true readOnly: true max_per_order: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Maksimi per tilaus description: Kuinka monta kappaletta voidaan ostaa kerralla. sort_index: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Järjestysarvo description: Tuotteet esitetään kaupassa tämän luvun mukaan järjestettynä, pienempilukuiset ensin. discount_amount: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusmäärä description: Pienin määrä tuotteita joka oikeuttaa alennukseen (-1 = ei mitään) discount_percentage: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusprosentti description: Alennuksen määrä prosentteina kun tuotteiden määrä saavuttaa alennusmäärän. is_discount_available: type: boolean description: Returns True if a discount exists for this item. readOnly: true discount_factor: type: number format: double readOnly: true num_available: type: integer readOnly: true variants: type: array items: $ref: '#/components/schemas/PublicStoreItemVariant' readOnly: true required: - description - discount_factor - id - imagefile_original_url - imagefile_thumbnail_url - is_discount_available - max - name - num_available - price - variants PublicStoreItemVariant: type: object description: |- Public serializer for StoreItemVariant - nested in store items. Only exposes id and name, not the item reference. properties: id: type: integer readOnly: true name: type: string title: Tuotevariantin nimi maxLength: 32 required: - id - name PublicStoreTransactionCheckout: type: object description: |- Public serializer for creating a new store transaction (checkout). This is a write-only serializer for anonymous checkout. No authentication is required. properties: first_name: type: string maxLength: 64 last_name: type: string maxLength: 64 company: type: string default: '' maxLength: 128 email: type: string format: email maxLength: 255 telephone: type: string default: '' maxLength: 64 mobile: type: string default: '' maxLength: 64 street: type: string maxLength: 128 postal_code: type: string maxLength: 16 city: type: string maxLength: 64 country: type: string maxLength: 2 information: type: string default: '' maxLength: 1024 payment_method: $ref: '#/components/schemas/PaymentMethodEnum' read_terms: type: boolean items: type: array items: $ref: '#/components/schemas/PublicStoreTransactionCheckoutItem' confirm: type: boolean default: false required: - city - country - email - first_name - items - last_name - payment_method - postal_code - read_terms - street PublicStoreTransactionCheckoutItem: type: object description: Serializer for individual items in a public checkout request. properties: item_id: type: integer variant_id: type: integer nullable: true amount: type: integer minimum: 1 required: - amount - item_id - variant_id PublicStoreTransactionCheckoutItemRequest: type: object description: Serializer for individual items in a public checkout request. properties: item_id: type: integer variant_id: type: integer nullable: true amount: type: integer minimum: 1 required: - amount - item_id - variant_id PublicStoreTransactionCheckoutRequest: type: object description: |- Public serializer for creating a new store transaction (checkout). This is a write-only serializer for anonymous checkout. No authentication is required. properties: first_name: type: string minLength: 1 maxLength: 64 last_name: type: string minLength: 1 maxLength: 64 company: type: string default: '' maxLength: 128 email: type: string format: email minLength: 1 maxLength: 255 telephone: type: string default: '' maxLength: 64 mobile: type: string default: '' maxLength: 64 street: type: string minLength: 1 maxLength: 128 postal_code: type: string minLength: 1 maxLength: 16 city: type: string minLength: 1 maxLength: 64 country: type: string minLength: 1 maxLength: 2 information: type: string default: '' maxLength: 1024 payment_method: $ref: '#/components/schemas/PaymentMethodEnum' read_terms: type: boolean items: type: array items: $ref: '#/components/schemas/PublicStoreTransactionCheckoutItemRequest' confirm: type: boolean default: false required: - city - country - email - first_name - items - last_name - payment_method - postal_code - read_terms - street PushSubscription: type: object properties: id: type: integer readOnly: true endpoint: type: string maxLength: 1024 p256dh: type: string maxLength: 128 auth: type: string maxLength: 64 created_at: type: string format: date-time readOnly: true required: - auth - created_at - endpoint - id - p256dh PushSubscriptionRequest: type: object properties: endpoint: type: string minLength: 1 maxLength: 1024 p256dh: type: string minLength: 1 maxLength: 128 auth: type: string minLength: 1 maxLength: 64 required: - auth - endpoint - p256dh Receipt: type: object description: Serializer for Receipt model (staff access). properties: id: type: integer readOnly: true transaction: type: integer nullable: true subject: type: string title: Aihe maxLength: 256 mail_to: type: string title: Vastaanottajan osoite maxLength: 256 mail_from: type: string title: Lähettäjän osoite maxLength: 256 sent: type: string format: date-time readOnly: true nullable: true title: Lähetysaika params: type: string nullable: true title: Lähetysparametrit content: type: string nullable: true title: Kuitin sisältö is_sent: type: boolean readOnly: true required: - id - is_sent - mail_from - mail_to - sent - subject ReceiptRequest: type: object description: Serializer for Receipt model (staff access). properties: transaction: type: integer nullable: true subject: type: string minLength: 1 title: Aihe maxLength: 256 mail_to: type: string minLength: 1 title: Vastaanottajan osoite maxLength: 256 mail_from: type: string minLength: 1 title: Lähettäjän osoite maxLength: 256 params: type: string nullable: true minLength: 1 title: Lähetysparametrit content: type: string nullable: true minLength: 1 title: Kuitin sisältö required: - mail_from - mail_to - subject ScoreSortEnum: enum: - 0 - 1 type: integer description: |- * `0` - Korkein tulos ensin * `1` - Matalin tulos ensin SocialAuthURL: type: object description: Serializer for social authentication provider URLs. properties: method: type: string url: type: string name: type: string required: - method - name - url StatusEnum: enum: - 0 - 1 - 2 type: integer description: |- * `0` - Odottaa hyväksyntää * `1` - Hyväksytty * `2` - Hylätty StoreItem: type: object description: Staff serializer for StoreItem model. properties: id: type: integer readOnly: true event: type: integer readOnly: true nullable: true title: Tapahtuma description: Tapahtuma johon tuote liittyy. name: type: string title: Tuotteen nimi description: Tuotteen lyhyt nimi. maxLength: 255 description: type: string title: Tuotteen kuvaus description: Tuotteen pitkä kuvaus. price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta. max: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kappaletta saatavilla description: Kuinka monta kappaletta on ostettavissa ennen myynnin lopettamista. available: type: boolean title: Ostettavissa description: Ilmoittaa, näkyykö tuote kaupassa. imagefile_original: type: string format: uri nullable: true title: Tuotekuva description: Edustava kuva tuotteelle. imagefile_original_url: type: string nullable: true readOnly: true imagefile_thumbnail_url: type: string nullable: true readOnly: true max_per_order: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Maksimi per tilaus description: Kuinka monta kappaletta voidaan ostaa kerralla. sort_index: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Järjestysarvo description: Tuotteet esitetään kaupassa tämän luvun mukaan järjestettynä, pienempilukuiset ensin. discount_amount: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusmäärä description: Pienin määrä tuotteita joka oikeuttaa alennukseen (-1 = ei mitään) discount_percentage: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusprosentti description: Alennuksen määrä prosentteina kun tuotteiden määrä saavuttaa alennusmäärän. is_discount_available: type: boolean description: Returns True if a discount exists for this item. readOnly: true discount_factor: type: number format: double readOnly: true num_available: type: integer readOnly: true is_ticket: type: boolean title: Tuote on lipputuote description: Tuote on lipputuote, ja sitä voi käyttää esim. kompomaatissa äänestysoikeuden hankkimiseen is_secret: type: boolean title: Tuote on salainen description: Tuote näkyy kaupassa vain salaisella linkillä secret_key: type: string title: Salasana description: Salaisen linkin avain. Jos salasana on kissa, salainen tuote näkyy vain osoitteessa https://instanssi.org/store/order/?secret_key=kissa maxLength: 255 variants: type: array items: $ref: '#/components/schemas/StoreItemVariant' readOnly: true required: - description - discount_factor - event - id - imagefile_original_url - imagefile_thumbnail_url - is_discount_available - max - name - num_available - price - variants StoreItemRequest: type: object description: Staff serializer for StoreItem model. properties: name: type: string minLength: 1 title: Tuotteen nimi description: Tuotteen lyhyt nimi. maxLength: 255 description: type: string minLength: 1 title: Tuotteen kuvaus description: Tuotteen pitkä kuvaus. price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta. max: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Kappaletta saatavilla description: Kuinka monta kappaletta on ostettavissa ennen myynnin lopettamista. available: type: boolean title: Ostettavissa description: Ilmoittaa, näkyykö tuote kaupassa. imagefile_original: type: string format: binary nullable: true title: Tuotekuva description: Edustava kuva tuotteelle. max_per_order: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Maksimi per tilaus description: Kuinka monta kappaletta voidaan ostaa kerralla. sort_index: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Järjestysarvo description: Tuotteet esitetään kaupassa tämän luvun mukaan järjestettynä, pienempilukuiset ensin. discount_amount: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusmäärä description: Pienin määrä tuotteita joka oikeuttaa alennukseen (-1 = ei mitään) discount_percentage: type: integer maximum: 9223372036854775807 minimum: -9223372036854775808 format: int64 title: Alennusprosentti description: Alennuksen määrä prosentteina kun tuotteiden määrä saavuttaa alennusmäärän. is_ticket: type: boolean title: Tuote on lipputuote description: Tuote on lipputuote, ja sitä voi käyttää esim. kompomaatissa äänestysoikeuden hankkimiseen is_secret: type: boolean title: Tuote on salainen description: Tuote näkyy kaupassa vain salaisella linkillä secret_key: type: string title: Salasana description: Salaisen linkin avain. Jos salasana on kissa, salainen tuote näkyy vain osoitteessa https://instanssi.org/store/order/?secret_key=kissa maxLength: 255 required: - description - max - name - price StoreItemVariant: type: object description: Staff serializer for store item variants. properties: id: type: integer readOnly: true item: type: integer name: type: string title: Tuotevariantin nimi maxLength: 32 required: - id - item - name StoreItemVariantRequest: type: object description: Staff serializer for store item variants. properties: item: type: integer name: type: string minLength: 1 title: Tuotevariantin nimi maxLength: 32 required: - item - name StoreSummary: type: object properties: total_items_sold: type: integer total_revenue: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ items: type: array items: $ref: '#/components/schemas/StoreSummaryItemRow' sales_per_day: type: array items: $ref: '#/components/schemas/StoreSummaryDayRow' sales_per_hour: type: array items: $ref: '#/components/schemas/StoreSummaryHourRow' required: - items - sales_per_day - sales_per_hour - total_items_sold - total_revenue StoreSummaryDayRow: type: object properties: date: type: string format: date count: type: integer required: - count - date StoreSummaryHourRow: type: object properties: hour: type: integer count: type: integer required: - count - hour StoreSummaryItemRow: type: object properties: item_id: type: integer item_name: type: string variant_id: type: integer nullable: true variant_name: type: string nullable: true quantity: type: integer revenue: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ required: - item_id - item_name - quantity - revenue - variant_id - variant_name StoreTransaction: type: object description: Serializer for StoreTransaction model (staff access). properties: id: type: integer readOnly: true token: type: string readOnly: true title: Palvelutunniste description: Maksupalvelun maksukohtainen tunniste time_created: type: string format: date-time nullable: true title: Luontiaika time_paid: type: string format: date-time nullable: true title: Maksun varmistumisaika time_pending: type: string format: date-time nullable: true title: Maksun maksuaika time_cancelled: type: string format: date-time nullable: true title: Peruutusaika payment_method_name: type: string title: Maksutapa description: Tapa jolla tilaus maksettiin maxLength: 32 key: type: string readOnly: true title: Avain description: Paikallinen maksukohtainen tunniste firstname: type: string title: Etunimi maxLength: 64 lastname: type: string title: Sukunimi maxLength: 64 company: type: string title: Yritys maxLength: 128 email: type: string format: email title: Sähköposti description: Sähköpostiosoitteen on oltava toimiva, sillä liput ja tuotteiden lunastukseen tarvittavat koodit lähetetään sinne. maxLength: 255 telephone: type: string title: Puhelinnumero maxLength: 64 mobile: type: string title: Matkapuhelin maxLength: 64 street: type: string title: Katuosoite description: Katusoite tarvitaan maksupalvelun vaatimuksesta. maxLength: 128 postalcode: type: string title: Postinumero maxLength: 16 city: type: string title: Postitoimipaikka maxLength: 64 country: allOf: - $ref: '#/components/schemas/CountryEnum' title: Maa information: type: string title: Lisätiedot description: Mikäli tilaukseen kuuluu T-paitoja, määritä niiden koot tässä. is_paid: type: boolean readOnly: true is_cancelled: type: boolean readOnly: true is_pending: type: boolean readOnly: true is_delivered: type: boolean readOnly: true full_name: type: string readOnly: true status_text: type: string readOnly: true total_price: type: string readOnly: true events: type: array items: $ref: '#/components/schemas/StoreTransactionEvent' readOnly: true receipts: type: array items: $ref: '#/components/schemas/NestedReceipt' readOnly: true required: - city - email - events - firstname - full_name - id - is_cancelled - is_delivered - is_paid - is_pending - key - lastname - postalcode - receipts - status_text - street - token - total_price StoreTransactionEvent: type: object description: Serializer for StoreTransactionEvent model (nested in transaction). properties: id: type: integer readOnly: true message: type: string readOnly: true title: Tapahtuman viesti data: readOnly: true nullable: true title: Tapahtuman data created: type: string format: date-time readOnly: true title: Luontiaika required: - created - data - id - message StoreTransactionRequest: type: object description: Serializer for StoreTransaction model (staff access). properties: time_created: type: string format: date-time nullable: true title: Luontiaika time_paid: type: string format: date-time nullable: true title: Maksun varmistumisaika time_pending: type: string format: date-time nullable: true title: Maksun maksuaika time_cancelled: type: string format: date-time nullable: true title: Peruutusaika payment_method_name: type: string title: Maksutapa description: Tapa jolla tilaus maksettiin maxLength: 32 firstname: type: string minLength: 1 title: Etunimi maxLength: 64 lastname: type: string minLength: 1 title: Sukunimi maxLength: 64 company: type: string title: Yritys maxLength: 128 email: type: string format: email minLength: 1 title: Sähköposti description: Sähköpostiosoitteen on oltava toimiva, sillä liput ja tuotteiden lunastukseen tarvittavat koodit lähetetään sinne. maxLength: 255 telephone: type: string title: Puhelinnumero maxLength: 64 mobile: type: string title: Matkapuhelin maxLength: 64 street: type: string minLength: 1 title: Katuosoite description: Katusoite tarvitaan maksupalvelun vaatimuksesta. maxLength: 128 postalcode: type: string minLength: 1 title: Postinumero maxLength: 16 city: type: string minLength: 1 title: Postitoimipaikka maxLength: 64 country: allOf: - $ref: '#/components/schemas/CountryEnum' title: Maa information: type: string title: Lisätiedot description: Mikäli tilaukseen kuuluu T-paitoja, määritä niiden koot tässä. required: - city - email - firstname - lastname - postalcode - street ThumbnailPrefEnum: enum: - 0 - 1 - 2 - 3 type: integer description: |- * `0` - Vaadi erillinen pikkukuva. * `1` - Käytä pikkukuvana teoksen tiedostoa (Toimii vain png/jpg-tiedostoille). * `2` - Salli pikkukuva (ei vaadittu). * `3` - Älä salli pikkukuvaa. TicketVoteCode: type: object description: Staff serializer for ticket vote codes. properties: id: type: integer readOnly: true event: type: integer readOnly: true nullable: true title: Tapahtuma description: Tapahtuma, johon äänestysavain on assosioitu associated_to: type: integer nullable: true title: Käyttäjä description: Käyttäjä jolle avain on assosioitu ticket: type: integer nullable: true title: Lipputuote description: Lipputuote jonka avainta käytetään äänestysavaimena time: type: string format: date-time nullable: true title: Aikaleima description: Aika jolloin avain assosioitiin käyttäjälle. associated_username: type: string nullable: true readOnly: true required: - associated_username - event - id TransactionItem: type: object description: Serializer for TransactionItem model (staff access). properties: id: type: integer readOnly: true key: type: string readOnly: true title: Avain description: Lippuavain item: type: integer title: Tuote variant: type: integer nullable: true title: Tuotevariantti transaction: type: integer title: Ostotapahtuma time_delivered: type: string format: date-time nullable: true title: Toimitusaika purchase_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta ostoshetkellä original_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen alkuperäinen hinta description: Tuotteen hinta ostoshetkellä ilman alennuksia is_delivered: type: boolean readOnly: true required: - id - is_delivered - item - key - original_price - purchase_price - transaction TransactionItemRequest: type: object description: Serializer for TransactionItem model (staff access). properties: item: type: integer title: Tuote variant: type: integer nullable: true title: Tuotevariantti transaction: type: integer title: Ostotapahtuma time_delivered: type: string format: date-time nullable: true title: Toimitusaika purchase_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen hinta description: Tuotteen hinta ostoshetkellä original_price: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,2})?$ title: Tuotteen alkuperäinen hinta description: Tuotteen hinta ostoshetkellä ilman alennuksia required: - item - original_price - purchase_price - transaction UploadedFile: type: object description: Staff serializer for uploaded files. properties: id: type: integer readOnly: true event: type: integer readOnly: true title: Tapahtuma user: type: integer nullable: true title: Käyttäjä description: type: string title: Kuvaus description: Lyhyt kuvaus siitä, mihin/missä tiedostoa käytetään. file: type: string format: uri title: Tiedosto file_url: type: string nullable: true description: Return absolute URL for the file. readOnly: true filename: type: string description: Return just the filename without path. readOnly: true date: type: string format: date-time readOnly: true title: Aika required: - date - event - file - file_url - filename - id UploadedFileRequest: type: object description: Staff serializer for uploaded files. properties: user: type: integer nullable: true title: Käyttäjä description: type: string title: Kuvaus description: Lyhyt kuvaus siitä, mihin/missä tiedostoa käytetään. file: type: string format: binary title: Tiedosto required: - file User: type: object description: Staff serializer for users, includes all fields for admin management. properties: id: type: integer readOnly: true username: type: string description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email title: Email address maxLength: 254 user_permissions: type: array items: type: string readOnly: true is_superuser: type: boolean readOnly: true title: Superuser status description: Designates that this user has all permissions without explicitly assigning them. date_joined: type: string format: date-time readOnly: true language: oneOf: - $ref: '#/components/schemas/LanguageEnum' - $ref: '#/components/schemas/BlankEnum' groups: type: array items: $ref: '#/components/schemas/Group' readOnly: true is_active: type: boolean title: Active description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. is_staff: type: boolean readOnly: true title: Staff status description: Designates whether the user can log into this admin site. is_system: type: boolean readOnly: true required: - date_joined - groups - id - is_staff - is_superuser - is_system - user_permissions - username UserCompetitionParticipation: type: object description: User serializer for managing own competition participations. properties: id: type: integer readOnly: true competition: type: integer participant_name: type: string title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 required: - competition - id UserCompetitionParticipationRequest: type: object description: User serializer for managing own competition participations. properties: competition: type: integer participant_name: type: string minLength: 1 title: Osallistujan nimi description: Nimimerkki jolla haluat osallistua. maxLength: 32 required: - competition UserCompoEntry: type: object description: User serializer for managing own compo entries. properties: id: type: integer readOnly: true compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile_url: type: string nullable: true readOnly: true sourcefile_url: type: string nullable: true readOnly: true imagefile_original_url: type: string nullable: true readOnly: true imagefile_thumbnail_url: type: string nullable: true readOnly: true imagefile_medium_url: type: string nullable: true readOnly: true youtube_url: type: string nullable: true disqualified: type: boolean nullable: true readOnly: true disqualified_reason: type: string nullable: true readOnly: true computed_score: type: number format: double nullable: true readOnly: true computed_rank: type: integer nullable: true readOnly: true alternate_files: type: array items: $ref: '#/components/schemas/AlternateEntryFile' readOnly: true required: - alternate_files - compo - computed_rank - computed_score - creator - description - disqualified - disqualified_reason - entryfile_url - id - imagefile_medium_url - imagefile_original_url - imagefile_thumbnail_url - name - sourcefile_url UserCompoEntryRequest: type: object description: User serializer for managing own compo entries. properties: compo: type: integer title: Kompo description: Kompo johon osallistutaan name: type: string minLength: 1 title: Nimi description: Nimi tuotokselle maxLength: 64 description: type: string minLength: 1 title: Kuvaus description: Voi sisältää mm. tietoja käytetyistä tekniikoista, muuta sanottavaa. creator: type: string minLength: 1 title: Tekijä description: Tuotoksen tekijän tai tekijäryhmän nimi maxLength: 64 platform: type: string nullable: true title: Alusta description: Alusta jolla entry toimii. Voit jättää tyhjäksi jos entry ei sisällä ajettavaa koodia. maxLength: 128 entryfile: type: string format: binary writeOnly: true title: Tiedosto description: Tuotospaketti. sourcefile: type: string format: binary writeOnly: true nullable: true title: Lähdekoodi description: Lähdekoodipaketti. imagefile_original: type: string format: binary writeOnly: true nullable: true title: Kuva description: Edustava kuva teokselle. Ei pakollinen, mutta suositeltava. youtube_url: type: string nullable: true required: - compo - creator - description - entryfile - name UserInfo: type: object description: Serializer for the authenticated user's own profile and permissions. properties: id: type: integer readOnly: true username: type: string readOnly: true description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email readOnly: true title: Email address user_permissions: type: array items: type: string readOnly: true is_staff: type: boolean readOnly: true title: Staff status description: Designates whether the user can log into this admin site. is_superuser: type: boolean readOnly: true title: Superuser status description: Designates that this user has all permissions without explicitly assigning them. date_joined: type: string format: date-time readOnly: true language: oneOf: - $ref: '#/components/schemas/LanguageEnum' - $ref: '#/components/schemas/BlankEnum' notify_vote_code_requests: type: boolean notify_program_events: type: boolean notify_compo_starts: type: boolean notify_competition_starts: type: boolean required: - date_joined - email - id - is_staff - is_superuser - user_permissions - username UserLoginRequest: type: object description: Serializer for username/password login credentials. properties: username: type: string minLength: 1 maxLength: 255 password: type: string minLength: 1 maxLength: 255 required: - password - username UserRequest: type: object description: Staff serializer for users, includes all fields for admin management. properties: username: type: string minLength: 1 description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.@+-]+$ maxLength: 150 first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email title: Email address maxLength: 254 language: oneOf: - $ref: '#/components/schemas/LanguageEnum' - $ref: '#/components/schemas/BlankEnum' group_ids: type: array items: type: integer writeOnly: true writeOnly: true is_active: type: boolean title: Active description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. required: - username UserTicketVoteCode: type: object description: |- Serializer for user's own ticket vote codes. Users associate a ticket key (from their purchase) to their account to gain voting rights. The ticket_key field accepts a partial key (at least 8 characters) to find the matching ticket. Event, ticket, and associated_to are set by the viewset, not from the request body. properties: id: type: integer readOnly: true event: type: integer readOnly: true nullable: true title: Tapahtuma description: Tapahtuma, johon äänestysavain on assosioitu time: type: string format: date-time readOnly: true nullable: true title: Aikaleima description: Aika jolloin avain assosioitiin käyttäjälle. required: - event - id - time UserTicketVoteCodeRequest: type: object description: |- Serializer for user's own ticket vote codes. Users associate a ticket key (from their purchase) to their account to gain voting rights. The ticket_key field accepts a partial key (at least 8 characters) to find the matching ticket. Event, ticket, and associated_to are set by the viewset, not from the request body. properties: ticket_key: type: string writeOnly: true minLength: 8 required: - ticket_key UserVoteCodeRequest: type: object description: |- Serializer for user's own vote code requests. Users can create and read their own vote code requests. The status field is read-only for users (only staff can change it). Event and user are set by the viewset, not from the request body. Status values: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) properties: id: type: integer readOnly: true event: type: integer readOnly: true nullable: true title: Tapahtuma description: Tapahtuma, johon äänestysoikeutta pyydetään text: type: string title: Kuvaus description: Lyhyt aneluteksti admineille :) status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true title: Tila required: - event - id - status - text UserVoteCodeRequestRequest: type: object description: |- Serializer for user's own vote code requests. Users can create and read their own vote code requests. The status field is read-only for users (only staff can change it). Event and user are set by the viewset, not from the request body. Status values: - 0: Pending - 1: Accepted (voting right granted) - 2: Rejected (no voting right) properties: text: type: string minLength: 1 title: Kuvaus description: Lyhyt aneluteksti admineille :) required: - text UserVoteGroup: type: object description: |- Serializer for user's votes in a compo. Users submit a ranked list of entries to vote for. The order of entries in the list determines the ranking (first = highest rank). Re-submitting votes replaces previous votes for the same compo. properties: id: type: integer readOnly: true compo: type: integer title: Kompo voted_entries: type: array items: type: integer description: Return the list of entry IDs in ranked order. readOnly: true required: - compo - id - voted_entries UserVoteGroupRequest: type: object description: |- Serializer for user's votes in a compo. Users submit a ranked list of entries to vote for. The order of entries in the list determines the ranking (first = highest rank). Re-submitting votes replaces previous votes for the same compo. properties: compo: type: integer title: Kompo entries: type: array items: type: integer writeOnly: true description: List of entry IDs in order of preference (first = highest rank) minItems: 1 required: - compo - entries ValidateArchiveError: type: object properties: error: type: string entries: type: array items: type: string required: - entries - error ValidateArchiveOk: type: object properties: ok: type: boolean count: type: integer required: - count - ok VapidPublicKey: type: object properties: vapid_public_key: type: string readOnly: true required: - vapid_public_key VoteCodeRequest: type: object description: Staff serializer for vote code requests. properties: id: type: integer readOnly: true event: type: integer readOnly: true nullable: true title: Tapahtuma description: Tapahtuma, johon äänestysoikeutta pyydetään user: type: integer title: Käyttäjä description: Pyynnön esittänyt käyttäjä text: type: string title: Kuvaus description: Lyhyt aneluteksti admineille :) status: allOf: - $ref: '#/components/schemas/StatusEnum' title: Tila minimum: -9223372036854775808 maximum: 9223372036854775807 required: - event - id - text - user VoteCodeRequestRequest: type: object description: Staff serializer for vote code requests. properties: user: type: integer title: Käyttäjä description: Pyynnön esittänyt käyttäjä text: type: string minLength: 1 title: Kuvaus description: Lyhyt aneluteksti admineille :) status: allOf: - $ref: '#/components/schemas/StatusEnum' title: Tila minimum: -9223372036854775808 maximum: 9223372036854775807 required: - text - user securitySchemes: cookieAuth: type: apiKey in: cookie name: sessionid knoxApiToken: type: apiKey in: header name: Authorization description: Token-based authentication with required prefix "Token"