{
  "openapi": "3.0.0",
  "info": {
    "version": "1.1.5",
    "title": "Conceptverzoek Configuratie",
    "description": "Een REST-API voor het beheren van de conceptverzoek configuraties. Hiermee kan een bestuursorgaan bij een activiteit, waarvoor het bevoegd gezag is, aangeven dat hiervoor een conceptverzoek is toegestaan.",
    "contact": {
      "name": "Ontwikkelaarsportaal Omgevingswet",
      "url": "https://developer.omgevingswet.overheid.nl/services/contact/"
    }
  },
  "paths": {
    "/": {
      "get": {
        "summary": "OpenApi Specification",
        "deprecated": true,
        "description": "Deprecated - gebruik in plaats hiervan /openapi.json.",
        "tags": [
          "Meta"
        ],
        "responses": {
          "200": {
            "description": "OpenApi Specification Json",
            "content": {
              "application/json": {
                "schema": {
                  "example": "{\"openapi\": \"3.0.0\", ... }"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "summary": "OpenApi Specification",
        "tags": [
          "Meta"
        ],
        "responses": {
          "200": {
            "description": "OpenApi Specification Json",
            "content": {
              "application/json": {
                "schema": {
                  "example": "{\"openapi\": \"3.0.0\", ... }"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "health info",
        "tags": [
          "Meta"
        ],
        "responses": {
          "200": {
            "description": "Health",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "UP"
                      ]
                    },
                    "groups": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Health",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "DOWN",
                        "OUT_OF_SERVICE"
                      ]
                    },
                    "groups": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/info": {
      "get": {
        "summary": "applicatie info",
        "tags": [
          "Meta"
        ],
        "responses": {
          "200": {
            "description": "Info",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Info",
                  "required": [
                    "app"
                  ],
                  "properties": {
                    "app": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "version": {
                          "type": "string"
                        },
                        "version2": {
                          "type": "string"
                        },
                        "buildtime": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/conceptverzoekconfiguraties": {
      "get": {
        "summary": "Ophalen van conceptverzoek configuraties",
        "tags": [
          "Ophalen conceptverzoek configuratie"
        ],
        "description": "Retourneert alle conceptverzoek configuraties die voldoen aan alle optionele filter parameters. Het is niet toegestaan om deze service aan te roepen zonder filter parameters: er moet minimaal één filter parameter gebruikt wordt.",
        "parameters": [
          {
            "in": "query",
            "name": "bevoegdGezagOin",
            "description": "Het bevoegd gezag waarop gefilterd moet worden",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "activiteitUrn",
            "description": "De urn (imow-identifier) van de activiteit waarop gefilterd moet worden.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "activiteitFunctioneleStructuurRef",
            "description": "De functionele structuur referentie van het regelbeheerobject waarop gefilterd moet worden",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "De lijst van conceptverzoek configuraties",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponseList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "post": {
        "summary": "Toevoegen conceptverzoek configuratie",
        "tags": [
          "Beheren conceptverzoek configuratie"
        ],
        "description": "Voeg een nieuwe conceptverzoek configuratie toe",
        "requestBody": {
          "description": "Inhoud van de te creeeren conceptverzoek configuratie",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConceptverzoekConfiguratieRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "De gecreeerde conceptverzoek configuratie als HAL Resource",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/conceptverzoekconfiguraties/{conceptverzoekconfiguratie-id}": {
      "get": {
        "summary": "Ophalen specifieke conceptverzoek configuratie",
        "tags": [
          "Ophalen conceptverzoek configuratie"
        ],
        "description": "Retourneert de conceptverzoek configuratie behorende bij de meegegeven identifier",
        "parameters": [
          {
            "$ref": "#/components/parameters/conceptverzoekconfiguratie-id"
          }
        ],
        "responses": {
          "200": {
            "description": "De conceptverzoek configuratie behorende bij de meegegeven identifier",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "summary": "Updaten conceptverzoek configuratie",
        "tags": [
          "Beheren conceptverzoek configuratie"
        ],
        "description": "Update een bestaande conceptverzoek configuratie behorende bij de meegegeven identifier",
        "requestBody": {
          "description": "Geupdate inhoud van de conceptverzoek configuratie",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConceptverzoekConfiguratieRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/conceptverzoekconfiguratie-id"
          }
        ],
        "responses": {
          "200": {
            "description": "De conceptverzoek configuratie behorende bij de meegegeven identifier nadat de update is uitgevoerd",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "summary": "Verwijderen conceptverzoek configuratie",
        "tags": [
          "Beheren conceptverzoek configuratie"
        ],
        "description": "Verwijdert een bestaande conceptverzoek configuratie behorende bij de meegegeven identifier",
        "parameters": [
          {
            "$ref": "#/components/parameters/conceptverzoekconfiguratie-id"
          }
        ],
        "responses": {
          "200": {
            "description": "De conceptverzoek configuratie behorende bij de meegegeven identifier voordat deze verwijderd was",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "conceptverzoekconfiguratie-id": {
        "name": "conceptverzoekconfiguratie-id",
        "in": "path",
        "description": "de identifier van de conceptverzoek configuratie",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    },
    "responses": {
      "400": {
        "description": "Fouten (missing parameter; niet bestaande parameter; invalide waarde voor parameter)",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "required": [
                    "type",
                    "title",
                    "status"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Het type fout dat opgetreden is. Bijvoorbeeld VALIDATIE_FOUT of ONVERWACHTE_FOUT."
                    },
                    "title": {
                      "type": "string",
                      "description": "Informatie over de opgetreden fout."
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "description": "De statuscode van de fout (= 400) overeenkomend met de http-status code van de response."
                    },
                    "detail": {
                      "type": "string",
                      "description": "Meer detail informatie over de opgetreden fout"
                    },
                    "instance": {
                      "type": "string",
                      "description": "Het unieke instance id van het request dat resulteerde in de foutmelding."
                    }
                  }
                },
                {
                  "properties": {
                    "invalid-params": {
                      "type": "array",
                      "items": {
                        "required": [
                          "type",
                          "name",
                          "reason"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Een type van de fout, bijvoorbeeld 'Validatie melding'"
                          },
                          "name": {
                            "type": "string",
                            "description": "'Naam van de parameter die een fout bevat, bijvoorbeeld: activiteitFunctioneleStructuurRef'"
                          },
                          "reason": {
                            "type": "string",
                            "description": "Bijvoorbeeld 'de activiteitFunctioneleStructuurRef mag geen speciale karakters bevatten.'"
                          }
                        }
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "404": {
        "description": "De gevraagde resource is niet gevonden",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "required": [
                    "type",
                    "title",
                    "status"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Het type resource dat niet gevonden is."
                    },
                    "title": {
                      "type": "string",
                      "description": "Informatie over de opgetreden fout."
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "description": "De statuscode van de fout (= 404) overeenkomend met de http-status code van de response."
                    },
                    "detail": {
                      "type": "string",
                      "description": "Meer detail informatie over de opgetreden fout"
                    },
                    "instance": {
                      "type": "string",
                      "description": "Het unieke instance id van het request dat resulteerde in de foutmelding."
                    }
                  }
                },
                {
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Bevat informatie over het type object dat niet gevonden is. Bijvoorbeeld ACTIVITY_NOT_FOUND of SUBACTIVITY_NOT_FOUND"
                    },
                    "detail": {
                      "type": "string",
                      "description": "De identifier van het object dat niet gevonden is. Bijvoorbeeld de URN van een activiteit."
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "500": {
        "description": "Er is een onverwachte technische fout opgetreden",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "type",
                "title",
                "status"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Het type fout dat opgetreden is. Bijvoorbeeld VALIDATIE_FOUT of ONVERWACHTE_FOUT."
                },
                "title": {
                  "type": "string",
                  "description": "Informatie over de opgetreden fout."
                },
                "status": {
                  "type": "integer",
                  "format": "int64",
                  "description": "De statuscode (= 500) van de fout overeenkomend met de http-status code van de response."
                },
                "detail": {
                  "type": "string",
                  "description": "Meer detail informatie over de opgetreden fout"
                },
                "instance": {
                  "type": "string",
                  "description": "Het unieke instance id van het request dat resulteerde in de foutmelding."
                }
              }
            }
          }
        }
      }
    },
    "schemas": {
      "ConceptverzoekConfiguratieRequest": {
        "required": [
          "bevoegdGezagOin",
          "activiteitUrn",
          "toegestaan"
        ],
        "properties": {
          "bevoegdGezagOin": {
            "description": "De oin van het bevoegd gezag",
            "type": "string"
          },
          "activiteitUrn": {
            "description": "Urn van de activiteit (In de urn mogen geen spaties voorkomen). Binnen de keten staat urn bekend als de imow-id.",
            "type": "string",
            "minLength": 1,
            "maxLength": 250
          },
          "toestemming": {
            "description": "Toestemmingtype van het regelbeheerobject.",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Code van de toestemming",
                "enum": [
                  "Vergunning",
                  "Melding",
                  "Informatie",
                  "InformatieOngewoonVoorval",
                  "AanvraagMaatwerkvoorschrift",
                  "MeldingGelijkwaardigeMaatregel",
                  "AanvraagToestemmingGelijkwaardigeMaatregel"
                ]
              },
              "waarde": {
                "deprecated": true,
                "type": "string",
                "description": "Dit veld wordt genegeerd en zal in de volgende versie niet meer aanwezig zijn."
              }
            }
          },
          "toegestaan": {
            "description": "Is conceptverzoek toegestaan?",
            "type": "boolean"
          }
        }
      },
      "ConceptverzoekConfiguratieHALResponse": {
        "required": [
          "bevoegdGezagOin",
          "activiteitUrn",
          "toegestaan",
          "_links"
        ],
        "properties": {
          "bevoegdGezagOin": {
            "description": "De oin van het bevoegd gezag",
            "type": "string"
          },
          "activiteitUrn": {
            "$ref": "#/components/schemas/ConceptverzoekConfiguratieRequest/properties/activiteitUrn"
          },
          "toestemming": {
            "required": [
              "code",
              "waarde"
            ],
            "properties": {
              "code": {
                "$ref": "#/components/schemas/ConceptverzoekConfiguratieRequest/properties/toestemming/properties/code"
              },
              "waarde": {
                "type": "string",
                "description": "Waarde van het toestemmingstype."
              }
            }
          },
          "toegestaan": {
            "description": "Is conceptverzoek toegestaan?",
            "type": "boolean"
          },
          "_links": {
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "description": "HAL link",
                "required": [
                  "href"
                ],
                "properties": {
                  "href": {
                    "description": "URI",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "ConceptverzoekConfiguratieHALResponseList": {
        "properties": {
          "_embedded": {
            "properties": {
              "conceptverzoekConfiguraties": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConceptverzoekConfiguratieHALResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-wso2-cors": {
    "accessControlAllowOrigins": [
      "*"
    ],
    "corsConfigurationEnabled": true,
    "accessControlAllowCredentials": false,
    "accessControlAllowMethods": [
      "GET",
      "PUT",
      "POST",
      "DELETE",
      "PATCH",
      "OPTIONS"
    ],
    "accessControlAllowHeaders": [
      "authorization",
      "Access-Control-Allow-Origin",
      "Content-Type",
      "SOAPAction"
    ]
  }
}

