openapi: 3.0.3
info:
  title: Api til at interagere med samarbejdsportalen som ekstern med fokus på at hente oplysninger om en samarbejdspartner.
  description: Api til at interagere med samarbejdsportalen som ekstern med fokus på at hente oplysninger om en samarbejdspartner (partner for kort).
  version: 4.3.14
servers:
  - url: 'http://localhost:8080'
paths:
  /samarbejdsportalEkstern:
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentPartnerListe
      description: Henter liste af (samarbejds)partnere som brugeren (en deltager under partnere) har forbindelse til.
      responses:
        '200':
          description: Liste af partnere hentet.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/partnerListItem'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}:
    parameters:
      - $ref: '#/components/parameters/partnerId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentPartnerinfoFuld
      description: Henter informationer for specifik (samarbejds)partner. Kan kun hentes hvis brugeren der kalder endpointet har ret til at se alle partners detaljer, fx som deltager i partnerens adgangsprofil.
      responses:
        '200':
          description: Stamdata for samarbejdspartner hentet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partnerInfoFuld'
        404:
          description: Samarbejdspartner findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: opdaterPartner
      description: Mulighed for at rette stamdata for den enkelte partner.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/partnerOpdatering'
      responses:
        '200':
          description: Samarbejdspartneren blev opdateret succesfuldt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partnerInfoFuld'
        404:
          description: Samarbejdspartneren findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/cvr:
    parameters:
      - $ref: '#/components/parameters/partnerId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: opdaterCvr
      description: Mulighed for at opdatere cvr partneren.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cvrInfo'
      responses:
        200:
          description: Cvr nummer er ændret for partner og invitation til profilen er sendt.
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/info:
    parameters:
      - $ref: '#/components/parameters/partnerId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentPartnerinfo
      description: Henter offentlige informationer om specifik (samarbejds)partner til simpel visning. Kan hentes af alle.
      responses:
        '200':
          description: Informationer om samarbejdspartner hentet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partnerInfo'
        404:
          description: Samarbejdspartner findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/sag/{sagId}:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/sagId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentSagForPartner
      description: Henter sagsinformationer inkl. deltagerliste for en specifik sag tildelt specifik partner.
      responses:
        '200':
          description: Sagsinformationer hentet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sagMedDeltagere'
        404:
          description: Samarbejdspartner eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/sager:
    parameters:
      - $ref: '#/components/parameters/partnerId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentAlleSagerForPartner
      description: Henter liste af aktuelle sager inkl. deltagerliste for en specifik partner.
      responses:
        '200':
          description: Sagsinformationer hentet.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sagMedDeltagere'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/deltager/{deltagerId}:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/deltagerId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentDeltagerFraPartnersAdgangsprofil
      description: Henter deltager-informationer inkl. sagsliste for en specifik deltager i en specifik samarbejdspartners adgangsprofil.
      responses:
        '200':
          description: Deltager-informationer hentet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deltagerMedSager'
        400:
          description: Samarbejdspartner eller deltager findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: opdaterDeltagerFraPartnersAdgangsprofil
      description: Opdater informationer for deltager i en specifik samarbejdspartners adgangsprofil.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/opdaterDeltager'
      responses:
        '200':
          description: Deltager opdateret succesfuldt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deltagerMedSager'
        400:
          description: Ikke rettigheder til opdatering.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
    delete:
      tags:
        - samarbejdsportalEkstern
      operationId: sletDeltagerFraPartnersAdgangsprofil
      description: Sletter en deltager fra en specifik partners adgangsprofil. Kun deltagere uden tilknyttede sager kan slettes.
      responses:
        '200':
          description: Deltager er slettet fra partnerens adgangsprofil.
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/deltagere:
    parameters:
      - $ref: '#/components/parameters/partnerId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentDeltagereFraPartnersAdgangsprofil
      description: Henter listen af deltagere inkl liste over tilknyttede sager for specifik partners adgangsprofil.
      responses:
        '200':
          description: Alle deltagere i samarbejdspartners adgangsprofil hentet succesfuldt.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/deltagerMedSager'
        404:
          description: Samarbejdspartner eller deltager findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/deltager/{deltagerId}/tilfojSager:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/deltagerId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: tilfoejSagerTilDeltager
      description: Giver specifik deltager adgang til den angivne liste af samarbejdspartnerens tilknyttede sager.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: Liste af ID'er på sager.
              items:
                $ref: './imported/typer/typer.yaml#/components/schemas/id'
      responses:
        200:
          description: Deltager har fået adgang til angivne sager.
        404:
          description: Samarbejdspartner, deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /samarbejdsportalEkstern/{partnerId}/deltager/{deltagerId}/fjernSager:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/deltagerId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: fjernSagerFraDeltager
      description: Fjern specifik deltagers adgang til den angivne liste af samarbejdspartnerens tilknyttede sager.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: Liste af ID'er på sager.
              items:
                $ref: './imported/typer/typer.yaml#/components/schemas/id'
      responses:
        200:
          description: Deltagers adgang til angivne sager er fjernet.
        404:
          description: Samarbejdspartner, deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /samarbejdsportalEkstern/{partnerId}/sag/{sagId}/tilfoejDeltagere:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/sagId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: tilfoejDeltagereTilSag
      description: Giver angivne liste af deltagere adgang til en specifik af sag blandt samarbejdspartnerens tilknyttede sager.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: Liste af ID'er på deltagere.
              items:
                $ref: './imported/typer/typer.yaml#/components/schemas/id'
      responses:
        200:
          description: De angivne deltagere har nu fået adgang til den specifikke sag.
        404:
          description: Samarbejdspartner, deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{partnerId}/sag/{sagId}/fjernDeltagere:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/sagId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: fjernDeltagereFraSag
      description: Fjern angivne liste af deltageres adgang til en specifik sag blandt samarbejdspartnerens tilknyttede sager.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: Liste af ID'er på deltagere.
              items:
                $ref: './imported/typer/typer.yaml#/components/schemas/id'
      responses:
        200:
          description: Deltageres adgang til sagen er blevet fjernet.
        404:
          description: Samarbejdspartner, deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /samarbejdsportalEkstern/{sagId}/partnere/primaer:
    parameters:
      - $ref: '#/components/parameters/sagId'
    put:
      tags:
        - samarbejdsportalEkstern
      operationId: angivPrimaerPartnerForSag
      description: Angiv hvilken samarbejdspartner deltageren primært agerer på vegne af på en konkret sag, hvor deltageren har adgang til sagen gennem flere samarbejdspartneres adgangsprofiler.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/primaerPartner'
      responses:
        200:
          description: Information om hvilken partner på sagen som deltageren primært agerer på vegne af er opdateret.
        404:
          description: Samarbejdspartner, deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
  /samarbejdsportalEkstern/{sagId}/partnere:
    parameters:
      - $ref: '#/components/parameters/sagId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentPartnerlisteForSag
      description: Henter liste af partnere, hvis adgangsprofiler deltageren (kalderen) er knyttet til for sagen (har adgang til sagen igennem).
      responses:
        200:
          description: Liste af tilknyttede adgangsgivende partnere (adgangsprofiler) på sagen hentet succesfuldt.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/partnerDeltagerSag'
        404:
          description: Deltager eller sag findes ikke.
          content:
            application/json:
              schema:
                $ref: './imported/apiErrors/apiErrors.yaml#/components/schemas/apiError'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /samarbejdsportalEkstern/{partnerId}/sager/{sagId}:
    description: Henter oplysinger for partner med kontaktoplysninger for sag.
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/sagId'
    get:
      tags:
        - samarbejdsportalEkstern
      operationId: hentPartnerSagKontakt
      description: Henter specifik partner.
      responses:
        '200':
          description: Partner med kontakt hentet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partnerSagKontaktInfo'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /samarbejdsportalEkstern/{partnerId}/sager/{sagId}/kontakt:
    parameters:
      - $ref: '#/components/parameters/partnerId'
      - $ref: '#/components/parameters/sagId'
    put:
      description: Sætter deltager som aktuel kontakt for en sag på partner.
      tags:
        - samarbejdsportalEkstern
      operationId: saetKontaktPaaPartnerSag
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kontaktPerson'
      responses:
        '200':
          description: Kontaktoplysninger for partner opdateret på den angivne sag.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partnerInfoFuld'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'
