---
openapi: "3.0.1"
info:
  title: "Modeling ReST API"
  license:
    name: "© null-null null. All rights reserved"
  version: "0.0.1-PR-819-2110-SNAPSHOT"
servers:
- url: "/"
tags:
- name: "projects"
  description: "Retrieve and manage project definitions"
- name: "models"
  description: "Retrieve and manage models"
paths:
  /v1/projects/{projectId}:
    get:
      tags:
      - "projects"
      summary: "Get project"
      operationId: "getProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to retrieve"
        required: true
        schema:
          type: "string"
      - name: "include"
        in: "query"
        description: "The name of values to include with the returned projects"
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    put:
      tags:
      - "projects"
      summary: "Update project details"
      operationId: "updateProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to update"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Project"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    delete:
      tags:
      - "projects"
      summary: "Delete project"
      operationId: "deleteProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to delete"
        required: true
        schema:
          type: "string"
      responses:
        "204":
          description: "No Content"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "putProjectModelRelationship"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to associate the model with"
        required: true
        schema:
          type: "string"
      - name: "modelId"
        in: "path"
        description: "The id of the model to associate the project with"
        required: true
        schema:
          type: "string"
      - name: "scope"
        in: "query"
        description: "Scope to update the model if needed (optional)"
        required: false
        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
        schema:
          type: "boolean"
          default: false
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    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: "deleteProjectModelRelationship"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project of the relationship to delete"
        required: true
        schema:
          type: "string"
      - name: "modelId"
        in: "path"
        description: "The id of the model of the relationship to delete"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/models/{modelId}:
    get:
      tags:
      - "models"
      summary: "Get metadata information for a model"
      operationId: "getModel"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to retrieve"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    put:
      tags:
      - "models"
      summary: "Update model metadata"
      description: "Update the details of a model."
      operationId: "updateModel"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to update"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Model"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    delete:
      tags:
      - "models"
      summary: "Delete model"
      operationId: "deleteModel"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to delete"
        required: true
        schema:
          type: "string"
      responses:
        "204":
          description: "No Content"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "getModelDiagram"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to get the content"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
      - oauth: []
    put:
      tags:
      - "models"
      summary: "Update model content"
      description: "Update the content of the model from file."
      operationId: "updateModelContent"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to update"
        required: true
        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:
        "204":
          description: "No Content"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/projects:
    get:
      tags:
      - "projects"
      summary: "List projects"
      description: "Get the list of available projects. Minimal information for each\
        \ project is returned."
      operationId: "getProjects"
      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
        schema:
          type: "string"
      - name: "filters"
        in: "query"
        description: "The filter name to filter the returned projects"
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      - name: "include"
        in: "query"
        description: "The name of values to include with the returned projects"
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ListResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/ListResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    post:
      tags:
      - "projects"
      summary: "Create new project"
      operationId: "createProject"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Project"
        required: true
      responses:
        "201":
          description: "Created"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "getModels"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to get the models for"
        required: true
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "The type of the model to filter"
        required: true
        schema:
          type: "string"
      - 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/hal+json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    post:
      tags:
      - "models"
      summary: "Create new model belonging to an project"
      description: "Create a new model related to an existing project"
      operationId: "createModel"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to associate the new model with"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Model"
        required: true
      responses:
        "201":
          description: "Created"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "importModel"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to associate the new model with"
        required: true
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "The type of the model to be imported"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - "file"
              type: "object"
              properties:
                file:
                  type: "string"
                  description: "The file containing the model definition"
                  format: "binary"
      responses:
        "201":
          description: "Created"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "copyProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to copy"
        required: true
        schema:
          type: "string"
      - name: "name"
        in: "query"
        description: "The name of the project that will replace the original name\
          \ of the project"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "importProject"
      parameters:
      - name: "name"
        in: "query"
        description: "The name of the project that will override the current name\
          \ of the project in the zip file"
        required: false
        schema:
          type: "string"
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - "file"
              type: "object"
              properties:
                file:
                  type: "string"
                  description: "The file containing the zipped project"
                  format: "binary"
      responses:
        "201":
          description: "Created"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "getGlobalModels"
      parameters:
      - name: "type"
        in: "query"
        description: "The type of the model to filter"
        required: true
        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
        schema:
          type: "boolean"
          default: false
      - 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/hal+json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
    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: "createModelWithoutProject"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Model"
        required: true
      responses:
        "201":
          description: "Created"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/models/{modelId}/validate:
    post:
      tags:
      - "models"
      summary: "Validate a model content"
      description: "Allows to validate the model content without save it."
      operationId: "validateModel"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to validate the content for"
        required: true
        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
        schema:
          type: "string"
      - name: "validateUsage"
        in: "query"
        description: "The model is going to be validated and checked used in other\
          \ model"
        required: false
        schema:
          type: "boolean"
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - "file"
              type: "object"
              properties:
                file:
                  type: "string"
                  description: "The file containing the model definition to validate"
                  format: "binary"
      responses:
        "204":
          description: "No Content"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/models/{modelId}/validate/extensions:
    post:
      tags:
      - "models"
      summary: "Validate model extensions"
      description: "Allows to validate the model extensions without save them."
      operationId: "validateModelExtensions"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to validate the content for"
        required: true
        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
        schema:
          type: "string"
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - "file"
              type: "object"
              properties:
                file:
                  type: "string"
                  description: "The file containing the model extensions to validate"
                  format: "binary"
      responses:
        "204":
          description: "No Content"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "getSchema"
      parameters:
      - name: "modelType"
        in: "path"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                type: "string"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/projects/{projectId}/validate:
    get:
      tags:
      - "projects"
      summary: "Validate an project by id"
      operationId: "validateProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to validate"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/projects/{projectId}/models/findByName:
    get:
      tags:
      - "models"
      summary: "List models for an project searching by name"
      description: "Get the models associated with an project searching by part of\
        \ the name ignoring case. Minimal information for each model is returned."
      operationId: "getModelsByName"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to get the models for"
        required: true
        schema:
          type: "string"
      - name: "name"
        in: "query"
        description: "The name or part of the name of the model to filter"
        required: true
        schema:
          type: "string"
      - 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/hal+json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
            application/json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelProjectObject"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "exportProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The id of the project to export"
        required: true
        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
        schema:
          type: "boolean"
          default: true
      responses:
        "200":
          description: "OK"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /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: "exportModel"
      parameters:
      - name: "modelId"
        in: "path"
        description: "The id of the model to export"
        required: true
        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
        schema:
          type: "boolean"
          default: true
      responses:
        "200":
          description: "OK"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
  /v1/model-types:
    get:
      tags:
      - "models"
      summary: "List model types"
      description: "Get the list of available model types."
      operationId: "getModelTypes"
      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/hal+json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelType"
            application/json:
              schema:
                $ref: "#/components/schemas/ListResponseContentModelType"
        "401":
          description: "Unauthorized"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found"
      security:
      - oauth: []
