Skip to content
Snippets Groups Projects
steering-types.ts 117 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * This file was auto-generated by `make update-types` at 2023-08-30 17:07:28.505Z.
    
     * DO NOT make changes to this file.
     */
    
    export interface paths {
      '/api/v1/categories/': {
        /** List all categories. */
        get: operations['categories_list']
        /** Create a new category. */
        post: operations['categories_create']
      }
      '/api/v1/categories/{id}/': {
        /** Retrieve a single category. */
        get: operations['categories_retrieve']
        /** Update an existing category. */
        put: operations['categories_update']
        /** Delete an existing category. */
        delete: operations['categories_destroy']
        /** Partially update an existing category. */
        patch: operations['categories_partial_update']
      }
    
      '/api/v1/funding-categories/': {
    
        /** List all funding categories. */
    
        get: operations['funding_categories_list']
    
        /** Create a new funding category. */
    
        post: operations['funding_categories_create']
    
      '/api/v1/funding-categories/{id}/': {
    
        /** Retrieve a single funding category. */
    
        get: operations['funding_categories_retrieve']
    
        /** Update an existing funding category. */
    
        put: operations['funding_categories_update']
    
        /** Delete an existing funding category. */
    
        delete: operations['funding_categories_destroy']
    
        /** Partially update an existing funding category. */
    
        patch: operations['funding_categories_partial_update']
    
      }
      '/api/v1/hosts/': {
        /** List all hosts. */
        get: operations['hosts_list']
        /** Create a new host. */
        post: operations['hosts_create']
      }
      '/api/v1/hosts/{id}/': {
        /** Retrieve a single host. */
        get: operations['hosts_retrieve']
        /** Update an existing host. */
        put: operations['hosts_update']
        /** Delete an existing host. */
        delete: operations['hosts_destroy']
        /** Partially update an existing host. */
        patch: operations['hosts_partial_update']
      }
    
      '/api/v1/images/': {
    
        /** List all images. */
    
        get: operations['images_list']
    
        /**
         * Create a new image.
         * @description Create an Image instance. Any user can create an image.
         */
    
        post: operations['images_create']
      }
      '/api/v1/images/{id}/': {
    
        /** Retrieve a single image. */
    
        get: operations['images_retrieve']
    
        /**
         * Update an existing image.
         * @description Only `alt_text`, `credits`, and `ppoi` can be updated.
         */
    
        put: operations['images_update']
    
        /**
         * Delete an existing image.
         * @description Destroy an Image instance. Only the owner can delete an image.
         */
    
        delete: operations['images_destroy']
    
        /**
         * Partially update an existing image.
         * @description Only `alt_text`, `credits`, and `ppoi` can be updated.
         */
    
        patch: operations['images_partial_update']
      }
    
      '/api/v1/languages/': {
        /** List all languages. */
        get: operations['languages_list']
        /** Create a new language. */
        post: operations['languages_create']
      }
      '/api/v1/languages/{id}/': {
        /** Retrieve a single language. */
        get: operations['languages_retrieve']
        /** Update an existing language. */
        put: operations['languages_update']
        /** Delete an existing language. */
        delete: operations['languages_destroy']
        /** Partially update an existing language. */
        patch: operations['languages_partial_update']
      }
    
      '/api/v1/licenses/': {
    
        /** List all license types. */
    
        get: operations['licenses_list']
    
        /** Create a new license type. */
    
        post: operations['licenses_create']
    
      '/api/v1/licenses/{id}/': {
    
        /** Retrieve a single license type. */
    
        get: operations['licenses_retrieve']
    
        /** Update an existing license type. */
    
        put: operations['licenses_update']
    
        /** Delete an existing license type. */
    
        delete: operations['licenses_destroy']
    
        /** Partially update an existing license type. */
    
        patch: operations['licenses_partial_update']
    
      }
      '/api/v1/link-types/': {
        /** List all link types. */
        get: operations['link_types_list']
        /** Create a new link type. */
        post: operations['link_types_create']
      }
      '/api/v1/link-types/{id}/': {
        /** Retrieve a single link type. */
        get: operations['link_types_retrieve']
        /** Update an existing link type. */
        put: operations['link_types_update']
        /** Delete an existing link type. */
        delete: operations['link_types_destroy']
        /** Partially update an existing link type. */
        patch: operations['link_types_partial_update']
      }
      '/api/v1/music-focus/': {
    
        /** List all music focuses. */
    
        get: operations['music_focus_list']
    
        /** Create a new music focus. */
    
        post: operations['music_focus_create']
    
      '/api/v1/music-focus/{id}/': {
    
        /** Retrieve a single music focus. */
    
        get: operations['music_focus_retrieve']
    
        /** Update an existing music focus. */
    
        put: operations['music_focus_update']
    
        /** Delete an existing music focus. */
    
        delete: operations['music_focus_destroy']
    
        /** Partially update an existing music focus. */
    
        patch: operations['music_focus_partial_update']
    
      }
      '/api/v1/notes/': {
        /** List all notes. */
        get: operations['notes_list']
    
        /** Create a new note. */
    
        post: operations['notes_create']
      }
      '/api/v1/notes/{id}/': {
        /** Retrieve a single note. */
        get: operations['notes_retrieve']
    
        /** Update an existing note. */
    
        put: operations['notes_update']
    
        /** Delete an existing note. */
    
        delete: operations['notes_destroy']
        /**
         * Partially update an existing note.
         * @description Only admins can partially update existing notes.
         */
        patch: operations['notes_partial_update']
      }
    
      '/api/v1/rrules/': {
        /** List all rrule. */
        get: operations['rrules_list']
        post: operations['rrules_create']
      }
      '/api/v1/rrules/{id}/': {
        /** Retrieve a single rrule. */
        get: operations['rrules_retrieve']
        put: operations['rrules_update']
        delete: operations['rrules_destroy']
        patch: operations['rrules_partial_update']
      }
    
      '/api/v1/schedules/': {
        /** List all schedules. */
        get: operations['schedules_list']
        /**
         * Create a new schedule.
         * @description Create a schedule, generate timeslots, test for collisions and resolve them
         * (including notes).
         *
         * Note that creating or updating a schedule is the only way to create timeslots.
         *
         * Only admins may add schedules.
         *
         * The projected timeslots defined by the schedule are matched against existing
         * timeslots. The API will return an object that contains
         *
         * * the schedule's data,
         * * projected timeslots,
         * * detected collisions,
         * * and possible solutions.
         *
         * As long as no `solutions` object has been set or unresolved collisions exist,
         * no data is written to the database. A schedule is only created if at least
         * one timeslot was generated by it.
         *
         * In order to resolve any possible conflicts, the client must submit a new request with
         * a solution for each conflict. Possible solutions are listed as part of the projected
         * timeslot in the `solution_choices` array. In a best-case scenario with no detected
         * conflicts an empty solutions object will suffice. For more details on the individual
         * types of solutions see the SolutionChoicesEnum.
         *
         * **Please note**:
         * If there's more than one collision for a projected timeslot, only `theirs` and `ours`
         * are currently supported as solutions.
         */
        post: operations['schedules_create']
      }
      '/api/v1/schedules/{id}/': {
        /** Retrieve a single schedule. */
        get: operations['schedules_retrieve']
        /**
         * Update an existing schedule.
         * @description Update a schedule, generate timeslots, test for collisions and resolve
         * them including notes.
         *
         * Only admins may update schedules.
         */
        put: operations['schedules_update']
        /**
         * Delete an existing schedule.
         * @description Only admins may delete schedules.
         */
        delete: operations['schedules_destroy']
        /** Partially update an existing schedule. */
        patch: operations['schedules_partial_update']
      }
      '/api/v1/schema/': {
        /**
         * @description OpenApi3 schema for this API. Format can be selected via content negotiation.
         *
         * - YAML: application/vnd.oai.openapi
         * - JSON: application/vnd.oai.openapi+json
         */
        get: operations['schema_retrieve']
      }
      '/api/v1/shows/': {
        /** List all shows. */
        get: operations['shows_list']
        /**
         * Create a new show.
         * @description Only admins may create a show.
         */
        post: operations['shows_create']
      }
      '/api/v1/shows/{id}/': {
        /** Retrieve a single show. */
        get: operations['shows_retrieve']
        /**
         * Update an existing show.
         * @description Non-admin users may only update shows they own.
         */
        put: operations['shows_update']
        /**
         * Delete an existing show.
         * @description Only admins may delete shows.
         */
        delete: operations['shows_destroy']
        /** Partially update an existing show. */
        patch: operations['shows_partial_update']
      }
      '/api/v1/shows/{show_pk}/notes/': {
        /** List all notes. */
        get: operations['shows_notes_list']
    
        /** Create a new note. */
    
        post: operations['shows_notes_create']
      }
      '/api/v1/shows/{show_pk}/notes/{id}/': {
        /** Retrieve a single note. */
        get: operations['shows_notes_retrieve']
    
        /** Update an existing note. */
    
        put: operations['shows_notes_update']
    
        /** Delete an existing note. */
    
        delete: operations['shows_notes_destroy']
        /**
         * Partially update an existing note.
         * @description Only admins can partially update existing notes.
         */
        patch: operations['shows_notes_partial_update']
      }
      '/api/v1/shows/{show_pk}/schedules/': {
        /** List all schedules. */
        get: operations['shows_schedules_list']
        /**
         * Create a new schedule.
         * @description Create a schedule, generate timeslots, test for collisions and resolve them
         * (including notes).
         *
         * Note that creating or updating a schedule is the only way to create timeslots.
         *
         * Only admins may add schedules.
         *
         * The projected timeslots defined by the schedule are matched against existing
         * timeslots. The API will return an object that contains
         *
         * * the schedule's data,
         * * projected timeslots,
         * * detected collisions,
         * * and possible solutions.
         *
         * As long as no `solutions` object has been set or unresolved collisions exist,
         * no data is written to the database. A schedule is only created if at least
         * one timeslot was generated by it.
         *
         * In order to resolve any possible conflicts, the client must submit a new request with
         * a solution for each conflict. Possible solutions are listed as part of the projected
         * timeslot in the `solution_choices` array. In a best-case scenario with no detected
         * conflicts an empty solutions object will suffice. For more details on the individual
         * types of solutions see the SolutionChoicesEnum.
         *
         * **Please note**:
         * If there's more than one collision for a projected timeslot, only `theirs` and `ours`
         * are currently supported as solutions.
         */
        post: operations['shows_schedules_create']
      }
      '/api/v1/shows/{show_pk}/schedules/{id}/': {
        /** Retrieve a single schedule. */
        get: operations['shows_schedules_retrieve']
        /**
         * Update an existing schedule.
         * @description Update a schedule, generate timeslots, test for collisions and resolve
         * them including notes.
         *
         * Only admins may update schedules.
         */
        put: operations['shows_schedules_update']
        /**
         * Delete an existing schedule.
         * @description Only admins may delete schedules.
         */
        delete: operations['shows_schedules_destroy']
        /** Partially update an existing schedule. */
        patch: operations['shows_schedules_partial_update']
      }
      '/api/v1/shows/{show_pk}/schedules/{schedule_pk}/timeslots/': {
        /**
         * List all timeslots.
         * @description
         * By default, only timeslots ranging from now + 60 days will be displayed.
         * You may override this default overriding start and/or end parameter.
         */
        get: operations['shows_schedules_timeslots_list']
      }
      '/api/v1/shows/{show_pk}/schedules/{schedule_pk}/timeslots/{id}/': {
        /** Retrieve a single timeslot. */
        get: operations['shows_schedules_timeslots_retrieve']
        /** Update an existing timeslot. */
        put: operations['shows_schedules_timeslots_update']
        /**
         * Delete an existing timeslot.
         * @description Only admins may delete timeslots.
         */
        delete: operations['shows_schedules_timeslots_destroy']
        /** Partially update an existing timeslot. */
        patch: operations['shows_schedules_timeslots_partial_update']
      }
      '/api/v1/shows/{show_pk}/schedules/{schedule_pk}/timeslots/{timeslot_pk}/note/': {
        /** List all notes. */
        get: operations['shows_schedules_timeslots_note_list']
    
        /** Create a new note. */
    
        post: operations['shows_schedules_timeslots_note_create']
      }
      '/api/v1/shows/{show_pk}/schedules/{schedule_pk}/timeslots/{timeslot_pk}/note/{id}/': {
        /** Retrieve a single note. */
        get: operations['shows_schedules_timeslots_note_retrieve']
    
        /** Update an existing note. */
    
        put: operations['shows_schedules_timeslots_note_update']
    
        /** Delete an existing note. */
    
        delete: operations['shows_schedules_timeslots_note_destroy']
        /**
         * Partially update an existing note.
         * @description Only admins can partially update existing notes.
         */
        patch: operations['shows_schedules_timeslots_note_partial_update']
      }
      '/api/v1/shows/{show_pk}/timeslots/': {
        /**
         * List all timeslots.
         * @description
         * By default, only timeslots ranging from now + 60 days will be displayed.
         * You may override this default overriding start and/or end parameter.
         */
        get: operations['shows_timeslots_list']
      }
      '/api/v1/shows/{show_pk}/timeslots/{id}/': {
        /** Retrieve a single timeslot. */
        get: operations['shows_timeslots_retrieve']
        /** Update an existing timeslot. */
        put: operations['shows_timeslots_update']
        /**
         * Delete an existing timeslot.
         * @description Only admins may delete timeslots.
         */
        delete: operations['shows_timeslots_destroy']
        /** Partially update an existing timeslot. */
        patch: operations['shows_timeslots_partial_update']
      }
      '/api/v1/shows/{show_pk}/timeslots/{timeslot_pk}/note/': {
        /** List all notes. */
        get: operations['shows_timeslots_note_list']
    
        /** Create a new note. */
    
        post: operations['shows_timeslots_note_create']
      }
      '/api/v1/shows/{show_pk}/timeslots/{timeslot_pk}/note/{id}/': {
        /** Retrieve a single note. */
        get: operations['shows_timeslots_note_retrieve']
    
        /** Update an existing note. */
    
        put: operations['shows_timeslots_note_update']
    
        /** Delete an existing note. */
    
        delete: operations['shows_timeslots_note_destroy']
        /**
         * Partially update an existing note.
         * @description Only admins can partially update existing notes.
         */
        patch: operations['shows_timeslots_note_partial_update']
      }
      '/api/v1/timeslots/': {
        /**
         * List all timeslots.
         * @description
         * By default, only timeslots ranging from now + 60 days will be displayed.
         * You may override this default overriding start and/or end parameter.
         */
        get: operations['timeslots_list']
      }
      '/api/v1/timeslots/{id}/': {
        /** Retrieve a single timeslot. */
        get: operations['timeslots_retrieve']
        /** Update an existing timeslot. */
        put: operations['timeslots_update']
        /**
         * Delete an existing timeslot.
         * @description Only admins may delete timeslots.
         */
        delete: operations['timeslots_destroy']
        /** Partially update an existing timeslot. */
        patch: operations['timeslots_partial_update']
      }
      '/api/v1/topics/': {
        /** List all topics. */
        get: operations['topics_list']
        /** Create a new topic. */
        post: operations['topics_create']
      }
      '/api/v1/topics/{id}/': {
        /** Retrieve a single topic. */
        get: operations['topics_retrieve']
        /** Update an existing topic. */
        put: operations['topics_update']
        /** Delete an existing topic. */
        delete: operations['topics_destroy']
        /** Partially update an existing topic. */
        patch: operations['topics_partial_update']
      }
      '/api/v1/types/': {
        /** List all types. */
        get: operations['types_list']
        /** Create a new type. */
        post: operations['types_create']
      }
      '/api/v1/types/{id}/': {
        /** Retrieve a single type. */
        get: operations['types_retrieve']
        /** Update an existing type. */
        put: operations['types_update']
        /** Delete an existing type. */
        delete: operations['types_destroy']
        /** Partially update an existing type. */
        patch: operations['types_partial_update']
      }
      '/api/v1/users/': {
        /**
         * List all users.
         * @description The returned list of records will only contain a single record for non-admin users which is their own user account.
         */
        get: operations['users_list']
        /**
         * Create a new user.
         * @description Only admins may create users.
         */
        post: operations['users_create']
      }
      '/api/v1/users/{id}/': {
        /**
         * Retrieve a single user.
         * @description Non-admin users may only retrieve their own user record.
         */
        get: operations['users_retrieve']
        /**
         * Update an existing user.
         * @description Non-admin users may only update their own user record.
         */
        put: operations['users_update']
        /**
         * Partially update an existing user.
         * @description Non-admin users may only update their own user record.
         */
        patch: operations['users_partial_update']
      }
    }
    
    export type webhooks = Record<string, never>
    
    export interface components {
      schemas: {
        /**
         * @description **0**: Monday
         *
         *
         * **1**: Tuesday
         *
         *
         * **2**: Wednesday
         *
         *
         * **3**: Thursday
         *
         *
         * **4**: Friday
         *
         *
         * **5**: Saturday
         *
         *
         * **6**: Sunday
         * @enum {integer}
         */
        ByWeekdayEnum: 0 | 1 | 2 | 3 | 4 | 5 | 6
        Category: {
    
          description?: string
    
          name: string
          slug: string
    
        }
        Collision: {
          id: number
          /** Format: date-time */
          start: string
          /** Format: date-time */
          end: string
    
          playlistId: number | null
          showId: number
          showName: string
          repetitionOfId: number | null
          scheduleId: number
    
          noteId: number | null
    
        }
        DryRunTimeSlot: {
          id: number | null
    
          scheduleId: number | null
          playlistId: number | null
    
          /** Format: date */
          start: string
          /** Format: date */
          end: string
    
          repetitionOfId: number | null
    
          memo: string
        }
        Error: {
          message: string
          code: string | null
        }
        FundingCategory: {
          id: number
    
          name: string
          slug: string
    
          /** Format: email */
          email?: string
    
          imageId?: number | null
          isActive?: boolean
    
          links?: components['schemas']['HostLink'][]
          name: string
    
          /** Format: date-time */
    
          createdAt: string
          createdBy: string
    
          /** Format: date-time */
    
          updatedAt: string | null
          updatedBy: string
    
          type: string
    
          altText?: string
          credits?: string
    
          /** Format: uri */
          image?: string | null
    
          licenseId?: number | null
    
          height: number | null
          id: number
    
          /** @description Returns thumbnails */
    
          thumbnails: readonly {
            /** Format: double */
            width: number
            /** Format: double */
            height: number
            url: string
          }[]
    
          width: number | null
        }
    
          name: string
        }
    
        License: {
          id: number
          /** @description Identifier of the license */
          identifier: string
          /** @description Name of the license */
    
          name: string
    
          needsAuthor?: boolean
          requiresExpressPermissionForPublication?: boolean
          /** Format: uri */
          url?: string
    
        }
        LinkType: {
          /** @description Name of the link type */
          name: string
          /** @description Type of the link */
          type: string
    
          name: string
          slug: string
    
          cbaId?: number | null
    
          content: string
    
          contributorIds: number[]
          id: number
          imageId?: number | null
    
          links?: components['schemas']['NoteLink'][]
    
          ownerId: number
          playlistId?: number
    
          tags?: string
          timeslotId?: number
    
          title: string
    
          createdAt: string
          createdBy: string
    
          /** Format: date-time */
    
          updatedAt: string | null
          updatedBy: string
    
          type: string
    
        /** @enum {unknown} */
        NullEnum: ''
    
        PaginatedHostList: {
          /** @example 123 */
          count?: number
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=400&limit=100
           */
          next?: string | null
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=200&limit=100
           */
          previous?: string | null
          results?: components['schemas']['Host'][]
        }
    
        PaginatedImageList: {
          /** @example 123 */
          count?: number
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=400&limit=100
           */
          next?: string | null
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=200&limit=100
           */
          previous?: string | null
          results?: components['schemas']['Image'][]
        }
    
        PaginatedNoteList: {
          /** @example 123 */
          count?: number
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=400&limit=100
           */
          next?: string | null
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=200&limit=100
           */
          previous?: string | null
          results?: components['schemas']['Note'][]
        }
        PaginatedShowList: {
          /** @example 123 */
          count?: number
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=400&limit=100
           */
          next?: string | null
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=200&limit=100
           */
          previous?: string | null
          results?: components['schemas']['Show'][]
        }
        PaginatedTimeSlotList: {
          /** @example 123 */
          count?: number
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=400&limit=100
           */
          next?: string | null
          /**
           * Format: uri
           * @example http://api.example.org/accounts/?offset=200&limit=100
           */
          previous?: string | null
          results?: components['schemas']['TimeSlot'][]
        }
        PatchedCategory: {
    
          description?: string
    
          name?: string
          slug?: string
    
        }
        PatchedFundingCategory: {
          id?: number
    
          name?: string
          slug?: string
    
          /** Format: email */
          email?: string
    
          imageId?: number | null
          isActive?: boolean
    
          links?: components['schemas']['HostLink'][]
          name?: string
    
          /** Format: date-time */
    
          createdAt?: string
          createdBy?: string
    
          /** Format: date-time */
    
          updatedAt?: string | null
          updatedBy?: string
    
        }
        PatchedImage: {
    
          altText?: string
          credits?: string
    
          image?: string | null
    
          licenseId?: number | null
    
          id?: number
    
          /** @description Returns thumbnails */
    
          thumbnails?: readonly {
            /** Format: double */
            width: number
            /** Format: double */
            height: number
            url: string
          }[]
    
          width?: number | null
        }
        PatchedLanguage: {
          id?: number
    
          name?: string
        }
    
        PatchedLicense: {
          id?: number
          /** @description Identifier of the license */
          identifier?: string
          /** @description Name of the license */
    
          name?: string
    
          needsAuthor?: boolean
          requiresExpressPermissionForPublication?: boolean
          /** Format: uri */
          url?: string
    
        }
        PatchedLinkType: {
          /** @description Name of the link type */
          name?: string
          /** @description Type of the link */
          type?: string
    
          name?: string
          slug?: string
    
          cbaId?: number | null
    
          content?: string
    
          contributorIds?: number[]
          id?: number
          imageId?: number | null
    
          links?: components['schemas']['NoteLink'][]
    
          ownerId?: number
          playlistId?: number
    
          tags?: string
          timeslotId?: number
    
          title?: string
    
          createdAt?: string
          createdBy?: string
    
          /** Format: date-time */
    
          updatedAt?: string | null
          updatedBy?: string
    
        }
        PatchedRRule: {
          id?: number
          name?: string
    
        }
        PatchedScheduleCreateUpdateRequest: {
          schedule?: components['schemas']['ScheduleInRequest']
          solutions?: {
            [key: string]:
              | (
                  | 'theirs'
                  | 'ours'
                  | 'theirs-start'
                  | 'ours-start'
                  | 'theirs-end'
                  | 'ours-end'
                  | 'theirs-both'
                  | 'ours-both'
                )
              | undefined
          }
          notes?: {
            [key: string]: number | undefined
          }
          playlists?: {
            [key: string]: number | undefined
          }
        }
        PatchedShow: {
    
          categoryIds?: number[]
          cbaSeriesId?: number | null
          defaultPlaylistId?: number | null
          description?: string
    
          /** Format: email */
          email?: string | null
    
          fundingCategoryId?: number
          hostIds?: number[]
    
          id?: number
    
          imageId?: number | null
          internalNote?: string
          isActive?: boolean
          isPublic?: boolean
          languageIds?: number[]
    
          links?: components['schemas']['HostLink'][]
    
          logoId?: number | null
          musicFocusIds?: number[]
    
          name?: string
    
          ownerIds?: number[]
          predecessorId?: number | null
          shortDescription?: string
    
          slug?: string
    
          topicIds?: number[]
          typeId?: number
    
          /** Format: date-time */
    
          createdAt?: string
          createdBy?: string
    
          /** Format: date-time */
    
          updatedAt?: string | null
          updatedBy?: string
    
          memo?: string
          playlistId?: number | null
          repetitionOfId?: number | null
    
          /** Format: date-time */
          end?: string
    
          id?: number
    
          noteId?: number | null
    
          scheduleId?: number
    
          showId?: string
    
          /** Format: date-time */
          start?: string
    
          name?: string
          slug?: string
    
          name?: string
          slug?: string
    
           * E-Mail-Adresse
    
          /** Vorname */
    
          id?: number
    
           * Aktiv
           * @description Legt fest, ob dieser Benutzer aktiv ist. Kann deaktiviert werden, anstatt Benutzer zu löschen.
    
           * Mitarbeiter-Status
           * @description Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann.
    
           * Administrator-Status
           * @description Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen.
    
          isSuperuser?: boolean
    
          /** Nachname */
    
          /** Passwort */
    
          password?: string
          profile?: components['schemas']['Profile']
    
          /**
           * Benutzername
           * @description Erforderlich. 150 Zeichen oder weniger. Nur Buchstaben, Ziffern und @/./+/-/_.
           */
          username?: string
    
          cbaUsername?: string
    
          cbaUserToken?: string
    
          /** Format: date-time */
    
          createdAt: string
          createdBy: string
    
          /** Format: date-time */
    
          updatedAt: string | null
          updatedBy: string
    
        }
        ProjectedTimeSlot: {
          hash: string
          /** Format: date-time */
          start: string
          /** Format: date-time */
          end: string
          collisions: components['schemas']['Collision'][]
          error: string | null
    
          solutionChoices: components['schemas']['SolutionChoicesEnum'][]
    
          name: string
        }
        Schedule: {
          /** @description Whether to add add_days_no but skipping the weekends. E.g. if weekday is Friday, the date returned will be the next Monday. */
    
          addBusinessDaysOnly?: boolean
    
          /** @description Add a number of days to the generated dates. This can be useful for repetitions, like 'On the following day'. */
    
          addDaysNo?: number | null
    
          /**
           * @description Number of the Weekday.
           *
           * * `0` - Monday