security:
  - bearerAuth: [ ]
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    partnerId:
      description: Teknisk ID på samarbejdspartner. Fås fx ved hentning af en tvangsopløsningssag.
      name: partnerId
      in: path
      required: true
      schema:
        $ref: './imported/typer/typer.yaml#/components/schemas/id'
    deltagerId:
      description: Teknisk ID på en deltager der er registreret i samarbejdsregistret.
      name: deltagerId
      in: path
      required: true
      schema:
        $ref: './imported/typer/typer.yaml#/components/schemas/id'
    sagId:
      description: Teknisk ID på sag. fx. en tvangsopløsningssag.
      name: sagId
      in: path
      required: true
      schema:
        $ref: './imported/typer/typer.yaml#/components/schemas/id'
  schemas:
    partnerInfo:
      required:
        - partnerId
        - fornavn
        - efternavn
      properties:
        partnerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        fornavn:
          type: string
        efternavn:
          type: string
        darId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
    partnerSagKontaktInfo:
      required:
        - id
        - fornavn
        - efternavn
        - cvr
      properties:
        id:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        fornavn:
          type: string
        efternavn:
          type: string
        personId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
        darId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        kontaktoplysninger:
          $ref: '#/components/schemas/kontaktoplysninger'
    partnerInfoFuld:
      required:
        - id
        - fornavn
        - efternavn
        - cvr
      properties:
        id:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        fornavn:
          type: string
        efternavn:
          type: string
        personId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
        darId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        kontaktoplysninger:
          $ref: '#/components/schemas/kontaktoplysninger'
        loginRolle:
          $ref: '#/components/schemas/rolle'
        loginDeltagerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
    partnerOpdatering:
      required:
        - kontaktoplysninger
      properties:
        personId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        darId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        kontaktoplysninger:
          $ref: '#/components/schemas/kontaktoplysninger'
    cvrInfo:
      required:
        - cvr
      properties:
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
        telefonnummer:
          $ref: './imported/typer/typer.yaml#/components/schemas/telefonnummer'
        email:
          $ref: './imported/typer/typer.yaml#/components/schemas/email'
    kontaktoplysninger:
      description: Kontaktoplysninger (email adresse og/eller telefonnummer) for partner.
      properties:
        fornavn:
          description: Fornavn på kontaktperson.
          type: string
        efternavn:
          type: string
        telefonnummer:
          $ref: './imported/typer/typer.yaml#/components/schemas/telefonnummer'
        email:
          $ref: './imported/typer/typer.yaml#/components/schemas/email'
    partnerListItem:
      required:
        - id
        - fornavn
        - efternavn
        - cvr
      properties:
        id:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        fornavn:
          type: string
        efternavn:
          type: string
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
    deltagerMedSager:
      required:
        - deltagerId
        - navn
      properties:
        deltagerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        navn:
          type: string
        rolle:
          $ref: '#/components/schemas/rolle'
        status:
          $ref: '#/components/schemas/deltagerStatus'
        oprettelsestidspunkt:
          $ref: './imported/typer/typer.yaml#/components/schemas/oprettelsestidspunkt'
        email:
          $ref: './imported/typer/typer.yaml#/components/schemas/email'
        telefon:
          $ref: './imported/typer/typer.yaml#/components/schemas/telefonnummer'
        sager:
          description: Liste af sager for en given deltager.
          type: array
          items:
            $ref: './imported/typer/typer.yaml#/components/schemas/id'
    opdaterDeltager:
      required:
        - navn
      properties:
        navn:
          type: string
        email:
          $ref: './imported/typer/typer.yaml#/components/schemas/email'
        telefon:
          $ref: './imported/typer/typer.yaml#/components/schemas/telefonnummer'
    sagMedDeltagere:
      required:
        - sagId
      properties:
        sagId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        sagsnummer:
          $ref: './imported/typer/typer.yaml#/components/schemas/sagsnummer'
        sagstype:
          $ref: './imported/typer/typer.yaml#/components/schemas/sagstypeEnum'
        sagRegistreret:
          $ref: './imported/typer/typer.yaml#/components/schemas/oprettelsestidspunkt'
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
        kontaktDeltagerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        deltagere:
          description: Liste af deltager på en given sag.
          type: array
          items:
            $ref: '#/components/schemas/simpelDeltagerInfo'
    rolle:
      description: 'Rolle for deltager tilknyttet en partner.'
      type: string
      enum:
        - EJER
        - ADMIN
        - API
        - DELTAGER
    deltagerStatus:
      description: 'Status for ansøgnings flow fordeltager.'
      type: string
      enum:
        - OPRETTET
        - AFVENTER_PIN
        - OPRETTET_TIMEOUT
        - PIN_UDLOEBET
        - REGISTRERET
    primaerPartner:
      required:
        - partnerId
      properties:
        partnerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
    partnerDeltagerSag:
      description: Informationer om partner for sag.
      required:
        - id
        - fornavn
        - efternavn
        - cvr
      properties:
        id:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        fornavn:
          type: string
        efternavn:
          type: string
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
        deltagerRolle:
          $ref: '#/components/schemas/rolle'
        primaer:
          description: Sand, hvis pågældende partner er valgt som primære for sag.
          type: boolean
    simpelDeltagerInfo:
      description: Informationer om deltager.
      required:
        - id
        - deltagerRolle
      properties:
        id:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        deltagerRolle:
          $ref: '#/components/schemas/rolle'
    kontaktPerson:
      description: Opsætning af deltager som kontakt.
      properties:
        deltagerId:
          $ref: './imported/typer/typer.yaml#/components/schemas/id'