GET /api/v1/schema/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/vnd.oai.openapi
Vary: Accept

openapi: 3.0.2
info:
  title: FragDenStaat API
  version: ''
paths:
  /api/v1/feature/:
    get:
      operationId: listFeatures
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Feature'
            text/csv:
              schema:
                type: object
                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/Feature'
          description: ''
      tags:
      - api
  /api/v1/feature/{id}/:
    get:
      operationId: retrieveFeature
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this feature.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Feature'
            text/csv:
              schema:
                $ref: '#/components/schemas/Feature'
          description: ''
      tags:
      - api
  /api/v1/governmentplan/:
    get:
      operationId: listGovernmentPlans
      description: ''
      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: government
        required: false
        in: query
        description: government
        schema:
          type: string
      - name: status
        required: false
        in: query
        description: status
        schema:
          type: string
          enum:
          - not_started
          - started
          - partially_implemented
          - implemented
          - deferred
      - name: rating
        required: false
        in: query
        description: rating
        schema:
          type: string
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
      - name: properties
        required: false
        in: query
        description: properties
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/GovernmentPlan'
            text/csv:
              schema:
                type: object
                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/GovernmentPlan'
          description: ''
      tags:
      - api
  /api/v1/governmentplan/{id}/:
    get:
      operationId: retrieveGovernmentPlan
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: government
        required: false
        in: query
        description: government
        schema:
          type: string
      - name: status
        required: false
        in: query
        description: status
        schema:
          type: string
          enum:
          - not_started
          - started
          - partially_implemented
          - implemented
          - deferred
      - name: rating
        required: false
        in: query
        description: rating
        schema:
          type: string
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
      - name: properties
        required: false
        in: query
        description: properties
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GovernmentPlan'
            text/csv:
              schema:
                $ref: '#/components/schemas/GovernmentPlan'
          description: ''
      tags:
      - api
  /api/v1/articletag/:
    get:
      operationId: listArticleTags
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/ArticleTag'
            text/csv:
              schema:
                type: object
                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/ArticleTag'
          description: ''
      tags:
      - api
  /api/v1/articletag/autocomplete/:
    get:
      operationId: autocompleteArticleTag
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleTag'
            text/csv:
              schema:
                $ref: '#/components/schemas/ArticleTag'
          description: ''
      tags:
      - api
  /api/v1/articletag/{id}/:
    get:
      operationId: retrieveArticleTag
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this Artikel-Schlagwort.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleTag'
            text/csv:
              schema:
                $ref: '#/components/schemas/ArticleTag'
          description: ''
      tags:
      - api
  /api/v1/venue/:
    get:
      operationId: listVenueViewSets
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
            text/csv:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - api
    post:
      operationId: createVenueViewSet
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema: {}
          application/x-www-form-urlencoded:
            schema: {}
          multipart/form-data:
            schema: {}
      responses:
        '201':
          content:
            application/json:
              schema: {}
            text/csv:
              schema: {}
          description: ''
      tags:
      - api
  /api/v1/venue/{id}/:
    get:
      operationId: retrieveVenueViewSet
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
            text/csv:
              schema: {}
          description: ''
      tags:
      - api
  /api/v1/campaigninformationobject/:
    get:
      operationId: listInformationObjects
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/InformationObject'
            text/csv:
              schema:
                type: object
                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/InformationObject'
          description: ''
      tags:
      - api
  /api/v1/campaigninformationobject/{id}/:
    get:
      operationId: retrieveInformationObject
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InformationObject'
            text/csv:
              schema:
                $ref: '#/components/schemas/InformationObject'
          description: ''
      tags:
      - api
  /api/v1/request/:
    get:
      operationId: listFoiRequestLists
      description: ''
      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: user
        required: false
        in: query
        description: user
        schema:
          type: string
      - name: is_foi
        required: false
        in: query
        description: is_foi
        schema:
          type: string
      - name: checked
        required: false
        in: query
        description: checked
        schema:
          type: string
      - name: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: tags
        required: false
        in: query
        description: tags
        schema:
          type: string
      - name: resolution
        required: false
        in: query
        description: resolution
        schema:
          type: string
          enum:
          - successful
          - partially_successful
          - not_held
          - refused
          - user_withdrew_costs
          - user_withdrew
      - name: status
        required: false
        in: query
        description: status
        schema:
          type: string
          enum:
          - awaiting_user_confirmation
          - publicbody_needed
          - awaiting_publicbody_confirmation
          - awaiting_response
          - awaiting_classification
          - asleep
          - resolved
      - name: reference
        required: false
        in: query
        description: reference
        schema:
          type: string
      - name: classification
        required: false
        in: query
        description: classification
        schema:
          type: string
      - name: public_body
        required: false
        in: query
        description: public_body
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: costs
        required: false
        in: query
        description: costs
        schema:
          type: string
      - name: project
        required: false
        in: query
        description: project
        schema:
          type: string
      - name: campaign
        required: false
        in: query
        description: campaign
        schema:
          type: string
      - name: law
        required: false
        in: query
        description: law
        schema:
          type: string
      - name: categories
        required: false
        in: query
        description: categories
        schema:
          type: string
      - name: follower
        required: false
        in: query
        description: follower
        schema:
          type: string
      - name: created_at_after
        required: false
        in: query
        description: created_at_after
        schema:
          type: string
      - name: created_at_before
        required: false
        in: query
        description: created_at_before
        schema:
          type: string
      - name: has_same
        required: false
        in: query
        description: has_same
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/FoiRequestList'
            text/csv:
              schema:
                type: object
                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/FoiRequestList'
          description: ''
      tags:
      - api
  /api/v1/request/search/:
    get:
      operationId: searchFoiRequestList
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiRequestList'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiRequestList'
          description: ''
      tags:
      - api
  /api/v1/request/tags/autocomplete/:
    get:
      operationId: tagsAutocompleteFoiRequestList
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiRequestList'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiRequestList'
          description: ''
      tags:
      - api
  /api/v1/request/{id}/:
    get:
      operationId: retrieveFoiRequestDetail
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: user
        required: false
        in: query
        description: user
        schema:
          type: string
      - name: is_foi
        required: false
        in: query
        description: is_foi
        schema:
          type: string
      - name: checked
        required: false
        in: query
        description: checked
        schema:
          type: string
      - name: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: tags
        required: false
        in: query
        description: tags
        schema:
          type: string
      - name: resolution
        required: false
        in: query
        description: resolution
        schema:
          type: string
          enum:
          - successful
          - partially_successful
          - not_held
          - refused
          - user_withdrew_costs
          - user_withdrew
      - name: status
        required: false
        in: query
        description: status
        schema:
          type: string
          enum:
          - awaiting_user_confirmation
          - publicbody_needed
          - awaiting_publicbody_confirmation
          - awaiting_response
          - awaiting_classification
          - asleep
          - resolved
      - name: reference
        required: false
        in: query
        description: reference
        schema:
          type: string
      - name: classification
        required: false
        in: query
        description: classification
        schema:
          type: string
      - name: public_body
        required: false
        in: query
        description: public_body
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: costs
        required: false
        in: query
        description: costs
        schema:
          type: string
      - name: project
        required: false
        in: query
        description: project
        schema:
          type: string
      - name: campaign
        required: false
        in: query
        description: campaign
        schema:
          type: string
      - name: law
        required: false
        in: query
        description: law
        schema:
          type: string
      - name: categories
        required: false
        in: query
        description: categories
        schema:
          type: string
      - name: follower
        required: false
        in: query
        description: follower
        schema:
          type: string
      - name: created_at_after
        required: false
        in: query
        description: created_at_after
        schema:
          type: string
      - name: created_at_before
        required: false
        in: query
        description: created_at_before
        schema:
          type: string
      - name: has_same
        required: false
        in: query
        description: has_same
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiRequestDetail'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiRequestDetail'
          description: ''
      tags:
      - api
  /api/v1/message/:
    get:
      operationId: listFoiMessages
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/FoiMessage'
            text/csv:
              schema:
                type: object
                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/FoiMessage'
          description: ''
      tags:
      - api
  /api/v1/message/{id}/:
    get:
      operationId: retrieveFoiMessage
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiMessage'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiMessage'
          description: ''
      tags:
      - api
  /api/v1/attachment/:
    get:
      operationId: listFoiAttachments
      description: ''
      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: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: filetype
        required: false
        in: query
        description: filetype
        schema:
          type: string
      - name: approved
        required: false
        in: query
        description: approved
        schema:
          type: string
      - name: is_redacted
        required: false
        in: query
        description: is_redacted
        schema:
          type: string
      - name: belongs_to
        required: false
        in: query
        description: belongs_to
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/FoiAttachment'
            text/csv:
              schema:
                type: object
                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/FoiAttachment'
          description: ''
      tags:
      - api
  /api/v1/attachment/{id}/:
    get:
      operationId: retrieveFoiAttachment
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: filetype
        required: false
        in: query
        description: filetype
        schema:
          type: string
      - name: approved
        required: false
        in: query
        description: approved
        schema:
          type: string
      - name: is_redacted
        required: false
        in: query
        description: is_redacted
        schema:
          type: string
      - name: belongs_to
        required: false
        in: query
        description: belongs_to
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiAttachment'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiAttachment'
          description: ''
      tags:
      - api
  /api/v1/publicbody/:
    get:
      operationId: listPublicBodyLists
      description: ''
      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: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: classification_id
        required: false
        in: query
        description: classification_id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: classification
        required: false
        in: query
        description: classification
        schema:
          type: string
      - name: category
        required: false
        in: query
        description: category
        schema:
          type: string
      - name: regions
        required: false
        in: query
        description: regions
        schema:
          type: string
      - name: lnglat
        required: false
        in: query
        description: lnglat
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/PublicBodyList'
            text/csv:
              schema:
                type: object
                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/PublicBodyList'
            application/javascript:
              schema:
                type: object
                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/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/autocomplete/:
    get:
      operationId: autocompletePublicBodyList
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/reconciliation/:
    get:
      operationId: reconciliationPublicBodyList
      description: This is a OpenRefine Reconciliation API endpoint
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationPublicBodyList
      description: This is a OpenRefine Reconciliation API endpoint
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/reconciliation-flyout/:
    get:
      operationId: reconciliationFlyoutEntityPublicBodyList
      description: Implements OpenRefine Flyout Entry Point
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationFlyoutEntityPublicBodyList
      description: Implements OpenRefine Flyout Entry Point
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/reconciliation-propose-properties/:
    get:
      operationId: reconciliationProposePropertiesPublicBodyList
      description: Implements OpenRefine Data Extension API
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationProposePropertiesPublicBodyList
      description: Implements OpenRefine Data Extension API
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/reconciliation-suggest-service/:
    get:
      operationId: reconciliationSuggestServicePublicBodyList
      description: Implements OpenRefine Suggest Entry Point
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationSuggestServicePublicBodyList
      description: Implements OpenRefine Suggest Entry Point
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublicBodyList'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/search/:
    get:
      operationId: searchPublicBodyList
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBodyList'
          description: ''
      tags:
      - api
  /api/v1/publicbody/{id}/:
    get:
      operationId: retrievePublicBody
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: classification_id
        required: false
        in: query
        description: classification_id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: classification
        required: false
        in: query
        description: classification
        schema:
          type: string
      - name: category
        required: false
        in: query
        description: category
        schema:
          type: string
      - name: regions
        required: false
        in: query
        description: regions
        schema:
          type: string
      - name: lnglat
        required: false
        in: query
        description: lnglat
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBody'
            text/csv:
              schema:
                $ref: '#/components/schemas/PublicBody'
            application/javascript:
              schema:
                $ref: '#/components/schemas/PublicBody'
          description: ''
      tags:
      - api
  /api/v1/category/:
    get:
      operationId: listCategorys
      description: ''
      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: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: is_topic
        required: false
        in: query
        description: is_topic
        schema:
          type: string
      - name: depth
        required: false
        in: query
        description: depth
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: parent
        required: false
        in: query
        description: parent
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Category'
            text/csv:
              schema:
                type: object
                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/Category'
          description: ''
      tags:
      - api
  /api/v1/category/autocomplete/:
    get:
      operationId: autocompleteCategory
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
            text/csv:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
      tags:
      - api
  /api/v1/category/{id}/:
    get:
      operationId: retrieveCategory
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this Kategorie.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: is_topic
        required: false
        in: query
        description: is_topic
        schema:
          type: string
      - name: depth
        required: false
        in: query
        description: depth
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: parent
        required: false
        in: query
        description: parent
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
            text/csv:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
      tags:
      - api
  /api/v1/classification/:
    get:
      operationId: listClassifications
      description: ''
      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: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: depth
        required: false
        in: query
        description: depth
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: parent
        required: false
        in: query
        description: parent
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Classification'
            text/csv:
              schema:
                type: object
                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/Classification'
          description: ''
      tags:
      - api
  /api/v1/classification/{id}/:
    get:
      operationId: retrieveClassification
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: "A unique integer value identifying this Beh\xF6rdentyp."
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: depth
        required: false
        in: query
        description: depth
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: parent
        required: false
        in: query
        description: parent
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Classification'
            text/csv:
              schema:
                $ref: '#/components/schemas/Classification'
          description: ''
      tags:
      - api
  /api/v1/jurisdiction/:
    get:
      operationId: listJurisdictions
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Jurisdiction'
            text/csv:
              schema:
                type: object
                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/Jurisdiction'
          description: ''
      tags:
      - api
  /api/v1/jurisdiction/{id}/:
    get:
      operationId: retrieveJurisdiction
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: "A unique integer value identifying this Zust\xE4ndigkeitsbereich."
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Jurisdiction'
            text/csv:
              schema:
                $ref: '#/components/schemas/Jurisdiction'
          description: ''
      tags:
      - api
  /api/v1/law/:
    get:
      operationId: listFoiLaws
      description: ''
      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: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: mediator
        required: false
        in: query
        description: mediator
        schema:
          type: string
      - name: id
        required: false
        in: query
        description: id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: meta
        required: false
        in: query
        description: meta
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/FoiLaw'
            text/csv:
              schema:
                type: object
                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/FoiLaw'
          description: ''
      tags:
      - api
  /api/v1/law/autocomplete/:
    get:
      operationId: autocompleteFoiLaw
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiLaw'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiLaw'
          description: ''
      tags:
      - api
  /api/v1/law/{id}/:
    get:
      operationId: retrieveFoiLaw
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this Informationsfreiheitsgesetz.
        schema:
          type: string
      - name: jurisdiction
        required: false
        in: query
        description: jurisdiction
        schema:
          type: string
      - name: mediator
        required: false
        in: query
        description: mediator
        schema:
          type: string
      - name: id
        required: false
        in: query
        description: id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: meta
        required: false
        in: query
        description: meta
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FoiLaw'
            text/csv:
              schema:
                $ref: '#/components/schemas/FoiLaw'
          description: ''
      tags:
      - api
  /api/v1/georegion/:
    get:
      operationId: listGeoRegions
      description: ''
      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: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: level
        required: false
        in: query
        description: level
        schema:
          type: string
      - name: kind
        required: false
        in: query
        description: kind
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: id
        required: false
        in: query
        description: id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      - name: latlng
        required: false
        in: query
        description: latlng
        schema:
          type: string
      - name: region_identifier
        required: false
        in: query
        description: region_identifier
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/GeoRegion'
            text/csv:
              schema:
                type: object
                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/GeoRegion'
            application/javascript:
              schema:
                type: object
                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/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/autocomplete/:
    get:
      operationId: autocompleteGeoRegion
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/reconciliation/:
    get:
      operationId: reconciliationGeoRegion
      description: This is a OpenRefine Reconciliation API endpoint
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationGeoRegion
      description: This is a OpenRefine Reconciliation API endpoint
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GeoRegion'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/reconciliation-flyout/:
    get:
      operationId: reconciliationFlyoutEntityGeoRegion
      description: Implements OpenRefine Flyout Entry Point
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationFlyoutEntityGeoRegion
      description: Implements OpenRefine Flyout Entry Point
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GeoRegion'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/reconciliation-propose-properties/:
    get:
      operationId: reconciliationProposePropertiesGeoRegion
      description: Implements OpenRefine Data Extension API
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationProposePropertiesGeoRegion
      description: Implements OpenRefine Data Extension API
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GeoRegion'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/reconciliation-suggest-service/:
    get:
      operationId: reconciliationSuggestServiceGeoRegion
      description: Implements OpenRefine Suggest Entry Point
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
    post:
      operationId: reconciliationSuggestServiceGeoRegion
      description: Implements OpenRefine Suggest Entry Point
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GeoRegion'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GeoRegion'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegion'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegion'
          description: ''
      tags:
      - api
  /api/v1/georegion/{id}/:
    get:
      operationId: retrieveGeoRegion
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this Geographische Region.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: name
        schema:
          type: string
      - name: level
        required: false
        in: query
        description: level
        schema:
          type: string
      - name: kind
        required: false
        in: query
        description: kind
        schema:
          type: string
      - name: slug
        required: false
        in: query
        description: slug
        schema:
          type: string
      - name: id
        required: false
        in: query
        description: id
        schema:
          type: string
      - name: q
        required: false
        in: query
        description: q
        schema:
          type: string
      - name: ancestor
        required: false
        in: query
        description: ancestor
        schema:
          type: string
      - name: latlng
        required: false
        in: query
        description: latlng
        schema:
          type: string
      - name: region_identifier
        required: false
        in: query
        description: region_identifier
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRegionDetail'
            text/csv:
              schema:
                $ref: '#/components/schemas/GeoRegionDetail'
            application/javascript:
              schema:
                $ref: '#/components/schemas/GeoRegionDetail'
          description: ''
      tags:
      - api
  /api/v1/following/:
    get:
      operationId: listFoiRequestFollows
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/FoiRequestFollow'
            text/csv:
              schema:
                type: object
                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/FoiRequestFollow'
          description: ''
      tags:
      - api
  /api/v1/campaign/:
    get:
      operationId: listCampaigns
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Campaign'
            text/csv:
              schema:
                type: object
                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/Campaign'
          description: ''
      tags:
      - api
  /api/v1/campaign/{id}/:
    get:
      operationId: retrieveCampaign
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this Kampagne.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
            text/csv:
              schema:
                $ref: '#/components/schemas/Campaign'
          description: ''
      tags:
      - api
  /api/v1/document/:
    get:
      operationId: listDocuments
      description: ''
      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: directory
        required: false
        in: query
        description: directory
        schema:
          type: string
      - name: collection
        required: false
        in: query
        description: collection
        schema:
          type: string
      - name: portal
        required: false
        in: query
        description: portal
        schema:
          type: string
      - name: tag
        required: false
        in: query
        description: tag
        schema:
          type: string
      - name: ids
        required: false
        in: query
        description: ids
        schema:
          type: string
      - name: created_at
        required: false
        in: query
        description: created_at
        schema:
          type: string
      - name: publicbody
        required: false
        in: query
        description: publicbody
        schema:
          type: string
      - name: foirequest
        required: false
        in: query
        description: foirequest
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Document'
            text/csv:
              schema:
                type: object
                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/Document'
          description: ''
      tags:
      - api
  /api/v1/document/oembed/:
    get:
      operationId: oembedDocument
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
            text/csv:
              schema:
                $ref: '#/components/schemas/Document'
          description: ''
      tags:
      - api
  /api/v1/document/{id}/:
    get:
      operationId: retrieveDocumentDetail
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: directory
        required: false
        in: query
        description: directory
        schema:
          type: string
      - name: collection
        required: false
        in: query
        description: collection
        schema:
          type: string
      - name: portal
        required: false
        in: query
        description: portal
        schema:
          type: string
      - name: tag
        required: false
        in: query
        description: tag
        schema:
          type: string
      - name: ids
        required: false
        in: query
        description: ids
        schema:
          type: string
      - name: created_at
        required: false
        in: query
        description: created_at
        schema:
          type: string
      - name: publicbody
        required: false
        in: query
        description: publicbody
        schema:
          type: string
      - name: foirequest
        required: false
        in: query
        description: foirequest
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentDetail'
            text/csv:
              schema:
                $ref: '#/components/schemas/DocumentDetail'
          description: ''
      tags:
      - api
    put:
      operationId: updateUpdateDocument
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: directory
        required: false
        in: query
        description: directory
        schema:
          type: string
      - name: collection
        required: false
        in: query
        description: collection
        schema:
          type: string
      - name: portal
        required: false
        in: query
        description: portal
        schema:
          type: string
      - name: tag
        required: false
        in: query
        description: tag
        schema:
          type: string
      - name: ids
        required: false
        in: query
        description: ids
        schema:
          type: string
      - name: created_at
        required: false
        in: query
        description: created_at
        schema:
          type: string
      - name: publicbody
        required: false
        in: query
        description: publicbody
        schema:
          type: string
      - name: foirequest
        required: false
        in: query
        description: foirequest
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDocument'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateDocument'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateDocument'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDocument'
            text/csv:
              schema:
                $ref: '#/components/schemas/UpdateDocument'
          description: ''
      tags:
      - api
    patch:
      operationId: partialUpdateDocument
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: directory
        required: false
        in: query
        description: directory
        schema:
          type: string
      - name: collection
        required: false
        in: query
        description: collection
        schema:
          type: string
      - name: portal
        required: false
        in: query
        description: portal
        schema:
          type: string
      - name: tag
        required: false
        in: query
        description: tag
        schema:
          type: string
      - name: ids
        required: false
        in: query
        description: ids
        schema:
          type: string
      - name: created_at
        required: false
        in: query
        description: created_at
        schema:
          type: string
      - name: publicbody
        required: false
        in: query
        description: publicbody
        schema:
          type: string
      - name: foirequest
        required: false
        in: query
        description: foirequest
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Document'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Document'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Document'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
            text/csv:
              schema:
                $ref: '#/components/schemas/Document'
          description: ''
      tags:
      - api
  /api/v1/documentcollection/:
    get:
      operationId: listDocumentCollections
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/DocumentCollection'
            text/csv:
              schema:
                type: object
                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/DocumentCollection'
          description: ''
      tags:
      - api
  /api/v1/documentcollection/oembed/:
    get:
      operationId: oembedDocumentCollection
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentCollection'
            text/csv:
              schema:
                $ref: '#/components/schemas/DocumentCollection'
          description: ''
      tags:
      - api
  /api/v1/documentcollection/{id}/:
    get:
      operationId: retrieveDocumentCollection
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentCollection'
            text/csv:
              schema:
                $ref: '#/components/schemas/DocumentCollection'
          description: ''
      tags:
      - api
  /api/v1/page/:
    get:
      operationId: listPages
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/Page'
            text/csv:
              schema:
                type: object
                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/Page'
            application/xml:
              schema:
                type: object
                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/Page'
          description: ''
      tags:
      - api
  /api/v1/pageannotation/:
    get:
      operationId: listPageAnnotations
      description: ''
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                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/PageAnnotation'
            text/csv:
              schema:
                type: object
                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/PageAnnotation'
          description: ''
      tags:
      - api
    post:
      operationId: createCreatePageAnnotation
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePageAnnotation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreatePageAnnotation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreatePageAnnotation'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePageAnnotation'
            text/csv:
              schema:
                $ref: '#/components/schemas/CreatePageAnnotation'
          description: ''
      tags:
      - api
  /api/v1/pageannotation/{id}/:
    get:
      operationId: retrievePageAnnotation
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAnnotation'
            text/csv:
              schema:
                $ref: '#/components/schemas/PageAnnotation'
          description: ''
      tags:
      - api
    delete:
      operationId: destroyPageAnnotation
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '204':
          description: ''
      tags:
      - api
  /api/v1/schema/swagger-ui/:
    get:
      operationId: listSpectacularSwaggers
      description: ''
      parameters: []
      responses:
        '200':
          content:
            text/html:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - api
  /api/v1/campaigninformationobject/report/:
    post:
      operationId: reportInformationObject
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InformationObject'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InformationObject'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InformationObject'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InformationObject'
            text/csv:
              schema:
                $ref: '#/components/schemas/InformationObject'
          description: ''
      tags:
      - api
  /api/v1/campaigninformationobject/subscribe/:
    post:
      operationId: subscribeInformationObject
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InformationObject'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InformationObject'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InformationObject'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InformationObject'
            text/csv:
              schema:
                $ref: '#/components/schemas/InformationObject'
          description: ''
      tags:
      - api
  /api/v1/following/{id}/:
    delete:
      operationId: destroyFoiRequestFollow
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '204':
          description: ''
      tags:
      - api
