openapi: 3.0.0
info:
  version: 1.0.1
  title: Toepasbaar maken van activiteiten
  description: >-
    Een API voor het toepasbaar maken van activiteiten.
  contact:
    name: PR13 Team Toepasbare regels
    url: https://aandeslagmetdeomgevingswet.nl/ontwikkelaarsportaal/services/contact/
paths:
  /activiteiten/{activiteitIdentifier}:
    put:
      summary: >-
        Toepasbaar maken van een activiteit.
      tags:
        - Toepasbaar maken van activiteiten
      parameters:
        - $ref: '#/components/parameters/activiteitIdentifier'
      responses:
        '200':
          description: >-
            De aangepaste activiteit
          content:
            application/raw+json:
              schema:
                $ref: '#/components/schemas/ToepasbareActiviteitResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ToepasbareActiviteitResponse'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToepasbareActiviteitRequest'
        description: >-
          Inhoud ten behoeve van het toepasbaar maken van een activiteit
        required: true

components:
  parameters:
    activiteitIdentifier:
      name: activiteitIdentifier
      in: path
      description: De identifier van de activiteit. Binnen de keten staat deze bekend als de imow-id.
      schema:
        type: string
      required: true

  responses:
    '400':
      $ref: 'lib/errors.yaml#/400'
    '404':
      $ref: 'lib/errors.yaml#/404'
    '500':
      $ref: 'lib/errors.yaml#/500'

  schemas:
    ToepasbareActiviteitResponse:
      $ref: '#/components/schemas/ToepasbareActiviteitRequest'

    ToepasbareActiviteitRequest:
      required:
        - typering
        - begindatum
      properties:
        typering:
          $ref: 'lib/domeinobjecten.yaml#/ActiviteitTypering'
        magneet:
          description: >-
            Is de activiteit magneet? Indien niet opgegeven wordt een default waarde van false gebruikt.
          type: boolean
        toonbaar:
          description: >-
            Is dit een activiteit op een hoger activiteitsniveau en toonbaar? Als toonbaar binnen de activiteiten niet is aangegeven, dan wordt de laagste activiteit gebruikt en getoond om in te dienen.
          type: boolean
        verfijnbaar:
          description: >-
            Is de activiteit verfijnbaar? Indien niet opgegeven wordt een default waarde van false gebruikt.
          type: boolean
        regelbeheerobjecten:
          description: >-
            Lijst van meegeleverde regelbeheerobjecten
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/Regelbeheerobject'
        werkzaamheden:
          description: >-
            Lijst van gekoppelde werkzaamheden
          type: array
          maxItems: 500
          items:
            $ref: '#/components/schemas/Werkzaamheid'
        bevoegdGezag:
          $ref: 'lib/domeinobjecten.yaml#/OrganisatieMetOptioneelOin'
        begindatum:
          description: >-
            Geldig begindatum van de activiteit. Het formaat van de datum is dd-MM-yyyy
          type: string

    Werkzaamheid:
      required:
        - urn
      properties:
        urn:
          type: string

    Regelbeheerobject:
      required:
        - typering
      properties:
        typering:
          $ref: 'lib/domeinobjecten.yaml#/RegelbeheerobjectType'
        toestemming:
          $ref: 'lib/domeinobjecten.yaml#/ToestemmingRequest'
