{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "Activiti Cloud Starter :: Modeling ReST API",
    "license" : {
      "name" : "© null-null null. All rights reserved"
    },
    "version" : "0.0.1-PR-498-632-SNAPSHOT"
  },
  "servers" : [ {
    "url" : "http://localhost:80",
    "description" : "Inferred Url"
  } ],
  "tags" : [ {
    "name" : "models",
    "description" : "Retrieve and manage models"
  }, {
    "name" : "projects",
    "description" : "Retrieve and manage project definitions"
  } ],
  "paths" : {
    "/v1/model-types" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "List model types",
        "description" : "Get the list of available model types.",
        "operationId" : "getModelTypesUsingGET",
        "parameters" : [ {
          "name" : "maxItems",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "skipCount",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModelType"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModelType"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/models" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "List all the models that are not coupled to a project",
        "description" : "Get the models that has GLOBAL as scope. Minimal information for each model is returned.",
        "operationId" : "getGlobalModelsUsingGET",
        "parameters" : [ {
          "name" : "maxItems",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "skipCount",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "The type of the model to filter",
          "required" : true,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeOrphans",
          "in" : "query",
          "description" : "If true, then models with no relationship to any project are retrieved regardless of their scope",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "post" : {
        "tags" : [ "models" ],
        "summary" : "Create new model that does note belong to a project",
        "description" : "Create a new model with no relationship to other projects",
        "operationId" : "createModelWithoutProjectUsingPOST",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ModelReq"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/models/{modelId}" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "Get metadata information for a model",
        "operationId" : "getModelUsingGET",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to retrieve",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "put" : {
        "tags" : [ "models" ],
        "summary" : "Update model metadata",
        "description" : "Update the details of a model.",
        "operationId" : "updateModelUsingPUT",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to update",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ModelReq"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "201" : {
            "description" : "Created"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "delete" : {
        "tags" : [ "models" ],
        "summary" : "Delete model",
        "operationId" : "deleteModelUsingDELETE",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to delete",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/v1/models/{modelId}/content" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "Get the model content",
        "description" : "Retrieve the content of the model for the identifier <b>modelId</b> with the content type corresponding to the model type (xml for process models and json for the others).<br>For <b>Accept: image/svg+xml</b> request header, the svg image corresponding to the model content will be retrieved.",
        "operationId" : "getModelContentUsingGET",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to get the content",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "put" : {
        "tags" : [ "models" ],
        "summary" : "Update model content",
        "description" : "Update the content of the model from file.",
        "operationId" : "updateModelContentUsingPUT",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to update",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "The file containing the model content",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created"
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/models/{modelId}/export" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "Export a model definition as file",
        "description" : "Allows to download a file containing a model metadata along with the model content.",
        "operationId" : "exportModelUsingGET",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to export",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "attachment",
          "in" : "query",
          "description" : "<b>true</b> value enables a web browser to download the file as an attachment.<br> <b>false</b> means that a web browser may preview the file in a new tab or window, but not download the file.",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/models/{modelId}/validate" : {
      "post" : {
        "tags" : [ "models" ],
        "summary" : "Validate a model content",
        "description" : "Allows to validate the model content without save it.",
        "operationId" : "validateModelUsingPOST",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to validate the content for",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "projectId",
          "in" : "query",
          "description" : "The id of the project in whose context the model is going to be validated",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "validateUsage",
          "in" : "query",
          "description" : "The model is going to be validated and checked used in other model",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "string",
                "format" : "binary"
              }
            },
            "application/octet-stream" : {
              "schema" : {
                "type" : "string",
                "format" : "binary"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created"
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/models/{modelId}/validate/extensions" : {
      "post" : {
        "tags" : [ "models" ],
        "summary" : "Validate model extensions",
        "description" : "Allows to validate the model extensions without save them.",
        "operationId" : "validateModelExtensionsUsingPOST",
        "parameters" : [ {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to validate the content for",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "projectId",
          "in" : "query",
          "description" : "The id of the project in whose context the model is going to be validated",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "string",
                "format" : "binary"
              }
            },
            "application/octet-stream" : {
              "schema" : {
                "type" : "string",
                "format" : "binary"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created"
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}/models" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "List models for an project",
        "description" : "Get the models associated with an project. Minimal information for each model is returned.",
        "operationId" : "getModelsUsingGET",
        "parameters" : [ {
          "name" : "maxItems",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to get the models for",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "skipCount",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "The type of the model to filter",
          "required" : true,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "post" : {
        "tags" : [ "models" ],
        "summary" : "Create new model belonging to an project",
        "description" : "Create a new model related to an existing project",
        "operationId" : "createModelUsingPOST",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to associate the new model with",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ModelReq"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}/models/import" : {
      "post" : {
        "tags" : [ "models" ],
        "summary" : "Import a model from file",
        "description" : "Allows a file to be uploaded containing a model definition.",
        "operationId" : "importModelUsingPOST",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to associate the new model with",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file", "type" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "The file containing the model definition",
                    "format" : "binary"
                  },
                  "type" : {
                    "type" : "string",
                    "description" : "The type of the model to be imported"
                  }
                }
              },
              "encoding" : {
                "type" : {
                  "contentType" : "text/plain"
                }
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}/models/{modelId}" : {
      "put" : {
        "tags" : [ "models" ],
        "summary" : "Add or update the relationship between an existing model, and the project",
        "description" : "Get the model associated with the project updated. Minimal information for the model is returned.",
        "operationId" : "putProjectModelRelationshipUsingPUT",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to associate the model with",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model to associate the project with",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scope",
          "in" : "query",
          "description" : "Scope to update the model if needed (optional)",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "force",
          "in" : "query",
          "description" : "If the scope of the model has restrictions on the number of projects that a model can belong to, remove the other relationships of the model with other projects",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "201" : {
            "description" : "Created"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "delete" : {
        "tags" : [ "models" ],
        "summary" : "Delete the relationship between an existing model, and the project",
        "description" : "Get the model associated with the project updated. Minimal information for the model is returned.",
        "operationId" : "deleteProjectModelRelationshipUsingDELETE",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project of the relationship to delete",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "modelId",
          "in" : "path",
          "description" : "The id of the model of the relationship to delete",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfModel"
                }
              }
            }
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/v1/schemas/{modelType}" : {
      "get" : {
        "tags" : [ "models" ],
        "summary" : "Get validation schema for model type",
        "description" : "Get the content of the schema used to validate the given model type.",
        "operationId" : "getSchemaUsingGET",
        "parameters" : [ {
          "name" : "modelType",
          "in" : "path",
          "description" : "modelType",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects" : {
      "get" : {
        "tags" : [ "projects" ],
        "summary" : "List projects",
        "description" : "Get the list of available projects. Minimal information for each project is returned.",
        "operationId" : "getProjectsUsingGET",
        "parameters" : [ {
          "name" : "maxItems",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "skipCount",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The name or part of the name to filter projects",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListResponseContentOfProject"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "post" : {
        "tags" : [ "projects" ],
        "summary" : "Create new project",
        "operationId" : "createProjectUsingPOST",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/import" : {
      "post" : {
        "tags" : [ "projects" ],
        "summary" : "Import an project as zip file",
        "description" : "Allows a zip file to be uploaded containing an project definition and any number of included models.",
        "operationId" : "importProjectUsingPOST",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "name" : {
                    "type" : "string",
                    "description" : "The name of the project that will override the current name of the project in the zip file"
                  }
                }
              },
              "encoding" : {
                "name" : {
                  "contentType" : "text/plain"
                }
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}" : {
      "get" : {
        "tags" : [ "projects" ],
        "summary" : "Get project",
        "operationId" : "getProjectUsingGET",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to retrieve",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "put" : {
        "tags" : [ "projects" ],
        "summary" : "Update project details",
        "operationId" : "updateProjectUsingPUT",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to update",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              }
            }
          },
          "201" : {
            "description" : "Created"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      },
      "delete" : {
        "tags" : [ "projects" ],
        "summary" : "Delete project",
        "operationId" : "deleteProjectUsingDELETE",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to delete",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/v1/projects/{projectId}/copy" : {
      "post" : {
        "tags" : [ "projects" ],
        "summary" : "Copy an project as a new project with chosen name",
        "description" : "This will create a new project with chosen name containing the project folder and all related models.<br>",
        "operationId" : "copyProjectUsingPOST",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to copy",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The name of the project that will replace the original name of the project",
          "required" : true,
          "style" : "form",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              },
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EntryResponseContentOfProject"
                }
              }
            }
          },
          "201" : {
            "description" : "Created"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}/export" : {
      "get" : {
        "tags" : [ "projects" ],
        "summary" : "Export an project as zip file",
        "description" : "This will create and download the zip containing the project folder and all related models.<br>",
        "operationId" : "exportProjectUsingGET",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to export",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "attachment",
          "in" : "query",
          "description" : "<b>true</b> value enables a web browser to download the file as an attachment.<br> <b>false</b> means that a web browser may preview the file in a new tab or window, but not download the file.",
          "required" : false,
          "style" : "form",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    },
    "/v1/projects/{projectId}/validate" : {
      "get" : {
        "tags" : [ "projects" ],
        "summary" : "Validate an project by id",
        "operationId" : "validateProjectUsingGET",
        "parameters" : [ {
          "name" : "projectId",
          "in" : "path",
          "description" : "The id of the project to validate",
          "required" : true,
          "style" : "simple",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Not Found"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "EntriesResponseContentOfModel" : {
        "title" : "EntriesResponseContentOfModel",
        "type" : "object",
        "properties" : {
          "entries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EntryResponseContentOfModel"
            }
          },
          "pagination" : {
            "$ref" : "#/components/schemas/PaginationMetadata"
          }
        }
      },
      "EntriesResponseContentOfModelType" : {
        "title" : "EntriesResponseContentOfModelType",
        "type" : "object",
        "properties" : {
          "entries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EntryResponseContentOfModelType"
            }
          },
          "pagination" : {
            "$ref" : "#/components/schemas/PaginationMetadata"
          }
        }
      },
      "EntriesResponseContentOfProject" : {
        "title" : "EntriesResponseContentOfProject",
        "type" : "object",
        "properties" : {
          "entries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/EntryResponseContentOfProject"
            }
          },
          "pagination" : {
            "$ref" : "#/components/schemas/PaginationMetadata"
          }
        }
      },
      "EntryResponseContentOfModel" : {
        "title" : "EntryResponseContentOfModel",
        "type" : "object",
        "properties" : {
          "entry" : {
            "$ref" : "#/components/schemas/ModelRes"
          }
        }
      },
      "EntryResponseContentOfModelType" : {
        "title" : "EntryResponseContentOfModelType",
        "type" : "object",
        "properties" : {
          "entry" : {
            "$ref" : "#/components/schemas/ModelType"
          }
        }
      },
      "EntryResponseContentOfProject" : {
        "title" : "EntryResponseContentOfProject",
        "type" : "object",
        "properties" : {
          "entry" : {
            "$ref" : "#/components/schemas/Project"
          }
        }
      },
      "ListResponseContentOfModel" : {
        "title" : "ListResponseContentOfModel",
        "type" : "object",
        "properties" : {
          "list" : {
            "$ref" : "#/components/schemas/EntriesResponseContentOfModel"
          }
        }
      },
      "ListResponseContentOfModelType" : {
        "title" : "ListResponseContentOfModelType",
        "type" : "object",
        "properties" : {
          "list" : {
            "$ref" : "#/components/schemas/EntriesResponseContentOfModelType"
          }
        }
      },
      "ListResponseContentOfProject" : {
        "title" : "ListResponseContentOfProject",
        "type" : "object",
        "properties" : {
          "list" : {
            "$ref" : "#/components/schemas/EntriesResponseContentOfProject"
          }
        }
      },
      "ModelReq" : {
        "title" : "ModelReq",
        "type" : "object",
        "properties" : {
          "content" : {
            "type" : "string",
            "format" : "byte"
          },
          "contentType" : {
            "type" : "string"
          },
          "createdBy" : {
            "type" : "object"
          },
          "creationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "extensions" : {
            "type" : "object"
          },
          "id" : {
            "type" : "string"
          },
          "lastModifiedBy" : {
            "type" : "object"
          },
          "lastModifiedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "name" : {
            "type" : "string"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "GLOBAL", "PROJECT" ]
          },
          "template" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          }
        }
      },
      "ModelRes" : {
        "title" : "ModelRes",
        "type" : "object",
        "properties" : {
          "content" : {
            "type" : "string",
            "format" : "byte"
          },
          "contentType" : {
            "type" : "string"
          },
          "createdBy" : {
            "type" : "object"
          },
          "creationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "extensions" : {
            "type" : "object"
          },
          "id" : {
            "type" : "string"
          },
          "lastModifiedBy" : {
            "type" : "object"
          },
          "lastModifiedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "name" : {
            "type" : "string"
          },
          "projects" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "GLOBAL", "PROJECT" ]
          },
          "template" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "ModelType" : {
        "title" : "ModelType",
        "type" : "object",
        "properties" : {
          "allowedContentFileExtension" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "contentFileExtension" : {
            "type" : "string"
          },
          "extensionsFileSuffix" : {
            "type" : "string"
          },
          "folderName" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "PaginationMetadata" : {
        "title" : "PaginationMetadata",
        "type" : "object",
        "properties" : {
          "count" : {
            "type" : "integer",
            "format" : "int64"
          },
          "hasMoreItems" : {
            "type" : "boolean"
          },
          "maxItems" : {
            "type" : "integer",
            "format" : "int64"
          },
          "skipCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalItems" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "Project" : {
        "title" : "Project",
        "type" : "object",
        "properties" : {
          "createdBy" : {
            "type" : "object"
          },
          "creationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "description" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "lastModifiedBy" : {
            "type" : "object"
          },
          "lastModifiedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "name" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          }
        }
      }
    }
  }
}