{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "XPlanManagerAPI",
    "description" : "XPlanManager REST API",
    "termsOfService" : "",
    "contact" : {
      "email" : ""
    },
    "license" : {
      "name" : "Apache 2.0",
      "url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version" : "1.8.0"
  },
  "servers" : [ {
    "url" : "/xplan-manager-api/xmanager/api/v1"
  } ],
  "security" : [ {
    "Bearer" : [ ]
  } ],
  "tags" : [ {
    "name" : "manage",
    "description" : "Manage XPlanGML documents",
    "externalDocs" : {
      "description" : "xPlanBox",
      "url" : ""
    }
  }, {
    "name" : "search",
    "description" : "Search for XPlanGML documents",
    "externalDocs" : {
      "description" : "xPlanBox",
      "url" : ""
    }
  } ],
  "paths" : {
    "/plan/{planId}/aenderungen" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getAenderungen",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Aenderungen"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "operationId" : "replaceAenderung",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Aenderungen"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Aenderungen"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value. Request body contains invalid content."
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/text" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getTexte",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Text"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "post" : {
        "tags" : [ "edit" ],
        "operationId" : "addText",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to add text",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "textmodel" ],
                "type" : "object",
                "properties" : {
                  "textmodel" : {
                    "$ref" : "#/components/schemas/Text"
                  },
                  "datei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "datei" : {
                  "contentType" : "application/pdf, application/msword, application/odt"
                },
                "textmodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Text"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or textmodel is missing or planID is not a valid int value. Text with the same textmodel already exists. Name of the datei does not match the refText/referenzURL in the textmodel."
          },
          "404" : {
            "description" : "Invalid planID, plan not found. Request body contains invalid content."
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      }
    },
    "/plans" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Search for plans",
        "description" : "Returns a list of plans where the plan matches the passed query parameter",
        "operationId" : "searchPlans",
        "parameters" : [ {
          "name" : "planName",
          "in" : "query",
          "description" : "The name of the plan to search for",
          "schema" : {
            "type" : "string"
          },
          "example" : "bplan_123, fplan-123, rplan20200803"
        }, {
          "name" : "internalId",
          "in" : "query",
          "description" : "The internalId of the plan to search for",
          "schema" : {
            "type" : "string"
          },
          "example" : "ID_8ee57554-5f58-42ea-86a4-e9f4acd9d3c1"
        }, {
          "name" : "planStatus",
          "in" : "query",
          "description" : "The planStatus of the plan to search for",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "FESTGESTELLT", "IN_AUFSTELLUNG", "ARCHIVIERT" ]
            }
          }
        }, {
          "name" : "planId",
          "in" : "query",
          "description" : "The ID of the plan to search for",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "example" : [ 1 ]
        }, {
          "name" : "includeGeltungsbereich",
          "in" : "query",
          "description" : "true if the geltungsbereichWGS84 should be included in the response, false otherwise (default: false).",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Number of plans to skip (not applied for search with internalId)",
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of plans to return (not applied for search with internalId)",
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PlanInfo"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported query parameter"
          },
          "404" : {
            "description" : "Invalid offset or limit parameter"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/gueltigkeit" : {
      "get" : {
        "tags" : [ "edit" ],
        "description" : "deprecated: Gueltigkeitszeitraum will be removed in a future version. Since 8.0 the functionality is removed! Gueltigkeitszeitraum is no longer stored.",
        "operationId" : "getGueltigkeit",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Zeitraum"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "description" : "deprecated: Gueltigkeitszeitraum will be removed in a future version. Since 8.0 the functionality is removed! Gueltigkeitszeitraum is no longer stored.",
        "operationId" : "replaceGueltigkeit",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Zeitraum"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Zeitraum"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value. Request body contains invalid content."
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/rasterbasis" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getRasterBasis",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Rasterbasis"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "post" : {
        "tags" : [ "edit" ],
        "operationId" : "addRasterBasis",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to add rasterbasis",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "rasterbasismodel" ],
                "type" : "object",
                "properties" : {
                  "rasterbasismodel" : {
                    "$ref" : "#/components/schemas/Rasterbasis"
                  },
                  "rasterdatei" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "georeferenzdatei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "rasterdatei" : {
                  "contentType" : "image/tiff, image/png"
                },
                "georeferenzdatei" : {
                  "contentType" : "text/plain"
                },
                "rasterbasismodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rasterbasis"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan type or version, missing bereich nummer or rasterbasismodel or planID is not a valid int value. Request body contains invalid content. Rasterbasis with the same rasterbasismodel already exists. Rasterbasis type TEXT or LEGEND is used for plans in XPlanGML >= 5.1. Name of the rasterdatei or georeferenzdatei does not match the referenzURL or georefURL in the rasterbasismodel."
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/text/{id}" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getTextById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the text to be returned (GML-Id of the feature)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "GML_ID_123"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Text"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value. Request body contains invalid content."
          },
          "404" : {
            "description" : "Invalid planID or text ID, plan or text not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "operationId" : "replaceTextById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be updated",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the text to be updated (GML-Id of the feature)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "GML_ID_123"
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "textmodel" ],
                "type" : "object",
                "properties" : {
                  "textmodel" : {
                    "$ref" : "#/components/schemas/Text"
                  },
                  "datei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "datei" : {
                  "contentType" : "application/pdf, application/msword, application/odt"
                },
                "textmodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Text"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or textmodel is missing or planID is not a valid int value. Text with the same textmodel already exists. Name of the datei does not match the refText/referenzURL in the textmodel."
          },
          "404" : {
            "description" : "Invalid planID or text ID, plan or Text not found. Request body contains invalid content."
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      }
    },
    "/plan" : {
      "post" : {
        "tags" : [ "manage" ],
        "summary" : "Import a XPlanGML or XPlanArchive",
        "description" : "Imports a XPlanGML or XPlanArchive",
        "operationId" : "import",
        "parameters" : [ {
          "name" : "X-Filename",
          "in" : "header",
          "description" : "Name of the file to be uploaded",
          "schema" : {
            "pattern" : "^[A-Za-z0-9.()_\\-]*$",
            "type" : "string"
          },
          "example" : "File names such as xplan.gml, xplan.xml, xplan.zip"
        }, {
          "name" : "skipSemantisch",
          "in" : "query",
          "description" : "skip semantische Validierung",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "skipFlaechenschluss",
          "in" : "query",
          "description" : "skip Flaechenschluss Ueberpruefung",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "skipGeltungsbereich",
          "in" : "query",
          "description" : "skip Geltungsbereich Ueberpruefung",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "skipLaufrichtung",
          "in" : "query",
          "description" : "skip Laufrichtung Ueberpruefung",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "profiles",
          "in" : "query",
          "description" : "Names of profiles which shall be additionaly used for validation",
          "explode" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "internalId",
          "in" : "query",
          "description" : "internalId links to VerfahrensId",
          "schema" : {
            "pattern" : "^[A-Za-z0-9\\-_]*$",
            "type" : "string"
          }
        }, {
          "name" : "planStatus",
          "in" : "query",
          "description" : "target for data storage, overrides the default derived from xplan:rechtsstand",
          "schema" : {
            "type" : "string",
            "example" : "FESTGESTELLT",
            "enum" : [ "IN_AUFSTELLUNG", "FESTGESTELLT", "ARCHIVIERT" ]
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/octet-stream" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanArchive (application/zip) file to upload",
                "format" : "binary"
              }
            },
            "application/zip" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanArchive (application/zip) file to upload",
                "format" : "binary"
              }
            },
            "application/x-zip" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanArchive (application/zip) file to upload",
                "format" : "binary"
              }
            },
            "application/x-zip-compressed" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanArchive (application/zip) file to upload",
                "format" : "binary"
              }
            },
            "text/xml" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanGML file to upload",
                "format" : "binary"
              }
            },
            "application/gml+xml" : {
              "schema" : {
                "type" : "string",
                "description" : "XPlanGML file to upload",
                "format" : "binary"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PlanInfo"
                }
              },
              "application/vnd.xplanbox.api+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PlanInfo"
                }
              },
              "application/vnd.xplanbox.api.v1+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PlanInfo"
                }
              },
              "application/vnd.xplanbox.api.v2+json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PlanInfo"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid input"
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type or content - only xml/gml, zip are accepted; all zip files entries must also match the supported content types for XPlanArchives"
          },
          "422" : {
            "description" : "Invalid content - the content of the XPlanGML file must conform to the specification of xPlanBox XPlanGML files",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ValidationReport"
                }
              },
              "application/vnd.xplanbox.api+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ValidationReport"
                }
              },
              "application/vnd.xplanbox.api.v1+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ValidationReport"
                }
              },
              "application/vnd.xplanbox.api.v2+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ValidationReport"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/basisdaten" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getBasisdaten",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan basisdaten to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Basisdaten"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "operationId" : "replaceBasisdaten",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Basisdaten"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Basisdaten"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value. Request body contains invalid content."
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/dokument" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getDokumente",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to return dokumente",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Dokument"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "post" : {
        "tags" : [ "edit" ],
        "operationId" : "addDokument",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to add a dokument",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "dokumentmodel" ],
                "type" : "object",
                "properties" : {
                  "dokumentmodel" : {
                    "$ref" : "#/components/schemas/Dokument"
                  },
                  "datei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "datei" : {
                  "contentType" : "application/pdf, application/msword, application/odt"
                },
                "dokumentmodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Dokument"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or dokumentmodel is missing or planID is not a valid int value. Dokument with the same dokumentmodel already exists. Name of the datei does not match the referenzURL in the dokumentmodel."
          },
          "404" : {
            "description" : "Unsupported plan version or planID is not a valid int value. Request body contains invalid content "
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/gml" : {
      "get" : {
        "tags" : [ "manage", "search" ],
        "summary" : "Get XPlanGML identified by the given planId",
        "description" : "Returns the XPlanGML of an existing plan identified by the given planId",
        "operationId" : "planGml",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}" : {
      "get" : {
        "tags" : [ "manage", "search" ],
        "summary" : "Get plan identified by the given planID",
        "description" : "Returns an existing plan identified by the given planID",
        "operationId" : "getById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PlanInfo"
                }
              },
              "application/xml" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PlanInfo"
                }
              },
              "application/zip" : {
                "schema" : {
                  "type" : "string",
                  "format" : "binary"
                }
              }
            }
          },
          "400" : {
            "description" : "PlanID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "delete" : {
        "tags" : [ "manage" ],
        "summary" : "Delete plan identified by the given planID",
        "description" : "Deletes an existing plan identified by the given planID",
        "operationId" : "delete",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be removed",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatusMessage"
                }
              },
              "application/xml" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatusMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "PlanID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/archive" : {
      "get" : {
        "tags" : [ "manage", "search" ],
        "summary" : "Get plan as XPlanArchive identified by the given planID",
        "description" : "Returns the XPlanArchive of an existing plan identified by the given planID",
        "operationId" : "getArchiveById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "relativeRefs",
          "in" : "query",
          "description" : "Export XPlanArchive with relative references and attachments (true) or absolute references and without attachments (false)",
          "schema" : {
            "type" : "boolean",
            "default" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/zip" : {
                "schema" : {
                  "type" : "string",
                  "format" : "binary"
                }
              }
            }
          },
          "400" : {
            "description" : "PlanID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID, plan not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/planslog" : {
      "get" : {
        "summary" : "Get planslog",
        "description" : "Returns the planslog describing imported/edited/deleted plans",
        "operationId" : "planslog",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "Number of entries to skip",
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of entries to return",
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32",
            "default" : 50
          }
        }, {
          "name" : "days",
          "in" : "query",
          "description" : "Filters the entries by the last update date beginning now",
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PlanLog"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported query parameter"
          },
          "404" : {
            "description" : "Invalid offset, limit or days parameter"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/info" : {
      "get" : {
        "summary" : "Show system and application configuration",
        "description" : "Returns the system and application configuration",
        "operationId" : "showConfig",
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagerSystemConfig"
                }
              }
            }
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/name/{planName}" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Get plan identified by the given planName",
        "description" : "Returns a list of plans which match exactly the given planName",
        "operationId" : "getByName",
        "parameters" : [ {
          "name" : "planName",
          "in" : "path",
          "description" : "name of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "bplan_123, fplan-123, rplan20200803"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PlanInfo"
                  }
                }
              }
            }
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/rasterbasis/{id}" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getRasterbasisById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be returned",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the rasterbasis to be returned (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Referenz123-"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rasterbasis"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID or rasterbasis ID, plan or rasterbasis not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "operationId" : "replaceRasterbasisById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be updated",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the rasterbasis to be updated (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Referenz123-"
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "rasterbasismodel" ],
                "type" : "object",
                "properties" : {
                  "rasterbasismodel" : {
                    "$ref" : "#/components/schemas/Rasterbasis"
                  },
                  "rasterdatei" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "georeferenzdatei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "rasterdatei" : {
                  "contentType" : "image/tiff, image/png"
                },
                "georeferenzdatei" : {
                  "contentType" : "text/plain"
                },
                "rasterbasismodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rasterbasis"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan type or version, missing bereich nummer or rasterbasismodel or planID is not a valid int value. Request body contains invalid content. Rasterbasis with the same rasterbasismodel already exists. Rasterbasis type TEXT or LEGEND is used for plans in XPlanGML >= 5.1. Name of the rasterdatei or georeferenzdatei does not match the referenzURL or georefURL in the rasterbasismodel."
          },
          "404" : {
            "description" : "Invalid planID or rasterbasis ID, plan or rasterbasis not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      },
      "delete" : {
        "tags" : [ "edit" ],
        "operationId" : "deleteRasterbasisById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to be deleted",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the rasterbasis to be deleted (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Referenz123-"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Rasterbasis"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID or rasterbasis ID, plan or rasterbasis not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/plan/{planId}/dokument/{id}" : {
      "get" : {
        "tags" : [ "edit" ],
        "operationId" : "getDokumentById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to get dokument",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the dokument to be returned (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Legende123-"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Dokument"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "404" : {
            "description" : "Invalid planID or dokument ID, plan or dokument not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      },
      "put" : {
        "tags" : [ "edit" ],
        "operationId" : "replaceDokumentById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to replace dokument",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the dokument to be updated (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Legende123-"
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "dokumentmodel" ],
                "type" : "object",
                "properties" : {
                  "dokumentmodel" : {
                    "$ref" : "#/components/schemas/Dokument"
                  },
                  "datei" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              },
              "encoding" : {
                "datei" : {
                  "contentType" : "application/pdf, application/msword, application/odt"
                },
                "dokumentmodel" : {
                  "contentType" : "application/json"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Dokument"
                }
              }
            }
          },
          "400" : {
            "description" : "Unsupported plan version or dokumentmodel is missing or planID is not a valid int value. Request body contains invalid content. Dokument with the same dokumentmodel already exists. Name of the datei does not match the referenzURL in the dokumentmodel."
          },
          "404" : {
            "description" : "Invalid planID or dokument ID, plan or dokument not found"
          },
          "406" : {
            "description" : "Requested format is not available"
          },
          "415" : {
            "description" : "Unsupported media type"
          }
        },
        "deprecated" : true
      },
      "delete" : {
        "tags" : [ "edit" ],
        "operationId" : "deleteDokumentById",
        "parameters" : [ {
          "name" : "planId",
          "in" : "path",
          "description" : "ID of the plan to delete dokument",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 123
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the dokument to be deleted (Pattern of the ID: referenzName-referenzURL, other characters than [a-z,A-Z,0-9,_,-] are removed)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "Legende123-"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Dokument"
                }
              }
            }
          },
          "404" : {
            "description" : "Invalid planID or dokument ID, plan or dokument not found"
          },
          "400" : {
            "description" : "Unsupported plan version or planID is not a valid int value"
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        },
        "deprecated" : true
      }
    },
    "/" : {
      "get" : {
        "summary" : "OpenAPI document",
        "description" : "API documentation",
        "operationId" : "openApi",
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "406" : {
            "description" : "Requested format is not available"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "ManagerSystemConfig" : {
        "type" : "object",
        "properties" : {
          "skipRasterEvaluation" : {
            "type" : "boolean"
          },
          "version" : {
            "type" : "string",
            "description" : "Version der xPlanBox",
            "example" : "v3.4.0"
          },
          "rulesMetadata" : {
            "$ref" : "#/components/schemas/RulesMetadata"
          },
          "profiles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RulesMetadata"
            }
          },
          "supportedXPlanGmlVersions" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "example" : "XPLAN_51",
              "enum" : [ "XPLAN_40", "XPLAN_41", "XPLAN_50", "XPLAN_51", "XPLAN_52", "XPLAN_53", "XPLAN_54", "XPLAN_60", "XPLAN_61" ]
            }
          },
          "rasterCrs" : {
            "type" : "string",
            "description" : "Konfiguriertes CRS für die Rasterdatenhaltung",
            "example" : "epsg:28352"
          },
          "rasterType" : {
            "type" : "string",
            "description" : "Typ der Rasterdatenhaltung: mapserver (since 8.0 only mapserver is supported)",
            "example" : "geotiff"
          },
          "skipSemantisch" : {
            "type" : "boolean",
            "description" : "Semantische Validierung bei Import ueberspringen"
          },
          "skipGeometrisch" : {
            "type" : "boolean",
            "description" : "Geometrische Validierung bei Import ueberspringen"
          },
          "skipFlaechenschluss" : {
            "type" : "boolean",
            "description" : "Ueberpruefung des Flaechenschluss bei Import ueberspringen"
          },
          "skipGeltungsbereich" : {
            "type" : "boolean",
            "description" : "Ueberpruefung des Geltungsbereich bei Import ueberspringen"
          },
          "skipLaufrichtung" : {
            "type" : "boolean",
            "description" : "Ueberpruefung der Laufrichtung bei Import ueberspringen"
          },
          "documentUrl" : {
            "type" : "string",
            "description" : "URL ueber die alle Anlagen zu einem Plan heruntergeladen werden koennen",
            "example" : "http://example.org/xdokumente/api/v1/dokument/{planId}/{fileName}"
          }
        }
      },
      "RulesMetadata" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "example" : "profil1"
          },
          "name" : {
            "type" : "string",
            "example" : "GemeindeMusterdorf"
          },
          "description" : {
            "type" : "string",
            "example" : "Beschreibung des Profils der Gemeinde Musterdorf"
          },
          "version" : {
            "type" : "string",
            "example" : "0.9.14"
          },
          "source" : {
            "type" : "string",
            "example" : "https://bitbucket.org/geowerkstatt-hamburg/xplanung/get/v0.9.14.zip"
          }
        }
      },
      "Aenderung" : {
        "required" : [ "planName", "rechtscharakter" ],
        "type" : "object",
        "properties" : {
          "planName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "rechtscharakter" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          },
          "nummer" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          }
        }
      },
      "Aenderungen" : {
        "type" : "object",
        "properties" : {
          "aendert" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Aenderung"
            }
          },
          "wurdeGeaendertVon" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Aenderung"
            }
          }
        }
      },
      "Bereich" : {
        "type" : "object",
        "properties" : {
          "nummer" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string",
            "description" : "Number of the Bereich",
            "example" : "0"
          },
          "name" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string",
            "description" : "Name of the Bereich"
          }
        },
        "description" : "Bereich of a plan"
      },
      "Gemeinde" : {
        "type" : "object",
        "properties" : {
          "ags" : {
            "type" : "string",
            "example" : "02000000"
          },
          "rs" : {
            "type" : "string",
            "example" : "123765305201"
          },
          "gemeindeName" : {
            "type" : "string",
            "example" : "Gemeindename"
          },
          "ortsteilName" : {
            "type" : "string",
            "example" : "Ortsteilname"
          }
        },
        "description" : "Gemeinden related to the Plan"
      },
      "Geometry" : {
        "required" : [ "bbox", "type" ],
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "bbox" : {
            "type" : "array",
            "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
            "items" : {
              "type" : "number",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
            }
          }
        },
        "description" : "Abstract type for all GeoJSon object except Feature and FeatureCollection ",
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "GeometryCollection" : "#/components/schemas/GeometryCollection",
            "Polygon" : "#/components/schemas/Polygon",
            "LineString" : "#/components/schemas/LineString",
            "Point" : "#/components/schemas/Point",
            "MultiPolygon" : "#/components/schemas/MultiPolygon",
            "MultiLineString" : "#/components/schemas/MultiLineString",
            "MultiPoint" : "#/components/schemas/MultiPoint"
          }
        }
      },
      "GeometryBase" : {
        "required" : [ "bbox", "type" ],
        "type" : "object",
        "description" : "Abstract type for all GeoJSon geometries",
        "allOf" : [ {
          "$ref" : "#/components/schemas/Geometry"
        } ]
      },
      "GeometryCollection" : {
        "required" : [ "bbox", "geometries" ],
        "type" : "object",
        "description" : "GeoJSon geometry collection GeometryCollections composed of a single part or a number of parts of a single type SHOULD be avoided when that single part or a single object of multipart type (MultiPoint, MultiLineString, or MultiPolygon) could be used instead. ",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryBase"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "geometries" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/GeometryElement"
              }
            }
          }
        } ]
      },
      "GeometryElement" : {
        "required" : [ "bbox", "type" ],
        "type" : "object",
        "description" : "Abstract type for all GeoJSon 'Geometry' object the type of which is not 'GeometryCollection' ",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryBase"
        }, {
          "type" : "object",
          "properties" : {
            "type" : {
              "type" : "string"
            },
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            }
          }
        } ]
      },
      "LineString" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "minItems" : 2,
              "type" : "array",
              "items" : {
                "maxItems" : 3,
                "minItems" : 2,
                "type" : "array",
                "items" : {
                  "type" : "number",
                  "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
                }
              }
            }
          }
        } ]
      },
      "LineStringCoordinates" : {
        "minItems" : 2,
        "type" : "array",
        "items" : {
          "maxItems" : 3,
          "minItems" : 2,
          "type" : "array",
          "items" : {
            "type" : "number",
            "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
          }
        }
      },
      "LinearRing" : {
        "minItems" : 4,
        "type" : "array",
        "items" : {
          "maxItems" : 3,
          "minItems" : 2,
          "type" : "array",
          "items" : {
            "type" : "number",
            "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
          }
        }
      },
      "Link" : {
        "required" : [ "href" ],
        "type" : "object",
        "properties" : {
          "href" : {
            "type" : "string",
            "format" : "uri",
            "example" : "https://xplanbox.lat-lon.de/xmanager/api/v1/plan/123"
          },
          "type" : {
            "type" : "string",
            "example" : "application/json"
          },
          "hreflang" : {
            "type" : "string",
            "example" : "en"
          },
          "title" : {
            "type" : "string",
            "example" : "Othmarschen 3, Hamburg"
          },
          "length" : {
            "type" : "integer",
            "format" : "int32"
          },
          "rel" : {
            "type" : "string",
            "example" : "self",
            "enum" : [ "self", "alternate", "planwerkwms", "gml" ]
          }
        },
        "description" : "Link to a resource related to the resource such as XPlanWerkWMS or the resource itself",
        "example" : {
          "href" : "https://xplanbox.lat-lon.de/xplan-wms/services/planwerkwms/planname/<PLANNAME>?",
          "rel" : "planwerkwms",
          "type" : "image/png",
          "hreflang" : "de",
          "title" : "Othmarschen 3"
        }
      },
      "MultiLineString" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "type" : "array",
              "items" : {
                "minItems" : 2,
                "type" : "array",
                "items" : {
                  "maxItems" : 3,
                  "minItems" : 2,
                  "type" : "array",
                  "items" : {
                    "type" : "number",
                    "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
                  }
                }
              }
            }
          }
        } ]
      },
      "MultiPoint" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "type" : "array",
              "items" : {
                "maxItems" : 3,
                "minItems" : 2,
                "type" : "array",
                "items" : {
                  "type" : "number",
                  "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
                }
              }
            }
          }
        } ]
      },
      "MultiPolygon" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "type" : "array",
              "items" : {
                "type" : "array",
                "items" : {
                  "minItems" : 4,
                  "type" : "array",
                  "items" : {
                    "maxItems" : 3,
                    "minItems" : 2,
                    "type" : "array",
                    "items" : {
                      "type" : "number",
                      "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
                    }
                  }
                }
              }
            }
          }
        } ]
      },
      "PlanInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "description" : "internal unique manager identifier, generated at import time",
            "format" : "int32",
            "example" : 123
          },
          "type" : {
            "type" : "string",
            "example" : "BP_Plan"
          },
          "version" : {
            "type" : "string",
            "example" : "XPLAN_51",
            "enum" : [ "XPLAN_40", "XPLAN_41", "XPLAN_50", "XPLAN_51", "XPLAN_52", "XPLAN_53", "XPLAN_54", "XPLAN_60", "XPLAN_61" ]
          },
          "planStatus" : {
            "type" : "string",
            "example" : "Festgestellt",
            "enum" : [ "FESTGESTELLT", "IN_AUFSTELLUNG", "ARCHIVIERT" ]
          },
          "raster" : {
            "type" : "boolean",
            "example" : true
          },
          "importDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "inspirePublished" : {
            "type" : "boolean",
            "example" : false
          },
          "bbox" : {
            "$ref" : "#/components/schemas/PlanInfoBbox"
          },
          "geltungsbereichWGS84" : {
            "$ref" : "#/components/schemas/Geometry"
          },
          "xplanModelData" : {
            "$ref" : "#/components/schemas/PlanInfoXplanModelData"
          },
          "links" : {
            "type" : "array",
            "description" : "Links related to the resource such as XPlanWerkWMS or self link",
            "example" : {
              "href" : "https://xplanbox.lat-lon.de/xplan-wms/services/planwerkwms/planname/<PLANNAME>?",
              "rel" : "planwerkwms",
              "type" : "image/png",
              "hreflang" : "de",
              "title" : "Othmarschen 3"
            },
            "items" : {
              "$ref" : "#/components/schemas/Link"
            }
          }
        }
      },
      "PlanInfoBbox" : {
        "type" : "object",
        "properties" : {
          "minX" : {
            "type" : "number",
            "format" : "double",
            "example" : 9.880772
          },
          "minY" : {
            "type" : "number",
            "format" : "double",
            "example" : 53.544973
          },
          "maxX" : {
            "type" : "number",
            "format" : "double",
            "example" : 9.890302
          },
          "maxY" : {
            "type" : "number",
            "format" : "double",
            "example" : 53.546704
          },
          "crs" : {
            "type" : "string",
            "example" : "epsg:4326"
          }
        },
        "description" : "bbox of the plan"
      },
      "PlanInfoXplanModelData" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "example" : "Othmarschen3"
          },
          "nummer" : {
            "type" : "string",
            "example" : "-"
          },
          "internalId" : {
            "type" : "string",
            "example" : "12341"
          },
          "ags" : {
            "type" : "string",
            "description" : "Replaced by gemeinden.ags",
            "example" : "02000000",
            "deprecated" : true
          },
          "gemeindeName" : {
            "type" : "string",
            "description" : "Replaced by gemeinden.gemeindeName",
            "example" : "Gemeindename",
            "deprecated" : true
          },
          "gemeinden" : {
            "type" : "array",
            "description" : "Gemeinden related to the Plan",
            "items" : {
              "$ref" : "#/components/schemas/Gemeinde"
            }
          },
          "rechtsstand" : {
            "type" : "string",
            "description" : "translation of code list value of xplan:rechtsstand",
            "example" : "Satzung"
          },
          "inkrafttretensDatum" : {
            "type" : "string",
            "format" : "date-time"
          },
          "bereiche" : {
            "type" : "array",
            "description" : "Bereiche related to the Plan",
            "items" : {
              "$ref" : "#/components/schemas/Bereich"
            }
          }
        },
        "description" : "attributes derived from XPlanGML data model"
      },
      "Point" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "maxItems" : 3,
              "minItems" : 2,
              "type" : "array",
              "items" : {
                "type" : "number",
                "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
              }
            }
          }
        } ]
      },
      "Polygon" : {
        "required" : [ "bbox", "coordinates" ],
        "type" : "object",
        "description" : "GeoJSon geometry",
        "allOf" : [ {
          "$ref" : "#/components/schemas/GeometryElement"
        }, {
          "type" : "object",
          "properties" : {
            "bbox" : {
              "type" : "array",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
              "items" : {
                "type" : "number",
                "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
              }
            },
            "coordinates" : {
              "type" : "array",
              "items" : {
                "minItems" : 4,
                "type" : "array",
                "items" : {
                  "maxItems" : 3,
                  "minItems" : 2,
                  "type" : "array",
                  "items" : {
                    "type" : "number",
                    "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
                  }
                }
              }
            }
          }
        } ]
      },
      "Position" : {
        "maxItems" : 3,
        "minItems" : 2,
        "type" : "array",
        "items" : {
          "type" : "number",
          "description" : "GeoJSon fundamental geometry construct. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. Implementations SHOULD NOT extend positions beyond three elements because the semantics of extra elements are unspecified and ambiguous. Historically, some implementations have used a fourth element to carry a linear referencing measure (sometimes denoted as \"M\") or a numerical timestamp, but in most situations a parser will not be able to properly interpret these values. The interpretation and meaning of additional elements is beyond the scope of this specification, and additional elements MAY be ignored by parsers. "
        }
      },
      "Bbox" : {
        "type" : "object",
        "properties" : {
          "minX" : {
            "type" : "number",
            "format" : "double",
            "example" : 9.880772
          },
          "minY" : {
            "type" : "number",
            "format" : "double",
            "example" : 53.544973
          },
          "maxX" : {
            "type" : "number",
            "format" : "double",
            "example" : 9.890302
          },
          "maxY" : {
            "type" : "number",
            "format" : "double",
            "example" : 53.546704
          },
          "crs" : {
            "type" : "string",
            "example" : "epsg:4326"
          }
        },
        "description" : "The bounding box of the geometry identifying the failure. Fallback if the markerGeom cannot be created."
      },
      "ExternalReferenceResult" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "example" : "stelling.png"
          },
          "status" : {
            "type" : "string",
            "example" : "AVAILABLE",
            "enum" : [ "AVAILABLE", "MISSING", "UNCHECKED", "UNREFERENCED" ]
          }
        }
      },
      "Feature" : {
        "required" : [ "bbox", "geometry", "id", "properties" ],
        "type" : "object",
        "properties" : {
          "bbox" : {
            "type" : "array",
            "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
            "items" : {
              "type" : "number",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
            }
          },
          "geometry" : {
            "$ref" : "#/components/schemas/Geometry"
          },
          "properties" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "id" : {
            "type" : "object"
          }
        },
        "description" : "GeoJSon 'Feature' object"
      },
      "FeatureCollection" : {
        "required" : [ "bbox", "features" ],
        "type" : "object",
        "properties" : {
          "bbox" : {
            "type" : "array",
            "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. ",
            "items" : {
              "type" : "number",
              "description" : "A GeoJSON object MAY have a member named \"bbox\" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries. "
            }
          },
          "features" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Feature"
            }
          }
        },
        "description" : "GeoJSon 'FeatureCollection' object"
      },
      "RasterEvaluationResult" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "example" : "stelling.png"
          },
          "crsStatus" : {
            "type" : "string",
            "example" : "SUPPORTED",
            "enum" : [ "SUPPORTED", "UNSUPPORTED", "INVALID", "MISSING" ]
          },
          "imageFormatStatus" : {
            "type" : "string",
            "example" : "SUPPORTED",
            "enum" : [ "SUPPORTED", "UNSUPPORTED", "MISSING" ]
          }
        }
      },
      "ValidationReport" : {
        "type" : "object",
        "properties" : {
          "filename" : {
            "type" : "string",
            "example" : "xplan52-test.gml"
          },
          "validationName" : {
            "type" : "string",
            "example" : "xplan52-test"
          },
          "date" : {
            "type" : "string",
            "format" : "date-time"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "wmsUrl" : {
            "type" : "string",
            "description" : "deprecated: XPlanValidatorWMS will be removed in a future version",
            "format" : "uri",
            "example" : "https://xplanbox.lat-lon.de/xplan-validator-wms/services/wms?PLANWERK_MANAGERID=13",
            "deprecated" : true
          },
          "links" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportLink"
            }
          },
          "syntaktisch" : {
            "$ref" : "#/components/schemas/ValidationReportValidationResultSyntaktisch"
          },
          "plans" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportPlan"
            }
          },
          "geomfindings" : {
            "$ref" : "#/components/schemas/FeatureCollection"
          }
        }
      },
      "ValidationReportLink" : {
        "required" : [ "href", "schema" ],
        "type" : "object",
        "properties" : {
          "expirationTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "href" : {
            "type" : "string",
            "format" : "uri",
            "example" : "https://xplanbox.lat-lon.de/xmanager/api/v1/plan/123"
          },
          "type" : {
            "type" : "string",
            "example" : "application/json"
          },
          "hreflang" : {
            "type" : "string",
            "example" : "en"
          },
          "title" : {
            "type" : "string",
            "example" : "Othmarschen 3, Hamburg"
          },
          "length" : {
            "type" : "integer",
            "format" : "int32"
          },
          "schema" : {
            "type" : "string",
            "format" : "uri",
            "example" : "https://xplanbox.lat-lon.de/xmanager/api/v1#/components/schemas/ValidationReport"
          },
          "rel" : {
            "type" : "string",
            "example" : "self",
            "enum" : [ "items" ]
          }
        },
        "description" : "Link to a resource related to the validated plan such as the JSON-FG items"
      },
      "ValidationReportPlan" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "string",
            "example" : "XPLAN_51",
            "enum" : [ "XPLAN_40", "XPLAN_41", "XPLAN_50", "XPLAN_51", "XPLAN_52", "XPLAN_53", "XPLAN_54", "XPLAN_60", "XPLAN_61" ]
          },
          "bbox" : {
            "$ref" : "#/components/schemas/PlanInfoBbox"
          },
          "valid" : {
            "type" : "boolean",
            "example" : false
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the validation. If missing the validation is not started yet.",
            "example" : "COMPLETED",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "externalReferencesResult" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReferenceResult"
            }
          },
          "rasterEvaluationResult" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RasterEvaluationResult"
            }
          },
          "validationResult" : {
            "$ref" : "#/components/schemas/ValidationReportValidationResult"
          },
          "name" : {
            "type" : "string",
            "example" : "Othmarschen3"
          },
          "type" : {
            "type" : "string",
            "example" : "BP_Plan"
          }
        }
      },
      "ValidationReportValidationResult" : {
        "type" : "object",
        "properties" : {
          "semantisch" : {
            "$ref" : "#/components/schemas/ValidationReportValidationResultSemantischWithRulesMetadata"
          },
          "geometrisch" : {
            "$ref" : "#/components/schemas/ValidationReportValidationResultGeometrisch"
          },
          "profile" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultProfil"
            }
          }
        }
      },
      "ValidationReportValidationResultGeometrisch" : {
        "type" : "object",
        "properties" : {
          "valid" : {
            "type" : "boolean",
            "example" : false
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the validation. If missing the validation is not started yet.",
            "example" : "COMPLETED",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "rules" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultGeometrischRule"
            }
          }
        }
      },
      "ValidationReportValidationResultGeometrischRule" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "findings" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultGeometrischRuleFinding"
            }
          }
        }
      },
      "ValidationReportValidationResultGeometrischRuleFinding" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : "string"
          },
          "level" : {
            "type" : "string",
            "enum" : [ "VALID", "SKIPPED", "RECOMMENDATION", "WARNING", "ERROR" ]
          },
          "gmlIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "markerGeom" : {
            "$ref" : "#/components/schemas/Geometry"
          },
          "markerBbox" : {
            "$ref" : "#/components/schemas/Bbox"
          }
        }
      },
      "ValidationReportValidationResultProfil" : {
        "type" : "object",
        "properties" : {
          "rulesMetadata" : {
            "$ref" : "#/components/schemas/RulesMetadata"
          },
          "ergebnis" : {
            "$ref" : "#/components/schemas/ValidationReportValidationResultSemantisch"
          }
        }
      },
      "ValidationReportValidationResultSemantisch" : {
        "type" : "object",
        "properties" : {
          "valid" : {
            "type" : "boolean",
            "example" : false
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the validation. If missing the validation is not started yet.",
            "example" : "COMPLETED",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "rules" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultSemantischRule"
            }
          }
        }
      },
      "ValidationReportValidationResultSemantischRule" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "findings" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultSemantischRuleFinding"
            }
          }
        }
      },
      "ValidationReportValidationResultSemantischRuleFinding" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : "string"
          },
          "level" : {
            "type" : "string",
            "enum" : [ "VALID", "SKIPPED", "RECOMMENDATION", "WARNING", "ERROR" ]
          },
          "gmlIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "ValidationReportValidationResultSemantischWithRulesMetadata" : {
        "type" : "object",
        "properties" : {
          "valid" : {
            "type" : "boolean",
            "example" : false
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the validation. If missing the validation is not started yet.",
            "example" : "COMPLETED",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "rules" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidationReportValidationResultSemantischRule"
            }
          },
          "rulesMetadata" : {
            "$ref" : "#/components/schemas/RulesMetadata"
          }
        }
      },
      "ValidationReportValidationResultSyntaktisch" : {
        "type" : "object",
        "properties" : {
          "valid" : {
            "type" : "boolean",
            "example" : false
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the validation. If missing the validation is not started yet.",
            "example" : "COMPLETED",
            "enum" : [ "TERMINATED_WITH_ERRORS", "TERMINATED_REASON_UNKNOWN", "COMPLETED", "RUNNING", "SKIPPED" ]
          },
          "errors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "StatusMessage" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : "string",
            "example" : "Plan mit ID 123 entfernt"
          }
        }
      },
      "Basisdaten" : {
        "required" : [ "planArt" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "beschreibung" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "planArt" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          },
          "verfahren" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          },
          "rechtsstand" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          },
          "rechtsverordnungsDatum" : {
            "type" : "string",
            "format" : "date-time"
          },
          "technHerstellDatum" : {
            "type" : "string",
            "format" : "date-time"
          },
          "untergangsDatum" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "Dokument" : {
        "required" : [ "typ" ],
        "type" : "object",
        "properties" : {
          "georefURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "georefMimeType" : {
            "type" : "string"
          },
          "art" : {
            "type" : "string"
          },
          "informationssystemURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "referenzURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzMimeType" : {
            "type" : "string"
          },
          "beschreibung" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "datum" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "type" : "string"
          },
          "typ" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "Zeitraum" : {
        "type" : "object",
        "properties" : {
          "start" : {
            "type" : "string",
            "format" : "date-time"
          },
          "ende" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "Rasterbasis" : {
        "type" : "object",
        "properties" : {
          "georefURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "georefMimeType" : {
            "type" : "string"
          },
          "art" : {
            "type" : "string"
          },
          "informationssystemURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "referenzURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzMimeType" : {
            "type" : "string"
          },
          "beschreibung" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "datum" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "type" : "string"
          },
          "bereichNummer" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.()_\\-]*$",
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "description" : "Discriminates between different Rasterbasis types, required for XPlanGML 4.x and 5.x.",
            "example" : "SCAN",
            "enum" : [ "SCAN", "TEXT", "LEGEND" ],
            "default" : "SCAN"
          }
        }
      },
      "Referenz" : {
        "type" : "object",
        "properties" : {
          "georefURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "georefMimeType" : {
            "type" : "string"
          },
          "art" : {
            "type" : "string"
          },
          "informationssystemURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "referenzURL" : {
            "maxLength" : 250,
            "minLength" : 0,
            "pattern" : "^[A-Za-z0-9.@:%_\\+.~#?&//=\\-]*$",
            "type" : "string"
          },
          "referenzMimeType" : {
            "type" : "string"
          },
          "beschreibung" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "datum" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "Text" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "schluessel" : {
            "maxLength" : 50,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "gesetzlicheGrundlage" : {
            "maxLength" : 100,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "text" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "pattern" : "^[\\u0030-\\u0039\\u0021-\\u0026\\u0028-\\u002F\\u003A-\\u0084\\u0086-\\u009F\\u00A1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\s]*$",
            "type" : "string"
          },
          "refText" : {
            "$ref" : "#/components/schemas/Referenz"
          },
          "rechtscharakter" : {
            "maximum" : 99999,
            "exclusiveMaximum" : false,
            "minimum" : 1000,
            "exclusiveMinimum" : false,
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "PlanLog" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "description" : "internal unique identifier of the log entry",
            "format" : "int32",
            "example" : 123
          },
          "planId" : {
            "type" : "integer",
            "description" : "internal unique manager identifier",
            "format" : "int32",
            "example" : 123
          },
          "version" : {
            "type" : "string",
            "example" : "XPLAN_51",
            "enum" : [ "XPLAN_40", "XPLAN_41", "XPLAN_50", "XPLAN_51", "XPLAN_52", "XPLAN_53", "XPLAN_54", "XPLAN_60", "XPLAN_61", "XPLAN_SYN" ]
          },
          "type" : {
            "type" : "string",
            "example" : "BP_Plan",
            "enum" : [ "BP_Plan", "FP_Plan", "RP_Plan", "LP_Plan", "SO_Plan" ]
          },
          "bbox" : {
            "$ref" : "#/components/schemas/PlanInfoBbox"
          },
          "planstatusNew" : {
            "type" : "string",
            "example" : "Festgestellt",
            "enum" : [ "FESTGESTELLT", "IN_AUFSTELLUNG", "ARCHIVIERT" ]
          },
          "planstatusOld" : {
            "type" : "string",
            "example" : "Festgestellt",
            "enum" : [ "FESTGESTELLT", "IN_AUFSTELLUNG", "ARCHIVIERT" ]
          },
          "operation" : {
            "type" : "string",
            "example" : "Insert",
            "enum" : [ "INSERT", "UPDATE", "DELETE" ]
          },
          "lastUpdateDate" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      }
    },
    "securitySchemes" : {
      "Bearer" : {
        "type" : "http",
        "scheme" : "bearer",
        "bearerFormat" : "JWT"
      }
    }
  }
}