components:
  schemas:
    Project:
      title: "Project"
      type: "object"
      properties:
        description:
          type: "string"
        version:
          type: "string"
        id:
          type: "string"
        name:
          type: "string"
        createdBy:
          type: "object"
        creationDate:
          type: "string"
          format: "date-time"
        lastModifiedBy:
          type: "object"
        lastModifiedDate:
          type: "string"
          format: "date-time"
      description: "The details of the project to create"
    EntryResponseContentProjectObject:
      title: "EntryResponseContentProjectObject"
      type: "object"
      properties:
        entry:
          $ref: "#/components/schemas/ProjectObject"
    ProjectObject:
      title: "ProjectObject"
      type: "object"
      properties:
        description:
          type: "string"
        version:
          type: "string"
        id:
          type: "string"
        name:
          type: "string"
        createdBy:
          type: "object"
        creationDate:
          type: "string"
          format: "date-time"
        lastModifiedBy:
          type: "object"
        lastModifiedDate:
          type: "string"
          format: "date-time"
    EntryResponseContentModelProjectObject:
      title: "EntryResponseContentModelProjectObject"
      type: "object"
      properties:
        entry:
          $ref: "#/components/schemas/ModelProjectObject"
    ModelProjectObject:
      title: "ModelProjectObject"
      type: "object"
      properties:
        scope:
          type: "string"
          enum:
          - "PROJECT"
          - "GLOBAL"
        type:
          type: "string"
        contentType:
          type: "string"
        extensions:
          type: "object"
          additionalProperties:
            type: "object"
        version:
          type: "string"
        id:
          type: "string"
        content:
          type: "array"
          items:
            type: "string"
            format: "byte"
        template:
          type: "string"
        projects:
          uniqueItems: true
          type: "array"
          items:
            $ref: "#/components/schemas/Project"
        category:
          type: "string"
        name:
          type: "string"
        createdBy:
          type: "object"
        creationDate:
          type: "string"
          format: "date-time"
        lastModifiedBy:
          type: "object"
        lastModifiedDate:
          type: "string"
          format: "date-time"
    Model:
      title: "Model"
      type: "object"
      properties:
        scope:
          type: "string"
          enum:
          - "PROJECT"
          - "GLOBAL"
        type:
          type: "string"
        contentType:
          type: "string"
        extensions:
          type: "object"
          additionalProperties:
            type: "object"
        version:
          type: "string"
        id:
          type: "string"
        content:
          type: "array"
          items:
            type: "string"
            format: "byte"
        template:
          type: "string"
        projects:
          uniqueItems: true
          type: "array"
          items:
            $ref: "#/components/schemas/Project"
        category:
          type: "string"
        name:
          type: "string"
        createdBy:
          type: "object"
        creationDate:
          type: "string"
          format: "date-time"
        lastModifiedBy:
          type: "object"
        lastModifiedDate:
          type: "string"
          format: "date-time"
      description: "The details of the model to create"
    EntriesResponseContentProjectObject:
      title: "EntriesResponseContentProjectObject"
      type: "object"
      properties:
        entries:
          type: "array"
          items:
            $ref: "#/components/schemas/EntryResponseContentProjectObject"
        pagination:
          $ref: "#/components/schemas/PaginationMetadata"
    ListResponseContentProjectObject:
      title: "ListResponseContentProjectObject"
      type: "object"
      properties:
        list:
          $ref: "#/components/schemas/EntriesResponseContentProjectObject"
    PaginationMetadata:
      title: "PaginationMetadata"
      type: "object"
      properties:
        skipCount:
          type: "integer"
          format: "int64"
        maxItems:
          type: "integer"
          format: "int64"
        count:
          type: "integer"
          format: "int64"
        hasMoreItems:
          type: "boolean"
        totalItems:
          type: "integer"
          format: "int64"
    EntriesResponseContentModelProjectObject:
      title: "EntriesResponseContentModelProjectObject"
      type: "object"
      properties:
        entries:
          type: "array"
          items:
            $ref: "#/components/schemas/EntryResponseContentModelProjectObject"
        pagination:
          $ref: "#/components/schemas/PaginationMetadata"
    ListResponseContentModelProjectObject:
      title: "ListResponseContentModelProjectObject"
      type: "object"
      properties:
        list:
          $ref: "#/components/schemas/EntriesResponseContentModelProjectObject"
    EntriesResponseContentModelType:
      title: "EntriesResponseContentModelType"
      type: "object"
      properties:
        entries:
          type: "array"
          items:
            $ref: "#/components/schemas/EntryResponseContentModelType"
        pagination:
          $ref: "#/components/schemas/PaginationMetadata"
    EntryResponseContentModelType:
      title: "EntryResponseContentModelType"
      type: "object"
      properties:
        entry:
          $ref: "#/components/schemas/ModelType"
    ListResponseContentModelType:
      title: "ListResponseContentModelType"
      type: "object"
      properties:
        list:
          $ref: "#/components/schemas/EntriesResponseContentModelType"
    ModelType:
      title: "ModelType"
      type: "object"
      properties:
        folderName:
          type: "string"
        contentFileExtension:
          type: "string"
        allowedContentFileExtension:
          type: "array"
          items:
            type: "string"
        extensionsFileSuffix:
          type: "string"
        name:
          type: "string"
  securitySchemes:
    oauth:
      type: "oauth2"
      description: "Authorizing with SSO"
      flows:
        implicit:
          authorizationUrl: "http://activiti-keycloak:8180/auth/realms/activiti/protocol/openid-connect/auth"
          scopes: {}
x-service-url-prefix: ""
