openapi: 3.0.3
info:
  title: Api til at hente aggregerede sager tværs af sagstyper.
  description: Api til at hente aggregerede sager på tværs af sagstyper.
  version: 2.2.0
servers:
- url: http://localhost:8080
paths:
  /sager:
    get:
      tags:
      - sagshylde
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/size'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/direction'
      operationId: hentSager
      description: Henter alle sager som den indloggede bruger har en relation til.
      responses:
        '200':
          description: Sager hentet med succes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sagListItem'
          headers:
            X-Total-Count:
              $ref: '#/components/headers/totalCount'
    post:
      tags:
      - sagshylde
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/size'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/direction'
      operationId: soegSager
      description: Henter alle sager (ud fra søgekriterier). OBS Uden relation til
        en sag skal den fremsøges unikt for at blive returneret.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sagQueryEkstern'
      responses:
        '200':
          description: Sager fundet udfra fra søgekriterier.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sagListItem'
          headers:
            X-Total-Count:
              $ref: '#/components/headers/totalCount'
security:
- bearerAuth: [
    ]
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    sagQueryEkstern:
      properties:
        sagsnummer:
          description: Søgning på sagens sagsnummer.
          example: TV-1001-23/ROS
          $ref: '#/components/schemas/sagsnummer'
        part:
          description: Søgning på den centrale part i sagen, fx selskabet under tvang
            eller den tiltalte person.
          $ref: '#/components/schemas/deltager'
    sagListItem:
      required:
      - id
      - sagstype
      - embedskode
      - roller
      properties:
        id:
          description: Sagens tekniske id, som en reference til sagId ved fremsøgning
            af den specifikke sag.
          $ref: '#/components/schemas/id'
        sagstype:
          $ref: '#/components/schemas/sagstypeEnum'
        embedskode:
          $ref: '#/components/schemas/embedskode'
        embedsNavn:
          type: string
        roller:
          description: Rolle i/relation til en sag.
          example: Likvidator eller Kreditor i en tvangsopløsningssag.
          type: array
          items:
            type: string
        partId:
          description: Identifikation af centralt part under behandling, f.eks. cvr
            på selskab under tvangsopløsning eller cpr på tiltalte i en straffesag.
          type: string
        partNavn:
          description: Navn på central part under behandling, f.eks. navn på selskabet
            der er under tvangsopløsning elle den tiltalte i en straffesag.
          type: string
        sagsinformation:
          $ref: '#/components/schemas/tableElement'
        sagsnummer:
          $ref: '#/components/schemas/tableElement'
        datoer:
          $ref: '#/components/schemas/tableElement'
        sagsstatus:
          type: string
        loginRelation:
          type: string
    deltager:
      properties:
        navn:
          type: string
        foedselsdato:
          type: string
          format: date
        cpr:
          $ref: '#/components/schemas/cprNummer'
        cvr:
          $ref: '#/components/schemas/cvrNummer'
    tableElement:
      properties:
        linje1:
          type: string
        linje2:
          type: string
    id:
      type: string
      format: uuid
    cprNummer:
      type: string
      pattern: ^\d{10}$
    cvrNummer:
      type: string
      pattern: ^[1-9][0-9]{7}$
    embedskode:
      description: Unik forkortelse for et givent embede, der kan anvendes til identificering
        af et specifik embede i retskreds-service.
      type: string
      pattern: ^[A-ZÆØÅ]{3}$
      maxLength: 3
      minLength: 3
    sagstypeEnum:
      x-namespace: dk.domstol.oas.common
      description: Type af sag.
      type: string
      enum:
      - BOEDESAG
      - STRAFFESAG
      - DOEDSBO
      - DOEDSBOJOURNAL
      - TVANGSOPLOESNING
      - LANDSRET_FAENGSLING_KAERE
      - LANDSRET_STRAFFE_KAERE
    sagsnummer:
      type: string
      maxLength: 255
    directionEnum:
      x-namespace: dk.domstol.oas.common
      type: string
      enum:
      - ASC
      - DESC
    apiError:
      x-namespace: dk.domstol.oas.common
      required:
      - code
      - status
      - message
      - path
      - timestamp
      properties:
        code:
          description: Human readable HTTP status message.
          type: string
        status:
          description: HTTP status code.
          type: integer
        message:
          description: Message describing the error.
          type: string
        path:
          description: The path of the error.
          type: string
        timestamp:
          description: Date and time of the error.
          type: string
          format: date-time
        details:
          description: Detailed description of the error(s).
          type: array
          items:
            $ref: '#/components/schemas/details'
    details:
      type: string
  parameters:
    page:
      name: page
      description: Side for paginering.
      required: false
      in: query
      schema:
        type: integer
    size:
      name: size
      description: Antal elementer pr. side.
      required: false
      in: query
      schema:
        type: integer
    sort:
      name: sort
      description: Liste af felter der skal sorteres på.
      required: false
      in: query
      schema:
        type: array
        items:
          type: string
    direction:
      name: direction
      description: Stigende eller faldende retning for søgeresultater.
      in: query
      schema:
        $ref: '#/components/schemas/directionEnum'
  headers:
    totalCount:
      description: Det totale antal resultater i listen.
      schema:
        type: integer
  responses: {
    }
  requestBodies: {
    }