components:
  schemas:
    Feature:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 500
        question:
          type: string
          maxLength: 500
        description:
          type: string
        documents:
          type: string
          readOnly: true
      required:
      - name
      - question
    GovernmentPlan:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        site_url:
          type: string
        government:
          type: integer
        title:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        quote:
          type: string
        due_date:
          type: string
          format: date
          nullable: true
        measure:
          type: string
          maxLength: 255
        status:
          enum:
          - not_started
          - started
          - partially_implemented
          - implemented
          - deferred
          type: string
        rating:
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          type: integer
          nullable: true
          minimum: -2147483648
          maximum: 2147483647
        properties:
          type: object
        updates:
          type: string
          readOnly: true
      required:
      - site_url
      - government
      - title
      - slug
    ArticleTag:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
        slug:
          type: string
          pattern: ^[-\w]+\z
          maxLength: 100
      required:
      - name
      - slug
    InformationObject:
      type: object
      properties:
        title:
          type: string
          readOnly: true
        subtitle:
          type: string
          readOnly: true
        address:
          type: string
        campaign:
          type: integer
        lat:
          type: number
        lng:
          type: number
        request_url:
          type: string
          readOnly: true
        foirequests:
          type: array
          items:
            type: integer
        ident:
          type: string
        resolution:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        foirequest:
          type: string
          readOnly: true
        public:
          type: string
          readOnly: true
        categories:
          type: string
          readOnly: true
      required:
      - campaign
    FoiRequestList:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        url:
          type: string
          readOnly: true
        jurisdiction:
          type: string
          readOnly: true
        is_foi:
          type: boolean
        checked:
          type: boolean
        refusal_reason:
          type: string
          maxLength: 1024
        costs:
          type: string
          readOnly: true
        public:
          type: boolean
        law:
          type: string
          readOnly: true
        description:
          type: string
        redacted_description:
          type: string
          readOnly: true
        summary:
          type: string
        same_as_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        same_as:
          type: string
          readOnly: true
        due_date:
          type: string
          format: date-time
          nullable: true
        resolved_on:
          type: string
          format: date-time
          nullable: true
        last_message:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        status:
          enum:
          - awaiting_user_confirmation
          - publicbody_needed
          - awaiting_publicbody_confirmation
          - awaiting_response
          - awaiting_classification
          - asleep
          - resolved
          type: string
        public_body:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
            name:
              type: string
              maxLength: 255
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            other_names:
              type: string
            description:
              type: string
            url:
              type: string
              format: uri
              nullable: true
              maxLength: 500
              pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\
                .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\
                ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF\
                0-9])?(?:\\.(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-))*\\.(?!-)(?:[a-z\xA1\
                -\uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\\\
                s]*)?\\z"
            depth:
              type: integer
              maximum: 32767
              minimum: -32768
            classification:
              type: string
              readOnly: true
            email:
              type: string
              format: email
              maxLength: 254
            contact:
              type: string
            address:
              type: string
            fax:
              type: string
              maxLength: 50
            request_note:
              type: string
            number_of_requests:
              type: integer
              maximum: 2147483647
              minimum: -2147483648
            site_url:
              type: string
            jurisdiction:
              type: string
              readOnly: true
            request_note_html:
              type: string
              readOnly: true
            geo:
              type: string
              readOnly: true
            last_modified_at:
              type: string
          required:
          - id
          - name
          - slug
          - site_url
          - last_modified_at
          readOnly: true
        resolution:
          enum:
          - successful
          - partially_successful
          - not_held
          - refused
          - user_withdrew_costs
          - user_withdrew
          type: string
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        title:
          type: string
          maxLength: 255
        reference:
          type: string
          maxLength: 255
        user:
          type: string
          readOnly: true
        project:
          type: string
          readOnly: true
        campaign:
          type: string
          readOnly: true
        tags:
          type: string
      required:
      - description
      - status
      - slug
      - title
      - tags
    FoiRequestDetail:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        url:
          type: string
          readOnly: true
        jurisdiction:
          type: string
          readOnly: true
        is_foi:
          type: boolean
        checked:
          type: boolean
        refusal_reason:
          type: string
          maxLength: 1024
        costs:
          type: string
          readOnly: true
        public:
          type: boolean
        law:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
              readOnly: true
            name:
              type: string
              readOnly: true
            slug:
              type: string
              readOnly: true
            description:
              type: string
              readOnly: true
            long_description:
              type: string
              readOnly: true
            law_type:
              type: string
              maxLength: 255
            created:
              type: string
              format: date
              nullable: true
            request_note:
              type: string
              readOnly: true
            request_note_html:
              type: string
              readOnly: true
            meta:
              type: boolean
            site_url:
              type: string
              readOnly: true
            jurisdiction:
              type: string
              readOnly: true
            email_only:
              type: boolean
            mediator:
              type: string
              readOnly: true
            priority:
              type: integer
              maximum: 32767
              minimum: -32768
            url:
              type: string
              maxLength: 255
            max_response_time:
              type: integer
              maximum: 2147483647
              minimum: -2147483648
              nullable: true
            requires_signature:
              type: boolean
            max_response_time_unit:
              enum:
              - day
              - working_day
              - month_de
              type: string
            letter_start:
              type: string
              readOnly: true
            letter_end:
              type: string
              readOnly: true
            last_modified_at:
              type: string
            refusal_reasons:
              type: string
              readOnly: true
            combined:
              type: array
              items:
                type: string
              readOnly: true
          required:
          - last_modified_at
          readOnly: true
        description:
          type: string
        redacted_description:
          type: string
          readOnly: true
        summary:
          type: string
        same_as_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        same_as:
          type: string
          readOnly: true
        due_date:
          type: string
          format: date-time
          nullable: true
        resolved_on:
          type: string
          format: date-time
          nullable: true
        last_message:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        status:
          enum:
          - awaiting_user_confirmation
          - publicbody_needed
          - awaiting_publicbody_confirmation
          - awaiting_response
          - awaiting_classification
          - asleep
          - resolved
          type: string
        public_body:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
            name:
              type: string
              maxLength: 255
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            other_names:
              type: string
            description:
              type: string
            url:
              type: string
              format: uri
              nullable: true
              maxLength: 500
              pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\
                .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\
                ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF\
                0-9])?(?:\\.(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-))*\\.(?!-)(?:[a-z\xA1\
                -\uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\\\
                s]*)?\\z"
            parent:
              type: string
              readOnly: true
            root:
              type: string
              readOnly: true
            depth:
              type: integer
              maximum: 32767
              minimum: -32768
            classification:
              type: object
              properties:
                id:
                  type: integer
                  readOnly: true
                name:
                  type: string
                  maxLength: 255
                slug:
                  type: string
                  maxLength: 255
                  pattern: ^[-a-zA-Z0-9_]+$
                depth:
                  type: integer
                  maximum: 2147483647
                  minimum: 0
              required:
              - name
              - slug
              - depth
              readOnly: true
            categories:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    readOnly: true
                  name:
                    type: string
                    maxLength: 100
                  slug:
                    type: string
                    pattern: ^[-\w]+\z
                    maxLength: 100
                  is_topic:
                    type: boolean
                  depth:
                    type: integer
                    maximum: 2147483647
                    minimum: 0
                required:
                - name
                - slug
                - depth
              readOnly: true
            email:
              type: string
              format: email
              maxLength: 254
            contact:
              type: string
            address:
              type: string
            fax:
              type: string
              maxLength: 50
            request_note:
              type: string
            number_of_requests:
              type: integer
              maximum: 2147483647
              minimum: -2147483648
            site_url:
              type: string
            request_note_html:
              type: string
              readOnly: true
            jurisdiction:
              type: object
              properties:
                resource_uri:
                  type: string
                  readOnly: true
                id:
                  type: integer
                  readOnly: true
                name:
                  type: string
                  maxLength: 255
                rank:
                  type: integer
                  maximum: 32767
                  minimum: -32768
                description:
                  type: string
                slug:
                  type: string
                  maxLength: 255
                  pattern: ^[-a-zA-Z0-9_]+$
                site_url:
                  type: string
                region:
                  type: string
                  readOnly: true
                last_modified_at:
                  type: string
                  format: date-time
                  readOnly: true
              required:
              - name
              - slug
              - site_url
              readOnly: true
            laws:
              type: array
              items:
                type: object
                properties:
                  resource_uri:
                    type: string
                    readOnly: true
                  id:
                    type: integer
                    readOnly: true
                  name:
                    type: string
                    readOnly: true
                  slug:
                    type: string
                    readOnly: true
                  description:
                    type: string
                    readOnly: true
                  long_description:
                    type: string
                    readOnly: true
                  law_type:
                    type: string
                    maxLength: 255
                  created:
                    type: string
                    format: date
                    nullable: true
                  request_note:
                    type: string
                    readOnly: true
                  request_note_html:
                    type: string
                    readOnly: true
                  meta:
                    type: boolean
                  site_url:
                    type: string
                    readOnly: true
                  jurisdiction:
                    type: string
                    readOnly: true
                  email_only:
                    type: boolean
                  mediator:
                    type: string
                    readOnly: true
                  priority:
                    type: integer
                    maximum: 32767
                    minimum: -32768
                  url:
                    type: string
                    maxLength: 255
                  max_response_time:
                    type: integer
                    maximum: 2147483647
                    minimum: -2147483648
                    nullable: true
                  requires_signature:
                    type: boolean
                  max_response_time_unit:
                    enum:
                    - day
                    - working_day
                    - month_de
                    type: string
                  letter_start:
                    type: string
                    readOnly: true
                  letter_end:
                    type: string
                    readOnly: true
                  last_modified_at:
                    type: string
                  refusal_reasons:
                    type: string
                    readOnly: true
                  combined:
                    type: array
                    items:
                      type: string
                    readOnly: true
                required:
                - last_modified_at
              readOnly: true
            regions:
              type: array
              items:
                type: string
              readOnly: true
            source_reference:
              type: string
              maxLength: 255
            alternative_emails:
              type: object
              nullable: true
            wikidata_item:
              type: string
              maxLength: 50
            extra_data:
              type: object
            geo:
              type: string
              readOnly: true
          required:
          - id
          - name
          - slug
          - site_url
          readOnly: true
        resolution:
          enum:
          - successful
          - partially_successful
          - not_held
          - refused
          - user_withdrew_costs
          - user_withdrew
          type: string
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        title:
          type: string
          maxLength: 255
        reference:
          type: string
          maxLength: 255
        user:
          type: string
          readOnly: true
        project:
          type: string
          readOnly: true
        campaign:
          type: string
          readOnly: true
        tags:
          type: string
        messages:
          type: string
          readOnly: true
      required:
      - description
      - status
      - slug
      - title
      - tags
    FoiMessage:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        url:
          type: string
        request:
          type: string
          readOnly: true
        sent:
          type: boolean
        is_response:
          type: boolean
        is_postal:
          type: string
          readOnly: true
        kind:
          enum:
          - email
          - post
          - fax
          - upload
          - phone
          - visit
          - import
          type: string
        is_escalation:
          type: boolean
        content_hidden:
          type: boolean
        sender_public_body:
          type: string
          readOnly: true
        recipient_public_body:
          type: string
          readOnly: true
        status:
          enum:
          - awaiting_user_confirmation
          - publicbody_needed
          - awaiting_publicbody_confirmation
          - awaiting_response
          - awaiting_classification
          - asleep
          - resolved
          type: string
          nullable: true
        timestamp:
          type: string
          format: date-time
        redacted:
          type: boolean
        not_publishable:
          type: boolean
        attachments:
          type: string
          readOnly: true
        subject:
          type: string
        content:
          type: string
        redacted_subject:
          type: string
          readOnly: true
        redacted_content:
          type: string
          readOnly: true
        sender:
          type: string
        status_name:
          type: string
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - url
      - subject
      - content
      - sender
      - status_name
    FoiAttachment:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        belongs_to:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        filetype:
          type: string
          maxLength: 100
        size:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        site_url:
          type: string
          readOnly: true
        anchor_url:
          type: string
          readOnly: true
        file_url:
          type: string
          readOnly: true
        pending:
          type: boolean
        is_converted:
          type: boolean
        converted:
          type: string
          readOnly: true
        approved:
          type: boolean
        can_approve:
          type: boolean
        redacted:
          type: string
          readOnly: true
        is_redacted:
          type: boolean
        can_redact:
          type: string
          readOnly: true
        can_delete:
          type: string
          readOnly: true
        is_pdf:
          type: string
          readOnly: true
        is_image:
          type: string
          readOnly: true
        is_irrelevant:
          type: string
          readOnly: true
        document:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
              readOnly: true
            site_url:
              type: string
              readOnly: true
            title:
              type: string
              maxLength: 500
            slug:
              type: string
              maxLength: 250
              pattern: ^[-a-zA-Z0-9_]+$
            description:
              type: string
            published_at:
              type: string
              format: date-time
              nullable: true
            num_pages:
              type: integer
              maximum: 2147483647
              minimum: 0
            public:
              type: boolean
            listed:
              type: boolean
            allow_annotation:
              type: boolean
            pending:
              type: boolean
            file_url:
              type: string
              readOnly: true
            file_size:
              type: integer
              maximum: 9223372036854775807
              minimum: -9223372036854775808
              format: int64
              nullable: true
            cover_image:
              type: string
            page_template:
              type: string
            outline:
              type: string
            properties:
              type: object
            uid:
              type: string
              format: uuid
              readOnly: true
            data:
              type: object
            pages_uri:
              type: string
              readOnly: true
            original:
              type: string
              readOnly: true
            foirequest:
              type: string
              readOnly: true
            publicbody:
              type: string
              readOnly: true
            last_modified_at:
              type: string
              readOnly: true
          required:
          - cover_image
          - page_template
      required:
      - name
      - document
    PublicBodyList:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        other_names:
          type: string
        description:
          type: string
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
          pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\
            .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\
            ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF0-9])?(?:\\\
            .(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-))*\\.(?!-)(?:[a-z\xA1-\uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\\\
            .?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\\s]*)?\\z"
        parent:
          type: string
          readOnly: true
        root:
          type: string
          readOnly: true
        depth:
          type: integer
          maximum: 32767
          minimum: -32768
        classification:
          type: object
          properties:
            id:
              type: integer
              readOnly: true
            name:
              type: string
              maxLength: 255
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            depth:
              type: integer
              maximum: 2147483647
              minimum: 0
          required:
          - name
          - slug
          - depth
          readOnly: true
        categories:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                readOnly: true
              name:
                type: string
                maxLength: 100
              slug:
                type: string
                pattern: ^[-\w]+\z
                maxLength: 100
              is_topic:
                type: boolean
              depth:
                type: integer
                maximum: 2147483647
                minimum: 0
            required:
            - name
            - slug
            - depth
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
        contact:
          type: string
        address:
          type: string
        fax:
          type: string
          maxLength: 50
        request_note:
          type: string
        number_of_requests:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        site_url:
          type: string
        request_note_html:
          type: string
          readOnly: true
        jurisdiction:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
              readOnly: true
            name:
              type: string
              maxLength: 255
            rank:
              type: integer
              maximum: 32767
              minimum: -32768
            description:
              type: string
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            site_url:
              type: string
            region:
              type: string
              readOnly: true
            last_modified_at:
              type: string
              format: date-time
              readOnly: true
          required:
          - name
          - slug
          - site_url
          readOnly: true
        laws:
          type: array
          items:
            type: string
          readOnly: true
        regions:
          type: array
          items:
            type: string
          readOnly: true
        source_reference:
          type: string
          maxLength: 255
        alternative_emails:
          type: object
          nullable: true
        wikidata_item:
          type: string
          maxLength: 50
        extra_data:
          type: object
        geo:
          type: string
          readOnly: true
      required:
      - id
      - name
      - slug
      - site_url
    PublicBody:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        other_names:
          type: string
        description:
          type: string
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
          pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\
            .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\
            ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF0-9])?(?:\\\
            .(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-))*\\.(?!-)(?:[a-z\xA1-\uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\\\
            .?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\\s]*)?\\z"
        parent:
          type: string
          readOnly: true
        root:
          type: string
          readOnly: true
        depth:
          type: integer
          maximum: 32767
          minimum: -32768
        classification:
          type: object
          properties:
            id:
              type: integer
              readOnly: true
            name:
              type: string
              maxLength: 255
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            depth:
              type: integer
              maximum: 2147483647
              minimum: 0
          required:
          - name
          - slug
          - depth
          readOnly: true
        categories:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                readOnly: true
              name:
                type: string
                maxLength: 100
              slug:
                type: string
                pattern: ^[-\w]+\z
                maxLength: 100
              is_topic:
                type: boolean
              depth:
                type: integer
                maximum: 2147483647
                minimum: 0
            required:
            - name
            - slug
            - depth
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
        contact:
          type: string
        address:
          type: string
        fax:
          type: string
          maxLength: 50
        request_note:
          type: string
        number_of_requests:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        site_url:
          type: string
        request_note_html:
          type: string
          readOnly: true
        jurisdiction:
          type: object
          properties:
            resource_uri:
              type: string
              readOnly: true
            id:
              type: integer
              readOnly: true
            name:
              type: string
              maxLength: 255
            rank:
              type: integer
              maximum: 32767
              minimum: -32768
            description:
              type: string
            slug:
              type: string
              maxLength: 255
              pattern: ^[-a-zA-Z0-9_]+$
            site_url:
              type: string
            region:
              type: string
              readOnly: true
            last_modified_at:
              type: string
              format: date-time
              readOnly: true
          required:
          - name
          - slug
          - site_url
          readOnly: true
        laws:
          type: array
          items:
            type: object
            properties:
              resource_uri:
                type: string
                readOnly: true
              id:
                type: integer
                readOnly: true
              name:
                type: string
                readOnly: true
              slug:
                type: string
                readOnly: true
              description:
                type: string
                readOnly: true
              long_description:
                type: string
                readOnly: true
              law_type:
                type: string
                maxLength: 255
              created:
                type: string
                format: date
                nullable: true
              request_note:
                type: string
                readOnly: true
              request_note_html:
                type: string
                readOnly: true
              meta:
                type: boolean
              site_url:
                type: string
                readOnly: true
              jurisdiction:
                type: string
                readOnly: true
              email_only:
                type: boolean
              mediator:
                type: string
                readOnly: true
              priority:
                type: integer
                maximum: 32767
                minimum: -32768
              url:
                type: string
                maxLength: 255
              max_response_time:
                type: integer
                maximum: 2147483647
                minimum: -2147483648
                nullable: true
              requires_signature:
                type: boolean
              max_response_time_unit:
                enum:
                - day
                - working_day
                - month_de
                type: string
              letter_start:
                type: string
                readOnly: true
              letter_end:
                type: string
                readOnly: true
              last_modified_at:
                type: string
              refusal_reasons:
                type: string
                readOnly: true
              combined:
                type: array
                items:
                  type: string
                readOnly: true
            required:
            - last_modified_at
          readOnly: true
        regions:
          type: array
          items:
            type: string
          readOnly: true
        source_reference:
          type: string
          maxLength: 255
        alternative_emails:
          type: object
          nullable: true
        wikidata_item:
          type: string
          maxLength: 50
        extra_data:
          type: object
        geo:
          type: string
          readOnly: true
      required:
      - id
      - name
      - slug
      - site_url
    Category:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
        slug:
          type: string
          pattern: ^[-\w]+\z
          maxLength: 100
        is_topic:
          type: boolean
        depth:
          type: integer
          maximum: 2147483647
          minimum: 0
        parent:
          type: string
          readOnly: true
        children:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - name
      - slug
      - depth
    Classification:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        depth:
          type: integer
          maximum: 2147483647
          minimum: 0
        parent:
          type: string
          readOnly: true
        children:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - name
      - slug
      - depth
    Jurisdiction:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        rank:
          type: integer
          maximum: 32767
          minimum: -32768
        description:
          type: string
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        site_url:
          type: string
        region:
          type: string
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - name
      - slug
      - site_url
    FoiLaw:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        slug:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        long_description:
          type: string
          readOnly: true
        law_type:
          type: string
          maxLength: 255
        created:
          type: string
          format: date
          nullable: true
        request_note:
          type: string
          readOnly: true
        request_note_html:
          type: string
          readOnly: true
        meta:
          type: boolean
        site_url:
          type: string
          readOnly: true
        jurisdiction:
          type: string
          readOnly: true
        email_only:
          type: boolean
        mediator:
          type: string
          readOnly: true
        priority:
          type: integer
          maximum: 32767
          minimum: -32768
        url:
          type: string
          maxLength: 255
        max_response_time:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        requires_signature:
          type: boolean
        max_response_time_unit:
          enum:
          - day
          - working_day
          - month_de
          type: string
        letter_start:
          type: string
          readOnly: true
        letter_end:
          type: string
          readOnly: true
        last_modified_at:
          type: string
        refusal_reasons:
          type: string
          readOnly: true
        combined:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - last_modified_at
    GeoRegion:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        kind:
          enum:
          - country
          - state
          - admin_district
          - district
          - admin_cooperation
          - municipality
          - borough
          - zipcode
          - admin_court_jurisdiction
          type: string
        kind_detail:
          type: string
          maxLength: 255
        level:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        region_identifier:
          type: string
          maxLength: 255
        global_identifier:
          type: string
          maxLength: 255
        area:
          type: number
        population:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        valid_on:
          type: string
          format: date-time
          nullable: true
        part_of:
          type: string
          readOnly: true
        centroid:
          type: string
          readOnly: true
      required:
      - name
      - slug
      - kind
    GeoRegionDetail:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 255
          pattern: ^[-a-zA-Z0-9_]+$
        kind:
          enum:
          - country
          - state
          - admin_district
          - district
          - admin_cooperation
          - municipality
          - borough
          - zipcode
          - admin_court_jurisdiction
          type: string
        kind_detail:
          type: string
          maxLength: 255
        level:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        region_identifier:
          type: string
          maxLength: 255
        global_identifier:
          type: string
          maxLength: 255
        area:
          type: number
        population:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        valid_on:
          type: string
          format: date-time
          nullable: true
        part_of:
          type: string
          readOnly: true
        centroid:
          type: string
          readOnly: true
        geom:
          type: string
          readOnly: true
        gov_seat:
          type: string
          readOnly: true
      required:
      - name
      - slug
      - kind
    FoiRequestFollow:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        request:
          type: string
          readOnly: true
        request_url:
          type: string
          readOnly: true
        timestamp:
          type: string
          format: date-time
        follow_count:
          type: integer
          readOnly: true
        follows:
          type: boolean
          readOnly: true
        can_follow:
          type: boolean
          readOnly: true
    Campaign:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        url:
          type: string
          format: uri
          maxLength: 200
          pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\
            .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\
            ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF0-9])?(?:\\\
            .(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-))*\\.(?!-)(?:[a-z\xA1-\uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\\\
            .?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\\s]*)?\\z"
        description:
          type: string
        start_date:
          type: string
          format: date-time
          nullable: true
        active:
          type: boolean
      required:
      - name
      - slug
    Document:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        site_url:
          type: string
          readOnly: true
        title:
          type: string
          maxLength: 500
        slug:
          type: string
          maxLength: 250
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        published_at:
          type: string
          format: date-time
          nullable: true
        num_pages:
          type: integer
          maximum: 2147483647
          minimum: 0
        public:
          type: boolean
        listed:
          type: boolean
        allow_annotation:
          type: boolean
        pending:
          type: boolean
        file_url:
          type: string
          readOnly: true
        file_size:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          nullable: true
        cover_image:
          type: string
        page_template:
          type: string
        outline:
          type: string
        properties:
          type: object
        uid:
          type: string
          format: uuid
          readOnly: true
        data:
          type: object
        pages_uri:
          type: string
          readOnly: true
      required:
      - cover_image
      - page_template
    DocumentDetail:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        site_url:
          type: string
          readOnly: true
        title:
          type: string
          maxLength: 500
        slug:
          type: string
          maxLength: 250
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        published_at:
          type: string
          format: date-time
          nullable: true
        num_pages:
          type: integer
          maximum: 2147483647
          minimum: 0
        public:
          type: boolean
        listed:
          type: boolean
        allow_annotation:
          type: boolean
        pending:
          type: boolean
        file_url:
          type: string
          readOnly: true
        file_size:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          nullable: true
        cover_image:
          type: string
        page_template:
          type: string
        outline:
          type: string
        properties:
          type: object
        uid:
          type: string
          format: uuid
          readOnly: true
        data:
          type: object
        pages_uri:
          type: string
          readOnly: true
        original:
          type: string
          readOnly: true
        foirequest:
          type: string
          readOnly: true
        publicbody:
          type: string
          readOnly: true
        last_modified_at:
          type: string
          readOnly: true
        pages:
          type: string
          readOnly: true
      required:
      - cover_image
      - page_template
    DocumentCollection:
      type: object
      properties:
        resource_uri:
          type: string
          readOnly: true
        id:
          type: integer
          readOnly: true
        site_url:
          type: string
          readOnly: true
        title:
          type: string
          maxLength: 255
        description:
          type: string
        public:
          type: boolean
        listed:
          type: boolean
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
        document_count:
          type: string
          readOnly: true
        document_directory_count:
          type: string
          readOnly: true
        uid:
          type: string
          format: uuid
          readOnly: true
        cover_image:
          type: string
        directories:
          type: string
          readOnly: true
        documents:
          type: string
          readOnly: true
        documents_uri:
          type: string
          readOnly: true
        pages_uri:
          type: string
          readOnly: true
        settings:
          type: object
        zip_download_url:
          type: string
          readOnly: true
      required:
      - cover_image
    Page:
      type: object
      properties:
        document:
          type: string
          readOnly: true
        number:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          default: 1
        content:
          type: string
        width:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        height:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        image:
          type: string
        query_highlight:
          type: string
      required:
      - image
      - query_highlight
    PageAnnotation:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        title:
          type: string
          maxLength: 255
        description:
          type: string
        top:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        left:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        width:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        height:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        timestamp:
          type: string
          format: date-time
        can_delete:
          type: boolean
          readOnly: true
        highlight:
          type: string
        image:
          type: string
          format: binary
        document:
          type: string
          readOnly: true
        number:
          type: integer
          readOnly: true
    CreatePageAnnotation:
      type: object
      properties:
        document:
          type: integer
        page_number:
          type: integer
        title:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 1024
        top:
          type: integer
          nullable: true
        left:
          type: integer
          nullable: true
        width:
          type: integer
          nullable: true
        height:
          type: integer
          nullable: true
      required:
      - document
      - page_number
      - title
      - description
    UpdateDocument:
      type: object
      properties:
        title:
          type: string
          maxLength: 500
        description:
          type: string