openapi: 3.0.0
info:
  version: 'API_VERSION'
  title: Submission API für Antragsverfahren und Berichtspflichten
  description: >
    Die FIT-Connect Submission API ermöglicht das Einreichen von Anträgen und Berichten aus vorgelagerten Systemen (z. B. Onlineantragsdiensten, Fachportalen oder Berichtssystemen) an die Systeme der Verwaltung zur elektronischen Verfahrensbearbeitung (z. B. Fachverfahren, Dokumentenmanagementsystem oder Prozessplattformen).
  contact:
    name: FITKO
    url: 'https://www.fitko.de/'
  license:
    url: 'https://creativecommons.org/licenses/by-sa/4.0/'
    name: Creative Commons Attribution Share Alike 4.0 (CC BY-SA 4.0)
  termsOfService: https://www.fitko.de/
servers:
  - url: 'https://api.fit-connect.example.org'
    description: Example server
externalDocs:
  description: FIT-Connect-Dokumentationsportal mit Dokumentation zur API-Nutzung
  url: https://docs.fitko.de/fit-connect
tags:
  - name: Zustellpunktverwaltung
    description: Unter dieser Gruppe sind alle Endpunkte organisiert, über welche Zustellpunkte verwaltet werden können.
  - name: Einreichungsübermittlung
    description: Diese Gruppe enthält alle Endpunkte, die für das Versenden von Einreichungen an einen Zustellpunkt notwendig sind.
    externalDocs:
      url: https://docs.fitko.de/fit-connect/getting-started/sending/overview
  - name: Einreichungsempfang
    description: Diese Gruppe umfasst alle Endpunkte, die für den Empfang und die Abfrage von Einreichungen notwendig sind.
    externalDocs:
      url: https://docs.fitko.de/fit-connect/getting-started/receiving/overview
  - name: Technisch
    description: Unter dieser Gruppe sind alle Endpunkte organisiert, die technische Informationen über die Instanz des Zustelldienstes liefern.
paths:
  /destinations:
    $ref: './endpoints/destinations/index.yaml'

  /destinations/{destinationId}:
    $ref: './endpoints/destinations/uuid.yaml'

  /destinations/{destinationId}/keys:
    $ref: './endpoints/destinations/keys/index.yaml'

  /destinations/{destinationId}/keys/{keyId}:
    $ref: './endpoints/destinations/keys/uuid.yaml'

  /submissions:
    $ref: './endpoints/submissions/index.yaml'

  /submissions/{submissionId}:
    $ref: './endpoints/submissions/uuid.yaml'

  /submissions/{submissionId}/events:
    $ref: './endpoints/submissions/events/index.yaml'

  /submissions/{submissionId}/attachments/{attachmentId}:
    $ref: './endpoints/attachments/uuid.yaml'

  /info:
    $ref: './endpoints/info/get-info.yaml'

  /.well-known/jwks.json:
    $ref: './endpoints/well-known/jwks.json/index.yaml'

components:
  securitySchemes:
    OAuth2:
      $ref: './security/oauth2.yaml'

  parameters:
    submissionId:
      $ref: './parameters/submissionId.yaml'
    destinationId:
      $ref: './parameters/destinationId.yaml'
    destinationIdInQuery:
      $ref: './parameters/destinationIdInQuery.yaml'
    attachmentId:
      $ref: './parameters/attachmentId.yaml'

  schemas:
    Submission:
      $ref: './schemas/submission.yaml'
    SubmissionCreated:
      $ref: './schemas/submission-created.yaml'
    SubmissionSchema:
      $ref: './schemas/submission-schema.yaml'
    Attachment:
      $ref: './schemas/attachment.yaml'
    ContactInformation:
      $ref: './schemas/contact-information.yaml'
    CreateSubmission:
      $ref: './schemas/create-submission.yaml'
    CreateAttachment:
      $ref: './schemas/create-attachment.yaml'
    CreateDestination:
      $ref: './schemas/create-destination.yaml'
    Destination:
      $ref: './schemas/destination-any.yaml'
    PrivateDestination:
      $ref: './schemas/destination-private.yaml'
    PublicDestination:
      $ref: './schemas/destination-public.yaml'
    DestinationList:
      $ref: './schemas/destination-list.yaml'
    DestinationService:
      $ref: './schemas/destination-service.yaml'
    EmptyBody:
      $ref: './schemas/empty-body.yaml'
    Error:
      $ref: './schemas/error.yaml'
    Info:
      $ref: './schemas/info.yaml'
    JWK:
      $ref: './schemas/jwk.yaml'
    JWKS:
      $ref: './schemas/jwks.yaml'
    ListOfSubmissionIds:
      $ref: './schemas/list-of-submission-ids.yaml'
    PatchDestination:
      $ref: './schemas/patch-destination.yaml'
    ServiceRegion:
      $ref: './schemas/service-region.yaml'
    SubmissionForPickup:
      $ref: './schemas/submission-for-pickup.yaml'
    SubmissionsForPickup:
      $ref: './schemas/submissions-for-pickup.yaml'
    SubmitSubmission:
      $ref: './schemas/submit-submission.yaml'
    UpdateDestination:
      $ref: './schemas/update-destination.yaml'
    Version:
      $ref: './schemas/version.yaml'
    ServiceType:
      $ref: './schemas/service-type.yaml'
    SecurityEventToken:
      $ref: './schemas/security-event-token.yaml'
    EventLog:
      $ref: './schemas/event-log.yaml'

  examples:
    Submission:
      $ref: './examples/submission.yaml'
    SubmissionCreated:
      $ref: './examples/submission-created.yaml'
    CreateSubmission:
      $ref: './examples/create-submission.yaml'
    CreateDestination:
      $ref: './examples/create-destination.yaml'
    Destination:
      $ref: './examples/destination-any.yaml'
    PrivateDestination:
      $ref: './examples/destination-private.yaml'
    PublicDestination:
      $ref: './examples/destination-public.yaml'
    DestinationList:
      $ref: './examples/destination-list.yaml'
    EmptyBody:
      $ref: './examples/empty-body.yaml'
    EncryptedMessage:
      $ref: './examples/encrypted-message.yaml'
    Info:
      $ref: './examples/info.yaml'
    JWK:
      $ref: './examples/jwk.yaml'
    JWKSVerify:
      $ref: './examples/jwks-verify.yaml'