{
  "openapi": "3.0.4",
  "info": {
    "title": "Edge Director API",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://swagger-docs.branches.internal.crosser.io"
    }
  ],
  "paths": {
    "/api/authentication/login": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login User",
        "description": "Logs in user and return JWT(JSON Web Token) which can be used to make API calls. The value of the token\nattribute in the response body is the JWT. Note that if a user logs in again the current\nJWT will no longer be valid and using it for API calls will return 401(Unauthorized). In\nthat case the user must log in again. Also note that this means a user can not be logged\nin from two different browsers at the same time.\n\nIf two factor authentication is used it is no longer enough to just log in a user once to get\na JWT. Instead, after the first login with email and password an email is sent to the user about\nto login with a two factor token that needs to be included in another login request together with\nthe email and password.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400
                    },
                    "code": {
                      "type": "string",
                      "example": "ValidationError"
                    },
                    "userMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "developerMessage": {
                      "type": "string",
                      "example": "Validation Failed."
                    },
                    "causedBy": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "Email"
                          },
                          "message": {
                            "type": "string",
                            "example": "The Email field is not a valid e-mail address."
                          },
                          "code": {
                            "type": "integer",
                            "example": 0
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/authentication/logout": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Logout User",
        "description": "Logs out the user by discarding the user JWT so that it is no longer usable.",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/authentication/registrationkey": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Generate registration key for nodes",
        "description": "Generates a registration key that can be used to register new nodes without having to register them individually. The key is valid for the specified time.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrationKey"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JWT token",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/credentials/{id}/flowdefinitions": {
      "get": {
        "tags": [
          "Credentials"
        ],
        "summary": "Get flow definitions using a specific credential",
        "description": "Returns a list of all flow definitions that have a flow version or draft that is using the credential with the specified id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the credential that we want to find flow definitions that are using.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The offset of the first item to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of items to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "conditions",
            "in": "query",
            "description": "List of conditions of the items to return.\nAlternative to using `offset` and `limit` to define what items to return.\nConfiguration describing from what condition we should start searching for items.\nTypically the value of a property returned as the last element of a previous search will be used as the condition for the next search when fetching new items.\nThe `orderBy` property is typically set to the same property.\n<PropertyName><summary>\n    `propertyName`: Name of the property to check.\n    </summary><example>(Example: Name)</example></PropertyName><PropertyValue><summary>\n    `propertyValue`: Value of the property to check.\n    </summary><example>(Example: MyName)</example></PropertyValue><Operator><summary>\n    `operator`: Operator to use when checking the property value. Available values are `GreaterThan`, `LessThan`, `GreaterThanOrEqual`, `LessThanOrEqual`.\n    </summary><example>(Example: GreaterThan)</example></Operator>",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Condition"
              }
            }
          },
          {
            "name": "includeCount",
            "in": "query",
            "description": "Include total number of items matching the specified filter in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "descending",
            "in": "query",
            "description": "Use descending sort order when fetching items.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "The field to order by.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "List of filters of the items to return.\nDefines what items to return based on the properties of the specific object.\n<PropertyName><summary>\n    `propertyName`: Name of the property to check.\n    **Note**: This is case sensitive and different objects have different properties that can be used in a filter.\n    </summary><example>(Example: Name)</example></PropertyName><PropertyValue><summary>\n    `propertyValue`: Value of the property to check. Can be defined as a list of several values and the result is then the union of the items that match any of the values.\n    </summary><example>(Example: MyName)</example></PropertyValue><FilterType><summary>\n    `filterType`: Type of filter to use when checking the property value. Available values are `equal`, `notequal`, `contains`, `readableBy`, `ownedBy`, `startswith`, `greaterthan`, `greaterthanorequal`, `lessthan`, `lessthanorequal`.\n    **Note:** These are case sensitive and depending on the property type some filters might not be available.\n    </summary><example>(Example: equal)</example></FilterType>",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Filter"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection of flow definitions using the specified credential matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionViewModel.2.FlowDefinitionViewModel_FlowDefinitionDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/credentials": {
      "post": {
        "tags": [
          "Credentials"
        ],
        "summary": "Create a new credential",
        "description": "Creates a new credential for the specified organization.",
        "requestBody": {
          "description": "Contains the details of the credential to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCredentialRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Credential"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/credentials": {
      "post": {
        "tags": [
          "Credentials"
        ],
        "summary": "Create a new credential",
        "description": "Creates a new credential for the specified organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Contains the details of the credential to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCredentialRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Credential"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/credentials/{id}": {
      "delete": {
        "tags": [
          "Credentials"
        ],
        "summary": "Delete a credential",
        "description": "Deletes the credential with the specified ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the credential that we want to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/credentials/{id}": {
      "delete": {
        "tags": [
          "Credentials"
        ],
        "summary": "Delete a credential",
        "description": "Deletes the credential with the specified ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the credential that we want to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/flowdefinitions/{flowDefinitionId}/flow/{flowId}/deploy": {
      "post": {
        "tags": [
          "EdgeNodeActivity"
        ],
        "summary": "Deploy flow to nodes or labels",
        "description": "Create deploy jobs for a flow targeting a list of nodes or labels, where each label is mapped to a corresponding set of nodes. The deployment will then be performed when the node fetches the jobs and performs them.\nCreating jobs will typically always succeed but there might occur issues when the node starts to perform the jobs.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowDefinitionId",
            "in": "path",
            "description": "The identifier for the flow definition that we want to deploy.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowId",
            "in": "path",
            "description": "The identifier for the flow that we want to deploy.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The view model that contains the nodes or labels that we want to deploy the flow to.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowActivity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An activity containing the jobs that will be performed on the specified nodes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/flowdefinitions/{flowDefinitionId}/flow/{flowId}/undeploy": {
      "post": {
        "tags": [
          "EdgeNodeActivity"
        ],
        "summary": "Undeploy flow from nodes or labels",
        "description": "Create undeploy jobs for a flow targeting a list of nodes or labels, where each label is mapped to a corresponding set of nodes. The undeployment will then be performed when the node fetches the jobs and performs them.\nCreating jobs will typically always succeed but there might occur issues when the node starts to perform the jobs.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowDefinitionId",
            "in": "path",
            "description": "The identifier for the flow definition that we want to undeploy.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowId",
            "in": "path",
            "description": "The identifier for the flow that we want to undeploy.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The view model that contains the nodes or labels that we want to undeploy the flow from.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowActivity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An activity containing the jobs that will be performed on the specified nodes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/flowdefinitions/{flowDefinitionId}/flow/{flowId}/start": {
      "post": {
        "tags": [
          "EdgeNodeActivity"
        ],
        "summary": "Start flow on nodes or labels",
        "description": "Create start jobs for a flow targeting a list of nodes or labels, where each label is mapped to a corresponding set of nodes. The flow start will then be performed when the node fetches the jobs and performs them.\nCreating jobs will typically always succeed but there might occur issues when the node starts to perform the jobs.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowDefinitionId",
            "in": "path",
            "description": "The identifier for the flow definition that we want to start.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowId",
            "in": "path",
            "description": "The identifier for the flow that we want to start.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The view model that contains the nodes or labels that we want to start the flow on.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowActivity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An activity containing the jobs that will be performed on the specified nodes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/flowdefinitions/{flowDefinitionId}/flow/{flowId}/stop": {
      "post": {
        "tags": [
          "EdgeNodeActivity"
        ],
        "summary": "Stop flow on nodes or labels",
        "description": "Create stop jobs for a flow targeting a list of nodes or labels, where each label is mapped to a corresponding set of nodes. The flow stop will then be performed when the node fetches the jobs and performs them.\nCreating jobs will typically always succeed but there might occur issues when the node starts to perform the jobs.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowDefinitionId",
            "in": "path",
            "description": "The identifier for the flow definition that we want to stop.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowId",
            "in": "path",
            "description": "The identifier for the flow that we want to stop.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The view model that contains the nodes or labels that we want to stop the flow on.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowActivity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An activity containing the jobs that will be performed on the specified nodes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/flowdefinitions/{flowDefinitionId}/flow/{flowId}/sync": {
      "post": {
        "tags": [
          "EdgeNodeActivity"
        ],
        "summary": "Sync flow on nodes or labels",
        "description": "Create sync jobs for a flow targeting a list of nodes or labels, where each label is mapped to a corresponding set of nodes. A sync of a flow will fetch the current parameter settings for the flow for the specified nodes and re-deploy the flow with the latest settings.\nThe flow sync will then be performed when the node fetches the jobs and performs them.\nCreating jobs will typically always succeed but there might occur issues when the node starts to perform the jobs.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowDefinitionId",
            "in": "path",
            "description": "The identifier for the flow definition that we want to sync.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "flowId",
            "in": "path",
            "description": "The identifier for the flow that we want to sync.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The view model that contains the nodes or labels that we want to sync the flow to.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowActivity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An activity containing the jobs that will be performed on the specified nodes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/{id}": {
      "get": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Get node by id",
        "description": "Returns a node with the specified id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the node that we want to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "compact",
            "in": "query",
            "description": "If true the response will be compacted and only contain the most important information about the node.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeStatistics",
            "in": "query",
            "description": "If true the response will include statistics about the node. If set to `true`, `compact` must also be `true`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Representation of a node. Note that some of the properties listed below will be included depending on the query parameters set in the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNode"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/{edgeNodeId}/labels": {
      "get": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Get labels for a specific node",
        "description": "Returns a list of all labels connected to the specified node with the specified filters.",
        "parameters": [
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to find labels that are connected to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The offset of the first item to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of items to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "conditions",
            "in": "query",
            "description": "List of conditions of the items to return.\nAlternative to using `offset` and `limit` to define what items to return.\nConfiguration describing from what condition we should start searching for items.\nTypically the value of a property returned as the last element of a previous search will be used as the condition for the next search when fetching new items.\nThe `orderBy` property is typically set to the same property.\n<PropertyName><summary>\n    `propertyName`: Name of the property to check.\n    </summary><example>(Example: Name)</example></PropertyName><PropertyValue><summary>\n    `propertyValue`: Value of the property to check.\n    </summary><example>(Example: MyName)</example></PropertyValue><Operator><summary>\n    `operator`: Operator to use when checking the property value. Available values are `GreaterThan`, `LessThan`, `GreaterThanOrEqual`, `LessThanOrEqual`.\n    </summary><example>(Example: GreaterThan)</example></Operator>",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Condition"
              }
            }
          },
          {
            "name": "includeCount",
            "in": "query",
            "description": "Include total number of items matching the specified filter in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "descending",
            "in": "query",
            "description": "Use descending sort order when fetching items.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "The field to order by.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "List of filters of the items to return.\nDefines what items to return based on the properties of the specific object.\n<PropertyName><summary>\n    `propertyName`: Name of the property to check.\n    **Note**: This is case sensitive and different objects have different properties that can be used in a filter.\n    </summary><example>(Example: Name)</example></PropertyName><PropertyValue><summary>\n    `propertyValue`: Value of the property to check. Can be defined as a list of several values and the result is then the union of the items that match any of the values.\n    </summary><example>(Example: MyName)</example></PropertyValue><FilterType><summary>\n    `filterType`: Type of filter to use when checking the property value. Available values are `equal`, `notequal`, `contains`, `readableBy`, `ownedBy`, `startswith`, `greaterthan`, `greaterthanorequal`, `lessthan`, `lessthanorequal`.\n    **Note:** These are case sensitive and depending on the property type some filters might not be available.\n    </summary><example>(Example: equal)</example></FilterType>",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Filter"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionViewModel.2.LabelViewModel_LabelDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/{edgeNodeId}/labels/{labelId}": {
      "delete": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Delete label from node",
        "description": "Deletes the label with the specified id from the node with the specified id.",
        "parameters": [
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to delete the label from.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "labelId",
            "in": "path",
            "description": "The identifier for the label that we want to delete from the node.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Add label to node",
        "description": "Adds the label with the specified id to the node with the specified id.",
        "parameters": [
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to add the label to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "labelId",
            "in": "path",
            "description": "The identifier for the label that we want to add to the node.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabelDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/{edgeNodeId}/overrides": {
      "get": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Get parameter overrides for a specific node",
        "description": "Returns a list of all parameter overrides connected to the specified node.",
        "parameters": [
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to find parameter overrides that are connected to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ParameterOverride"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/{edgeNodeId}/reset": {
      "post": {
        "tags": [
          "EdgeNodes"
        ],
        "summary": "Adding reset node job",
        "description": "Creates a reset job for the node with the specified id. The node will when the job is performed undeploy all flows, remove all data and restart.",
        "parameters": [
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to reset.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdgeNodeActivityDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/events/filters/{propertyName}": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get filter options for events",
        "description": "Returns a list of all possible filter options that can be used when fetching events.",
        "parameters": [
          {
            "name": "propertyName",
            "in": "path",
            "description": "The name of the property that we want to get filter options for. Available values are `Type`, `Application` and `Level`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of possible property values such as [\"Information\", \"Error\", \"Warning\" ] when `propertyName` is `Level`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/events/{eventId}": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get event by id",
        "description": "Returns an event with the specified id.",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The identifier for the event that we want to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Event"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/edgenodes/flowdeployments": {
      "get": {
        "tags": [
          "FlowDeployment"
        ],
        "summary": "Get all flow deployments by flow definition id",
        "description": "Returns a list of all flow deployments that have the specified flow definition id.",
        "parameters": [
          {
            "name": "flowDefinitionId",
            "in": "query",
            "description": "The id of the flow definition that we want to find flow deployments that have.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The offset of the first item to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of items to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "conditions",
            "in": "query",
            "description": "List of conditions of the items to return.\nAlternative to using `offset` and `limit` to define what items to return.\nConfiguration describing from what condition we should start searching for items.\nTypically the value of a property returned as the last element of a previous search will be used as the condition for the next search when fetching new items.\nThe `orderBy` property is typically set to the same property.\n<PropertyName><summary>\n    `propertyName`: Name of the property to check.\n    </summary><example>(Example: Name)</example></PropertyName><PropertyValue><summary>\n    `propertyValue`: Value of the property to check.\n    </summary><example>(Example: MyName)</example></PropertyValue><Operator><summary>\n    `operator`: Operator to use when checking the property value. Available values are `GreaterThan`, `LessThan`, `GreaterThanOrEqual`, `LessThanOrEqual`.\n    </summary><example>(Example: GreaterThan)</example></Operator>",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Condition"
              }
            }
          },
          {
            "name": "includeCount",
            "in": "query",
            "description": "Include total number of items matching the specified filter in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "compact",
            "in": "query",
            "description": "If true the response will be compacted and only contain the most important information about the flow deployments.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of flow deployments for the specified node are returned. **Note**: Depending on the `compact` flag the items in the response will contain flow deployments with varying levels of detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionViewModel.2.FlowDeploymentViewModelExtended_FlowDeploymentDtoExtended"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/identityproviders": {
      "get": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Get all identity providers by organization",
        "description": "Returns a list of all identity providers for the specified organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "conditions",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Condition"
              }
            }
          },
          {
            "name": "includeCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Filter"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "f",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Create a new identity provider",
        "description": "Creates a new identity provider for the specified organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier for the organization that the identity provider belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Contains the details of the identity provider to create.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/identityproviders/{id}": {
      "get": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Get identity provider by ID",
        "description": "Returns the identity provider with the specified ID.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier for the organization that the identity provider belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the identity provider that we want to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Update an existing identity provider",
        "description": "Updates the details of the identity provider with the specified ID.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier for the organization that the identity provider belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the identity provider that we want to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Contains the updated details of the identity provider.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProvider"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Delete an identity provider",
        "description": "Deletes the identity provider with the specified ID.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier for the organization that the identity provider belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the identity provider that we want to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/organizations/{organizationId}/identityproviders/{id}/secrets": {
      "put": {
        "tags": [
          "IdentityProviders"
        ],
        "summary": "Update client ID and secret for an identity provider",
        "description": "Updates the client ID and secret for the identity provider with the specified ID.\n\n```\nPUT /api/organizations/{organizationId}/identityproviders/{id}/secrets\nContent-Type: application/json\nAuthorization: Bearer {your_jwt_token}\n\n{\n    \"clientId\": \"new-client-id\",\n    \"clientSecret\": \"new-client-secret\"\n}\n```",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier for the organization that the identity provider belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the identity provider that we want to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Contains the updated client ID and secret for the identity provider.\n<example>\n    {\n        \"clientId\": \"new-client-id\",\n        \"clientSecret\": \"new-client-secret\"\n    }\n</example>",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientIdAndSecret"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientIdAndSecret"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientIdAndSecret"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientIdAndSecret"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/parameters/{id}": {
      "get": {
        "tags": [
          "Parameters"
        ],
        "summary": "Get parameter by id",
        "description": "Returns a parameter with the specified id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the parameter that we want to get.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Parameter"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/parameters/{id}/value": {
      "put": {
        "tags": [
          "Parameters"
        ],
        "summary": "Update parameter value",
        "description": "Updates the value of the parameter with the specified id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the parameter that we want to update the value of.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The model that contains the new value of the parameter.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterValue"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParameterValue"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/parameters/{id}/overrides": {
      "get": {
        "tags": [
          "Parameters"
        ],
        "summary": "Get parameter overrides",
        "description": "Returns a list of all parameter overrides for the parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the parameter that we want to find parameter overrides for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ParameterOverride"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Parameters"
        ],
        "summary": "Add parameter override",
        "description": "Adds a parameter override to the parameter with the specified id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the parameter that we want to add the parameter override to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The model that contains the parameter override that we want to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterOverride"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParameterOverride"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/parameters/{id}/overrides/{edgeNodeId}": {
      "delete": {
        "tags": [
          "Parameters"
        ],
        "summary": "Delete parameter override",
        "description": "Deletes the parameter override with the specified id for the specified node.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the parameter that we want to delete the parameter override from.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "edgeNodeId",
            "in": "path",
            "description": "The identifier for the node that we want to delete the override for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/resources/{resourceId}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get resource by id",
        "description": "Returns a resource with the specified id.",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "The identifier for the resource that we want to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/resources/{resourceId}/versions": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get versions of a resource",
        "description": "Returns a list of all versions of the resource with the specified id.",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "The identifier for the resource that we want to find versions for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResourceVersion"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResourceVersion"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResourceVersion"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/resources/{resourceId}/versions/{versionId}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get version of a resource",
        "description": "Returns a version of the resource with the specified id.",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "The identifier for the resource that we want to find a version for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "description": "The version of the resource that we want to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/resources/versions/{versionId}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Auth: HasOrganization",
        "parameters": [
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/resources/{resourceId}/versions/{versionId}/data": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get resource version data",
        "description": "Returns the data of the resource with the specified id. The format of the data is dependent on the type of the resource.",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "The identifier for the resource that we want to get data for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "description": "The version of the resource that we want to get data for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Depending on resource type and content the response will differ",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Resources"
        ],
        "summary": "Upload version data",
        "description": "Uploads data for the specified version of the resource with the specified id. The content must be sent as a file with `multipart/form-data`.\n\nIf there is a version with `sizeInBytes` set to 1 this request would upload the content `a`:\n\n`PUT /api/resources/{resourceId}/versions/{versionId}/data`\n```\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryRFAmErZ0QF6ZpyZr\n\n------WebKitFormBoundaryRFAmErZ0QF6ZpyZr\nContent-Disposition: form-data; name=\"file\"; filename=\"blob\"\nContent-Type: text/plain\n\na\n------WebKitFormBoundaryRFAmErZ0QF6ZpyZr--\n```",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "The identifier for the resource that we want to upload data for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "description": "The version of the resource that we want to upload data for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceVersion"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/api/users/me": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get me",
        "description": "Returns information about the user that is currently logged in together with information of it's organization.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Me"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AccessCondition": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "variable": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccessConditionDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "variable": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccessPermission": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessCondition"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccessStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "CollectionDto.1.FlowDeploymentDto": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The offset of the collection.",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "The limit of the collection.",
            "format": "int32",
            "example": 10
          },
          "count": {
            "type": "integer",
            "description": "The total number of items in the collection.",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDeploymentDto"
            },
            "description": "The items in the collection.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a collection of items."
      },
      "CollectionDto.1.LabelDto": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The offset of the collection.",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "The limit of the collection.",
            "format": "int32",
            "example": 10
          },
          "count": {
            "type": "integer",
            "description": "The total number of items in the collection.",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelDto"
            },
            "description": "The items in the collection.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a collection of items."
      },
      "CollectionViewModel.2.FlowDefinitionViewModel_FlowDefinitionDto": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The offset of the collection.",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "The limit of the collection.",
            "format": "int32",
            "example": 10
          },
          "count": {
            "type": "integer",
            "description": "The total number of items in the collection.",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDefinition"
            },
            "description": "Array of items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Collection of items."
      },
      "CollectionViewModel.2.FlowDeploymentViewModelExtended_FlowDeploymentDtoExtended": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The offset of the collection.",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "The limit of the collection.",
            "format": "int32",
            "example": 10
          },
          "count": {
            "type": "integer",
            "description": "The total number of items in the collection.",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDeploymentViewModelExtended"
            },
            "description": "Array of items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Collection of items."
      },
      "CollectionViewModel.2.LabelViewModel_LabelDto": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The offset of the collection.",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "The limit of the collection.",
            "format": "int32",
            "example": 10
          },
          "count": {
            "type": "integer",
            "description": "The total number of items in the collection.",
            "format": "int32",
            "nullable": true,
            "example": 100
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            },
            "description": "Array of items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Collection of items."
      },
      "Condition": {
        "type": "object",
        "properties": {
          "propertyName": {
            "type": "string",
            "nullable": true
          },
          "propertyValue": {
            "type": "string",
            "nullable": true
          },
          "operator": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCredentialRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the credential.",
            "nullable": true,
            "example": "My credential"
          },
          "organizationId": {
            "type": "string",
            "description": "Unique identifier for the organization that owns the credential.",
            "format": "uuid",
            "example": "b8fd973c-b700-4091-bf83-e5d779ce7ef0"
          },
          "category": {
            "type": "string",
            "description": "Category of the credential.",
            "nullable": true,
            "example": "/organization/"
          },
          "data": {
            "type": "string",
            "description": "Data of the credential in base64 encoded format.",
            "format": "byte",
            "nullable": true,
            "example": "eyJhcGlLZXkiOiJNeSBzZWNyZXQga2V5In0="
          },
          "description": {
            "type": "string",
            "description": "Description of the credential.",
            "nullable": true,
            "example": "Credential that does something"
          },
          "type": {
            "type": "string",
            "description": "Type of the credential.",
            "nullable": true,
            "example": "API-key"
          }
        },
        "additionalProperties": false,
        "description": "Object representing a credential to be created."
      },
      "Creator": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the creator. Can be `Unknown`, `User`, `EdgeNode`, `EdgeNodeRegistrar` or `Anonymous`.",
            "nullable": true,
            "readOnly": true,
            "example": "User"
          },
          "id": {
            "type": "string",
            "description": "The identifier of the creator.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "name": {
            "type": "string",
            "description": "The name of the creator.",
            "nullable": true,
            "example": "My User"
          }
        },
        "additionalProperties": false,
        "description": "Object representing the creator of an object."
      },
      "CreatorDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/UserType"
          },
          "id": {
            "type": "string",
            "description": "The identifier of the creator.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "name": {
            "type": "string",
            "description": "The name of the creator.",
            "nullable": true,
            "example": "My User"
          }
        },
        "additionalProperties": false,
        "description": "Represents a creator."
      },
      "Credential": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the credential.",
            "format": "uuid",
            "example": "7fd96b83-4375-4fb8-af1c-7e5f5117cfc2"
          },
          "name": {
            "type": "string",
            "description": "Name of the credential.",
            "nullable": true,
            "example": "My credential"
          },
          "description": {
            "type": "string",
            "description": "Description of the credential.",
            "nullable": true,
            "example": "Credential that does something"
          },
          "data": {
            "type": "string",
            "description": "Data of the credential in base64 encoded format.",
            "format": "byte",
            "nullable": true,
            "example": "eyJhcGlLZXkiOiJNeSBzZWNyZXQga2V5In0="
          },
          "encryptionKeyId": {
            "type": "string",
            "description": "Optional. Identifier for the encryption key used to encrypt the credential data.",
            "format": "uuid",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Type of the credential.",
            "nullable": true,
            "example": "API-key"
          },
          "typeName": {
            "type": "string",
            "description": "Human readable name of the credential type.",
            "nullable": true,
            "example": "API Key"
          },
          "organizationId": {
            "type": "string",
            "description": "Unique identifier for the organization that owns the credential.",
            "format": "uuid",
            "example": "b8fd973c-b700-4091-bf83-e5d779ce7ef0"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp of when the credential was created.",
            "format": "date-time",
            "example": "2025-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "Unique identifier for the user that created the credential.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp of when the credential was last updated.",
            "format": "date-time",
            "example": "2025-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "Unique identifier for the user that last updated the credential.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "nrOfFlowDefinitions": {
            "type": "integer",
            "description": "Number of flow definitions using this credential.",
            "format": "int32",
            "example": 5
          },
          "category": {
            "type": "string",
            "description": "Category of the credential.",
            "nullable": true,
            "example": "/organization/"
          },
          "crn": {
            "$ref": "#/components/schemas/Crn"
          }
        },
        "additionalProperties": false,
        "description": "Object representing a credential."
      },
      "Crn": {
        "type": "object",
        "properties": {
          "reserved1": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "service": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "reserved2": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "organizationId": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "type": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "id": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          },
          "path": {
            "$ref": "#/components/schemas/ReadOnlySpan.1.Char"
          }
        },
        "additionalProperties": false
      },
      "DockerCredentials": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Username for the docker registry.",
            "nullable": true,
            "example": "a8a5ee33-1838-4f96-807c-8d44ce72b4d7"
          },
          "password": {
            "type": "string",
            "description": "Password for the docker registry.",
            "nullable": true,
            "example": "dc61ed73-0483-48d1-b92f-fb23a7888a19"
          }
        },
        "additionalProperties": false,
        "description": "Docker credentials for the user."
      },
      "EdgeNode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the node.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "name": {
            "type": "string",
            "description": "The name of the node.",
            "nullable": true,
            "example": "MyNode"
          },
          "accessKey": {
            "type": "string",
            "description": "The access key of the node.",
            "nullable": true,
            "example": null
          },
          "inSync": {
            "type": "boolean",
            "description": "Whether all of the deployed flows on the node are in sync with the EdgeDirector, meaning that they have the latest set of parameters.",
            "nullable": true,
            "example": true
          },
          "createdAt": {
            "type": "string",
            "description": "The time the node was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the node.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the node was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the node.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "information": {
            "$ref": "#/components/schemas/EdgeNodeInformationDto"
          },
          "labels": {
            "$ref": "#/components/schemas/CollectionDto.1.LabelDto"
          },
          "flowDeployments": {
            "$ref": "#/components/schemas/CollectionDto.1.FlowDeploymentDto"
          },
          "nrOfFlowDeployments": {
            "type": "integer",
            "description": "The number of flow deployments on the node.",
            "format": "int32",
            "example": 3
          },
          "nrOfParameterOverrides": {
            "type": "integer",
            "description": "The number of parameter that are overridden for the node.",
            "format": "int32",
            "example": 3
          },
          "hosted": {
            "type": "boolean",
            "description": "Whether the node is hosted by Crosser.",
            "example": false
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "statistics": {
            "$ref": "#/components/schemas/EdgeNodeStatisticsDto"
          },
          "reviewedAt": {
            "type": "string",
            "description": "The time the node was last reviewed. Reviewing a node means that all errors and warnings occured to that point are treated as handled and only new errors and warnings after that point are included when status and statistics are calculated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "reviewedBy": {
            "$ref": "#/components/schemas/Creator"
          }
        },
        "additionalProperties": false,
        "description": "Object representing a node."
      },
      "EdgeNodeActivityDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the node activity.",
            "format": "uuid",
            "example": "00ec431b-0f2b-4f4e-9cc9-1af9231a8584"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "startTime": {
            "type": "string",
            "description": "The time the activity was started.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "lastSaved": {
            "type": "string",
            "description": "The time the activity was last saved.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "description": {
            "type": "string",
            "description": "The description of the activity.",
            "nullable": true,
            "example": "Deploying Flow: My flow version 1 on Node: my_node by User: My User"
          },
          "nrOfPendingJobs": {
            "type": "integer",
            "description": "The number of pending jobs in the activity.",
            "format": "int32",
            "example": 3
          },
          "nrOfFailureJobs": {
            "type": "integer",
            "description": "The number of failed jobs in the activity.",
            "format": "int32",
            "example": 1
          },
          "nrOfSuccessJobs": {
            "type": "integer",
            "description": "The number of successful jobs in the activity.",
            "format": "int32",
            "example": 2
          },
          "activityType": {
            "type": "string",
            "description": "The type of the activity. Available values are `Unknown`, `RemoteDebugging`, `AddFlow`, `RemoveFlow`, `Reset`, `Sync`, `StartFlow`, `StopFlow`.",
            "nullable": true,
            "example": "StartFlow"
          },
          "edgeNodeJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdgeNodeJobDto"
            },
            "description": "The jobs in the activity.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/EdgeNodeActivityStatus"
          },
          "edgeNodeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a top level activity with a set of jobs for an node to perform."
      },
      "EdgeNodeActivityStatus": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "EdgeNodeHostStatisticsDto": {
        "type": "object",
        "properties": {
          "uptime": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The uptime of the host.",
            "nullable": true,
            "example": [
              6625.1123
            ]
          },
          "cpu": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The CPU usage of the host.",
            "nullable": true,
            "example": [
              0.5
            ]
          },
          "bytesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes received by the host.",
            "nullable": true,
            "example": [
              458920
            ]
          },
          "bytesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes sent by the host.",
            "nullable": true,
            "example": [
              41231
            ]
          },
          "httpMessagesIn": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of HTTP messages received by the host.",
            "nullable": true,
            "example": [
              561231
            ]
          },
          "mqttMessagesIn": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of MQTT messages received by the host.",
            "nullable": true,
            "example": [
              123
            ]
          },
          "mqttMessagesOut": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of MQTT messages sent by the host.",
            "nullable": true,
            "example": [
              8345
            ]
          },
          "workingSet": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The working set of the host.",
            "nullable": true,
            "example": [
              85912140
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of warnings on the host since the host was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              5123
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of errors on the host since the host was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              42
            ]
          },
          "timestamp": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time of the statistics.",
            "nullable": true,
            "example": [
              "2024-09-30T09:02:02.36Z"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents statistics for the host of a node. All statistics are represented by a list of statistics.\nThe lists are ordered in time according to the `Timestamp` property and all arrays will have the same length meaning that the same index across all arrays represent the same time.\n**Note**: Only nodes that has support for statistics will have statistics, all others will just have 0 values."
      },
      "EdgeNodeInformationDto": {
        "type": "object",
        "properties": {
          "edgenodeId": {
            "type": "string",
            "format": "uuid"
          },
          "osVersion": {
            "type": "string",
            "description": "The version of the operating system on the node.",
            "nullable": true,
            "example": "Unix 4.9.93.0"
          },
          "machineName": {
            "type": "string",
            "description": "The name of the machine.",
            "nullable": true,
            "example": "0cd53a173a06"
          },
          "processorCount": {
            "type": "integer",
            "description": "The number of processors on the node.",
            "format": "int32",
            "example": 4
          },
          "is64BitProcess": {
            "type": "boolean",
            "description": "Whether the process is 64 bit.",
            "example": true
          },
          "is64BitOperatingSystem": {
            "type": "boolean",
            "description": "Whether the operating system is 64 bit.",
            "example": true
          },
          "crosserCoreVersion": {
            "type": "string",
            "description": "The version of the Crosser Core on the node.",
            "nullable": true,
            "example": "2.5.6"
          },
          "crosserSDKVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "frameworkDescription": {
            "type": "string",
            "description": "The description of the framework.",
            "nullable": true,
            "example": ".NET 6.0.11"
          },
          "osDescription": {
            "type": "string",
            "description": "The description of the operating system.",
            "nullable": true,
            "example": "Linux 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020"
          },
          "osArchitecture": {
            "type": "string",
            "description": "The architecture of the operating system.",
            "nullable": true,
            "example": "X64"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents information about a node."
      },
      "EdgeNodeJobDto": {
        "type": "object",
        "properties": {
          "edgenodeid": {
            "type": "string",
            "description": "The identifier of the node.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "activityId": {
            "type": "string",
            "description": "The identifier of the activity the job belongs to.",
            "format": "uuid",
            "example": "00ec431b-0f2b-4f4e-9cc9-1af9231a8584"
          },
          "index": {
            "type": "integer",
            "description": "The index of the job.",
            "format": "int64",
            "example": 57369
          },
          "flowId": {
            "type": "string",
            "description": "Optional. The identifier of the flow if there is a flow connected to the job.",
            "format": "uuid",
            "nullable": true,
            "example": "8d69b986-aae7-40ae-a845-5fd5ba251619"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "Optional. The identifier of the flow definition if there is a flow definition connected to the job.",
            "format": "uuid",
            "nullable": true,
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "sessionId": {
            "type": "string",
            "description": "Optional. The identifier of the session the job belongs to if there is a session connected to the job.",
            "format": "uuid",
            "nullable": true,
            "example": "4fb6e76e-13f4-42e5-a5d8-3b7489ab9337"
          },
          "type": {
            "type": "string",
            "description": "The type of the job. Available values are `flow-start`, `flow-stop`, `flow-delete`, `flow-update`, `flow-create`, `remote-session` and `reset-edgenode`.",
            "nullable": true,
            "example": "StartFlow"
          },
          "jobState": {
            "type": "string",
            "description": "The state of the job. Available values are `Pending`, `Success` and `Failure`.",
            "nullable": true,
            "example": "Success"
          },
          "timestamp": {
            "type": "string",
            "description": "The time the job was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "message": {
            "type": "string",
            "description": "The message of the job reported by the node.",
            "nullable": true,
            "example": "Job execution was successful"
          }
        },
        "additionalProperties": false,
        "description": "Represents a job for a node to perform."
      },
      "EdgeNodeStatisticsDto": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "edgenodeId": {
            "type": "string",
            "description": "The identifier of the node.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          },
          "summary": {
            "$ref": "#/components/schemas/EdgeNodeSummaryStatisticsDto"
          },
          "host": {
            "$ref": "#/components/schemas/EdgeNodeHostStatisticsDto"
          },
          "flowDeployments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDeploymentStatisticsDto"
            },
            "description": "A list of the statistics for the flow deployments on the node.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents statistics for a node."
      },
      "EdgeNodeSummaryStatisticsDto": {
        "type": "object",
        "properties": {
          "uptime": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The uptime of the node.",
            "nullable": true,
            "example": [
              6625.1123
            ]
          },
          "cpu": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The CPU usage of the node.",
            "nullable": true,
            "example": [
              0.5
            ]
          },
          "bytesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes received by the node.",
            "nullable": true,
            "example": [
              458920
            ]
          },
          "bytesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes sent by the node.",
            "nullable": true,
            "example": [
              41231
            ]
          },
          "workingSet": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The working set of the node.",
            "nullable": true,
            "example": [
              85912140
            ]
          },
          "flowsMessagesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages received by the flows on the node.",
            "nullable": true,
            "example": [
              561231
            ]
          },
          "flowsMessagesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages sent by the flows on the node.",
            "nullable": true,
            "example": [
              8345
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of warnings on the node since the node was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              5123
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of errors on the node since the node was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              42
            ]
          },
          "timestamp": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time of the statistics.",
            "nullable": true,
            "example": [
              "2024-09-30T09:02:02.36Z"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents summary statistics for a node. All statistics are represented by a list of statistics.\nThe lists are ordered in time according to the `Timestamp` property and all arrays will have the same length meaning that the same index across all arrays represent the same time.\n**Note**: Only nodes that has support for statistics will have statistics, all others will just have 0 values."
      },
      "EdgeNodeType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "EdgedirectorSubscription": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Identifier for the organization the subscription belongs to.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "type": {
            "type": "string",
            "description": "Type of the subscription.",
            "nullable": true,
            "example": "Commercial"
          },
          "validFrom": {
            "type": "string",
            "description": "Date and time when the subscription is valid from.",
            "format": "date-time",
            "example": "2024-09-23T09:33:38.013347Z"
          },
          "validTo": {
            "type": "string",
            "description": "Date and time when the subscription is valid to.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-09-23T09:33:38.013347Z"
          },
          "maxNumberOfEdgenodes": {
            "type": "integer",
            "description": "Maximum number of nodes that can be used with the subscription. `-1` indicates unlimited.",
            "format": "int32",
            "example": -1
          },
          "iiot": {
            "type": "boolean",
            "description": "If the subscription is an IIoT subscription.",
            "example": false
          },
          "ipa": {
            "type": "boolean",
            "description": "If the subscription is an IPA subscription.",
            "example": false
          },
          "dataLimitInBytes": {
            "type": "integer",
            "description": "Data limit in bytes for the subscription. `-1` indicates unlimited.",
            "format": "int64",
            "example": -1
          }
        },
        "additionalProperties": false,
        "description": "Information about the EdgeDirector subscription."
      },
      "EdgedirectorSubscriptionType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "format": "int32"
      },
      "Event": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the event.",
            "format": "uuid",
            "example": "00ec431b-0f2b-4f4e-9cc9-1af9231a8584"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "The time of the event.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the event. A short summary of what has happened.",
            "nullable": true,
            "example": "My subject"
          },
          "message": {
            "type": "string",
            "description": "The message of the event. A more detailed description of what has happened.",
            "nullable": true,
            "example": "My message"
          },
          "application": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Creator"
          },
          "userId": {
            "type": "string",
            "description": "Optional. For events that are related to a user this property contains that user id.",
            "format": "uuid",
            "nullable": true,
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "userName": {
            "type": "string",
            "description": "Optional. For events that are related to a user this property contains that user name.",
            "nullable": true,
            "example": "My User"
          },
          "edgenodeId": {
            "type": "string",
            "description": "Optional. For events that are related to a node this property contains that node id.",
            "format": "uuid",
            "nullable": true,
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          },
          "edgenodeName": {
            "type": "string",
            "description": "Optional. For events that are related to a node this property contains that node name.",
            "nullable": true,
            "example": "MyNode"
          },
          "softwareVersion": {
            "type": "string",
            "description": "Optional. For events that are related to a node and software version is of interest, this property contains that software version.",
            "nullable": true,
            "example": "2.5.6"
          },
          "flowId": {
            "type": "string",
            "description": "Optional. For events that are related to a flow this property contains that flow id.",
            "format": "uuid",
            "nullable": true,
            "example": "955a5c39-e3fe-4f30-ac78-e1648f18f491"
          },
          "parameterId": {
            "type": "string",
            "description": "Optional. For events that are related to a parameter this property contains that parameter id.",
            "nullable": true,
            "example": "My parameter"
          },
          "flowName": {
            "type": "string",
            "description": "Optional. For events that are related to a flow this property contains that flow name.",
            "nullable": true,
            "example": "My flow"
          },
          "flowVersion": {
            "type": "string",
            "description": "Optional. For events that are related to a flow this property contains that flow version.",
            "nullable": true,
            "example": "1"
          },
          "moduleId": {
            "type": "string",
            "description": "Optional. For events that are related to a module this property contains that module id.",
            "format": "uuid",
            "nullable": true,
            "example": "74f1d6b6-02dc-4604-aa67-1b585e90b14c"
          },
          "moduleVersion": {
            "type": "string",
            "description": "Optional. For events that are related to a module this property contains that module version.",
            "nullable": true,
            "example": "1.0.0"
          },
          "moduleName": {
            "type": "string",
            "description": "Optional. For events that are related to a module this property contains that module name.",
            "nullable": true,
            "example": "My module"
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "Optional. For events that are related to a node state this property contains that state. Available values are `online`, `offline`.",
            "nullable": true,
            "example": "online"
          },
          "lastHeardFrom": {
            "type": "string",
            "description": "Optional. For events that are related to a node state this property contains the last time the node was heard from.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "Optional. For events that are related to a flow definition this property contains that flow definition id.",
            "format": "uuid",
            "nullable": true,
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "flowDeploymentId": {
            "type": "string",
            "description": "Optional. For events that are related to a flow deployment this property contains that flow deployment id.",
            "format": "uuid",
            "nullable": true,
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          },
          "flowDefinitionName": {
            "type": "string",
            "description": "Optional. For events that are related to a flow definition this property contains that flow definition name.",
            "nullable": true,
            "example": "My flow definition"
          },
          "priority": {
            "type": "integer",
            "description": "The priority of the event as an integer.",
            "format": "int32",
            "example": 0
          }
        },
        "additionalProperties": false,
        "description": "Object representing an event. **Note:** As an event can be of different type, not all properties listed here are included in all event as it depends on it's type."
      },
      "EventApplication": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "EventType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49
        ],
        "type": "integer",
        "format": "int32"
      },
      "Filter": {
        "type": "object",
        "properties": {
          "propertyName": {
            "type": "string",
            "nullable": true
          },
          "propertyValue": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "filtertype": {
            "type": "string",
            "nullable": true
          },
          "ignoreCase": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Flow": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the flow.",
            "nullable": true,
            "example": "MyFlow"
          },
          "description": {
            "type": "string",
            "description": "The description of the flow.",
            "nullable": true,
            "example": "This is my flow."
          },
          "notes": {
            "type": "string",
            "description": "Notes about the flow.",
            "nullable": true,
            "example": "This is a note."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether the flow is disabled.",
            "example": false
          },
          "autoStart": {
            "type": "boolean",
            "description": "Whether the flow should start automatically.",
            "example": true
          },
          "noOfModules": {
            "type": "integer",
            "description": "The number of modules in the flow.",
            "format": "int32",
            "example": 3
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the flow was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "haltOnError": {
            "type": "boolean",
            "description": "Whether the flow should halt whenever any of the modules in the flow reports an error or if the flow itself gets an error.",
            "example": true
          },
          "disableQueues": {
            "type": "boolean",
            "description": "Whether the queues should be disabled when the flow is running on a node.",
            "example": false
          },
          "id": {
            "type": "string",
            "description": "The identifier of the flow.",
            "format": "uuid",
            "example": "3682bdb4-6ced-4e7a-8c4b-5b4edb78bb4d"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "The identifier of the flow definition.",
            "format": "uuid",
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the flow.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "flowState": {
            "$ref": "#/components/schemas/FlowState"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowModuleDto"
            },
            "description": "The modules in the flow.",
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowResourceDto"
            },
            "description": "The resources used by the flow.",
            "nullable": true
          },
          "credentials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowCredentialDto"
            },
            "description": "The credentials used by the flow.",
            "nullable": true
          },
          "flowVersion": {
            "type": "integer",
            "description": "The version of the flow.",
            "format": "int32",
            "example": 1
          },
          "sdkVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Metadata for the flow.",
            "nullable": true
          },
          "access": {
            "$ref": "#/components/schemas/AccessStatus"
          }
        },
        "additionalProperties": false,
        "description": "A locked version of the flow that cannot be changed."
      },
      "FlowActivity": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Array of labels that the specified action for the flow will be performed to.\nThe labels are mapped to a set of nodes to be able to apply an action to all nodes with a certain label at the same time. Cannot be combined with specifing a list of nodes.",
            "nullable": true,
            "example": [
              "0bb6b120-468a-4c7b-b121-65e88e990c9d"
            ]
          },
          "edgeNodes": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Array of nodes that the specified action for the flow will be performed to. Cannot be combined with specifing a list of labels.",
            "nullable": true,
            "example": [
              "7b66484a-ce4f-4f4b-abd9-6c7d27cdbe94"
            ]
          },
          "description": {
            "type": "string",
            "description": "Obsolete. Description of the activity.",
            "nullable": true,
            "readOnly": true,
            "example": "Activity that does something"
          }
        },
        "additionalProperties": false,
        "description": "Object representing a top level activity for a flow on a set of nodes or labels."
      },
      "FlowCredentialDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the flow credential.",
            "format": "uuid",
            "example": "bc74f4d6-a714-46be-abbc-ad7f06914af9"
          },
          "setting": {
            "type": "string",
            "nullable": true
          },
          "flowModuleId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "access": {
            "$ref": "#/components/schemas/AccessStatus"
          }
        },
        "additionalProperties": false,
        "description": "Represents a flow credential."
      },
      "FlowDefinition": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the flow definition.",
            "format": "uuid",
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "organizationId": {
            "type": "string",
            "description": "Unique identifier for the organization that owns the flow definition.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "name": {
            "type": "string",
            "description": "Name of the flow definition.",
            "nullable": true,
            "example": "My flow"
          },
          "description": {
            "type": "string",
            "description": "Description of the flow definition.",
            "nullable": true,
            "example": "Flow that does something"
          },
          "favorite": {
            "type": "boolean",
            "description": "If the flow definition is marked as a favorite for the current user.",
            "example": true
          },
          "nextFlowVersion": {
            "type": "integer",
            "description": "The number the next flow version will have.",
            "format": "int32",
            "example": 2
          },
          "category": {
            "type": "string",
            "description": "Category of the flow definition.",
            "nullable": true,
            "example": "My category"
          },
          "permission": {
            "type": "string",
            "description": "Permission the user has for the flow definition. Can be `Private`, `Shared` or `Organization`.",
            "nullable": true,
            "example": "Organization"
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of actions that the current user can be perform on the flow definition.",
            "nullable": true,
            "example": [
              "ed:GetFlow",
              "ed:UpdateFlow",
              "ed:DeleteFlow",
              "ed:StartFlow",
              "ed:StopFlow",
              "ed:DeployFlow",
              "ed:UndeployFlow"
            ]
          },
          "flowDrafts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDraft"
            },
            "description": "Array of flow drafts for the flow definition.",
            "nullable": true
          },
          "flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flow"
            },
            "description": "Array of flow versions for the flow definition.",
            "nullable": true
          },
          "crn": {
            "$ref": "#/components/schemas/Crn"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Top level object for flow versions and drafts."
      },
      "FlowDeploymentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          },
          "reportedState": {
            "type": "string",
            "description": "The state of the deployment as reported by the node. Available values are `Stopped`, `Stopping`, `Starting`, `Started`, `Failed` and `Pending`.\nAll flows are initially in `Pending` state until the node has started deploying the flow.",
            "nullable": true,
            "example": "Stopped"
          },
          "wantedState": {
            "type": "string",
            "description": "The state of the deployment as wanted by the user specified in EdgeDirector. Available values are `Stopped`, `Started` and `Deleted`.",
            "nullable": true,
            "example": "Started"
          },
          "edgeNodeId": {
            "type": "string",
            "description": "The identifier of the node the flow is deployed on.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          },
          "flowId": {
            "type": "string",
            "description": "The identifier of the flow.",
            "format": "uuid",
            "example": "955a5c39-e3fe-4f30-ac78-e1648f18f491"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "The identifier of the flow definition.",
            "format": "uuid",
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDeploymentParameterDto"
            },
            "description": "The parameters of the deployment.",
            "nullable": true
          },
          "parametersInSync": {
            "type": "boolean",
            "description": "Whether the current set of parameters of the deployment set by the user in the EdgeDirector are applied to the flow on the node.",
            "example": true
          },
          "lastReceivedMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a deployment of a flow on a node."
      },
      "FlowDeploymentParameter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter.",
            "nullable": true,
            "example": "My parameter"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the parameter was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the parameter was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "value": {
            "$ref": "#/components/schemas/ParameterValue"
          },
          "flowDeploymentId": {
            "type": "string",
            "description": "The identifier of the deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          }
        },
        "additionalProperties": false
      },
      "FlowDeploymentParameterDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter.",
            "nullable": true,
            "example": "My parameter"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the parameter was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the parameter was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "value": {
            "$ref": "#/components/schemas/ParameterValueDto"
          },
          "flowDeploymentId": {
            "type": "string",
            "description": "The identifier of the deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          }
        },
        "additionalProperties": false,
        "description": "Represents a parameter of a deployment of a flow on a node. **Note**: This is the value the flow is running, this will differ from the one currently configured on the flow if `ParametersInSync` is `false`."
      },
      "FlowDeploymentStatistics": {
        "type": "object",
        "properties": {
          "flowDeploymentId": {
            "type": "string",
            "description": "The identifier of the flow deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          },
          "uptime": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The uptime of the flow deployment.",
            "nullable": true,
            "example": [
              6625.1123
            ]
          },
          "cpu": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The CPU usage of the flow deployment.",
            "nullable": true,
            "example": [
              0.5
            ]
          },
          "messagesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages received by the flow deployment.",
            "nullable": true,
            "example": [
              561231
            ]
          },
          "messagesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages sent by the flow deployment.",
            "nullable": true,
            "example": [
              8345
            ]
          },
          "bytesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes received by the flow deployment.",
            "nullable": true,
            "example": [
              458920
            ]
          },
          "bytesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes sent by the flow deployment.",
            "nullable": true,
            "example": [
              41231
            ]
          },
          "workingSet": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The working set of the flow deployment.",
            "nullable": true,
            "example": [
              85912140
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of warnings on the flow deployment since the last report.",
            "nullable": true,
            "example": [
              5123
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of errors on the flow deployment since the last report.",
            "nullable": true,
            "example": [
              42
            ]
          },
          "timestamp": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time of the statistics.",
            "nullable": true,
            "example": [
              "2024-09-30T09:02:02.36Z"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents statistics for a flow deployment on a node. All statistics are represented by a list of statistics.\nThe lists are ordered in time according to the `Timestamp` property and all arrays must have the same length meaning that the same index across all arrays represent the same time."
      },
      "FlowDeploymentStatisticsDto": {
        "type": "object",
        "properties": {
          "flowDeploymentId": {
            "type": "string",
            "description": "The identifier of the flow deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          },
          "uptime": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The uptime of the flow deployment.",
            "nullable": true,
            "example": [
              6625.1123
            ]
          },
          "cpu": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The CPU usage of the flow deployment.",
            "nullable": true,
            "example": [
              0.5
            ]
          },
          "messagesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages received by the flow deployment.",
            "nullable": true,
            "example": [
              561231
            ]
          },
          "messagesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of messages sent by the flow deployment.",
            "nullable": true,
            "example": [
              8345
            ]
          },
          "bytesReceived": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes received by the flow deployment.",
            "nullable": true,
            "example": [
              458920
            ]
          },
          "bytesSent": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of bytes sent by the flow deployment.",
            "nullable": true,
            "example": [
              41231
            ]
          },
          "workingSet": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The working set of the flow deployment.",
            "nullable": true,
            "example": [
              85912140
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of warnings on the flow deployment since the flow deployment was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              5123
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "The number of errors on the flow deployment since the flow deployment was marked as `ReviewedAt`.",
            "nullable": true,
            "example": [
              42
            ]
          },
          "timestamp": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time of the statistics.",
            "nullable": true,
            "example": [
              "2024-09-30T09:02:02.36Z"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents statistics for a flow deployment on a node. All statistics are represented by a list of statistics.\nThe lists are ordered in time according to the `Timestamp` property and all arrays will have the same length meaning that the same index across all arrays represent the same time.\n**Note**: Only nodes that has support for statistics will have statistics, all others will just have 0 values."
      },
      "FlowDeploymentViewModelExtended": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the flow deployment.",
            "format": "uuid",
            "example": "2896e0bd-ef25-4315-9e61-4bebfb53612b"
          },
          "flowId": {
            "type": "string",
            "description": "Unique identifier for the flow.",
            "format": "uuid",
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "Unique identifier for the flow definition.",
            "format": "uuid",
            "example": "3099806f-8041-417f-9136-d2587a07c226"
          },
          "organizationId": {
            "type": "string",
            "description": "Unique identifier for the organization.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "edgeNodeId": {
            "type": "string",
            "description": "Unique identifier for the edge node.",
            "format": "uuid",
            "example": "7b66484a-ce4f-4f4b-abd9-6c7d27cdbe94"
          },
          "parametersInSync": {
            "type": "boolean",
            "description": "If the parameters are in sync between what is used on the node and what the user has specified on the flow in EdgeDirector.",
            "example": true
          },
          "lastReceivedMessage": {
            "type": "string",
            "description": "The last received message from the node for the flow deployment.",
            "nullable": true,
            "example": "Some message"
          },
          "reportedState": {
            "type": "string",
            "description": "The state of the deployment as reported by the node. Available values are `Stopped`, `Stopping`, `Starting`, `Started`, `Failed` and `Pending`.\nAll flows are initially in `Pending` state until the node has started deploying the flow.",
            "nullable": true,
            "example": "Stopped"
          },
          "wantedState": {
            "type": "string",
            "description": "The state of the deployment as wanted by the user specified in EdgeDirector. Available values are `Stopped`, `Started` and `Deleted`.",
            "nullable": true,
            "example": "Started"
          },
          "flowDefinitionName": {
            "type": "string",
            "description": "Name of the flow definition.",
            "nullable": true,
            "example": "My flow"
          },
          "edgeNodeName": {
            "type": "string",
            "description": "Name of the edge node.",
            "nullable": true,
            "example": "My_node"
          },
          "edgeNodeType": {
            "type": "string",
            "description": "Type of the edge node. Can be `Production` or `DevAndTest`.",
            "nullable": true,
            "example": "Production"
          },
          "flowDescription": {
            "type": "string",
            "description": "Description of the flow.",
            "nullable": true,
            "example": "Flow that does something"
          },
          "flowVersion": {
            "type": "integer",
            "description": "Version of the flow.",
            "format": "int32",
            "example": 1
          },
          "status": {
            "type": "string",
            "description": "Status of the flow deployment. Can be `Ok`, `Information´, `Warning` or `Error`.",
            "nullable": true,
            "example": "Ok"
          },
          "reviewedAt": {
            "type": "string",
            "description": "Date and time when the flow deployment was reviewed.",
            "format": "date-time",
            "example": "2024-09-25T09:33:38.013347Z"
          },
          "reviewedBy": {
            "$ref": "#/components/schemas/Creator"
          },
          "statistics": {
            "$ref": "#/components/schemas/FlowDeploymentStatistics"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowDeploymentParameter"
            },
            "description": "Array of parameters for the flow deployment.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Object representing a flow deployment."
      },
      "FlowDraft": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the flow.",
            "nullable": true,
            "example": "MyFlow"
          },
          "description": {
            "type": "string",
            "description": "The description of the flow.",
            "nullable": true,
            "example": "This is my flow."
          },
          "notes": {
            "type": "string",
            "description": "Notes about the flow.",
            "nullable": true,
            "example": "This is a note."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether the flow is disabled.",
            "example": false
          },
          "autoStart": {
            "type": "boolean",
            "description": "Whether the flow should start automatically.",
            "example": true
          },
          "noOfModules": {
            "type": "integer",
            "description": "The number of modules in the flow.",
            "format": "int32",
            "example": 3
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the flow was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "haltOnError": {
            "type": "boolean",
            "description": "Whether the flow should halt whenever any of the modules in the flow reports an error or if the flow itself gets an error.",
            "example": true
          },
          "disableQueues": {
            "type": "boolean",
            "description": "Whether the queues should be disabled when the flow is running on a node.",
            "example": false
          },
          "id": {
            "type": "string",
            "description": "The identifier of the flow.",
            "format": "uuid",
            "example": "3682bdb4-6ced-4e7a-8c4b-5b4edb78bb4d"
          },
          "flowDefinitionId": {
            "type": "string",
            "description": "The identifier of the flow definition.",
            "format": "uuid",
            "example": "0bb6b120-468a-4c7b-b121-65e88e990c9d"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the flow.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "flowState": {
            "$ref": "#/components/schemas/FlowState"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowModuleDto"
            },
            "description": "The modules in the flow.",
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowResourceDto"
            },
            "description": "The resources used by the flow.",
            "nullable": true
          },
          "credentials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowCredentialDto"
            },
            "description": "The credentials used by the flow.",
            "nullable": true
          },
          "flowVersion": {
            "type": "integer",
            "description": "The version of the flow.",
            "format": "int32",
            "example": 1
          },
          "sdkVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Metadata for the flow.",
            "nullable": true
          },
          "access": {
            "$ref": "#/components/schemas/AccessStatus"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Validation warnings of the flow draft.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An editable flow version."
      },
      "FlowModuleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the flow module.",
            "format": "uuid",
            "example": "15f45d09-41cf-4cc0-aa95-70708bb46900"
          },
          "version": {
            "type": "string",
            "description": "The version of the flow module. Currently always `1.0`.",
            "nullable": true,
            "example": "1.0"
          },
          "status": {
            "type": "string",
            "description": "The status of the flow module. Available values are `Unknown`, `Ok`, `Warning` and `Error`.",
            "nullable": true,
            "example": "Unknown"
          },
          "organization": {
            "type": "string",
            "description": "The organization of the flow module.",
            "nullable": true,
            "example": "My organization"
          },
          "moduleType": {
            "type": "string",
            "description": "The type of the module. Available values are `Input`, `Output` and `Function`.",
            "nullable": true,
            "example": "Input"
          },
          "name": {
            "type": "string",
            "description": "The name of the module.",
            "nullable": true,
            "example": "My module"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The categories of the module.",
            "nullable": true,
            "example": [
              "interval",
              "timer"
            ]
          },
          "haltOnError": {
            "type": "boolean",
            "description": "Whether the flow should halt whenever the module reports an error.",
            "example": true
          },
          "updateStatistics": {
            "type": "boolean",
            "description": "Obsolete. Whether the module should update statistics.",
            "example": true
          },
          "debug": {
            "type": "boolean",
            "description": "Whether the module should produce debug data to be displayed when running the flow in a remote session on a node.",
            "example": false
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether the module is disabled. A disabled module will not get initialized when the flow is started and not receive any messages.",
            "example": false
          },
          "flowDraftId": {
            "type": "string",
            "description": "If the module is located in a flow draft, this is the identifier of the flow draft.",
            "format": "uuid",
            "nullable": true,
            "example": "bc74f4d6-a714-46be-abbc-ad7f06914af9"
          },
          "flowId": {
            "type": "string",
            "description": "If the module is located in a flow, this is the identifier of the flow.",
            "format": "uuid",
            "nullable": true,
            "example": "8d69b986-aae7-40ae-a845-5fd5ba251619"
          },
          "type": {
            "type": "string",
            "description": "The fully qualifying type of the module.",
            "nullable": true,
            "example": "Crosser.EdgeNode.Modules.IntervalModule"
          },
          "maxNrOfOutputs": {
            "type": "integer",
            "description": "The maximum number of outputs the module can have.",
            "format": "int32",
            "example": 10
          },
          "hasInput": {
            "type": "boolean",
            "description": "Whether the module has an input.",
            "example": true
          },
          "hasOutput": {
            "type": "boolean",
            "description": "Whether the module has an output.",
            "readOnly": true,
            "example": true
          },
          "userFriendlyName": {
            "type": "string",
            "description": "The user friendly name of the module.",
            "nullable": true,
            "example": "Interval"
          },
          "packageName": {
            "type": "string",
            "description": "The package name of the module.",
            "nullable": true,
            "example": "Crosser.EdgeNode.Modules.Interval"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Metadata for the module.",
            "nullable": true,
            "example": {
              "name": "Firebird Insert",
              "componentname": "firebirdinsert",
              "x": 1050,
              "y": 390,
              "resources": [ ]
            }
          },
          "settings": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The settings of the module.",
            "nullable": true,
            "example": {
              "commonSettings": {
                "timeSeriesProperties": [ ],
                "bypassMessagesNotMatchingRules": false,
                "rules": [ ],
                "initializeTimeout": 0,
                "startTimeout": 0,
                "stopTimeout": 0
              },
              "credentialId": "44abe30d-b25e-4dc8-a5fc-8b09a41b7610",
              "tableName": "EIK",
              "sourceName": "data",
              "unsafeParameters": false
            }
          },
          "outputs": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "description": "The outputs of the module. Each output of the module will get a list with it's outputs.",
            "nullable": true,
            "example": [
              [
                "6e336e33-f1eb-442c-bb89-13cbe44c19db"
              ]
            ]
          },
          "nrOfOutputs": {
            "type": "integer",
            "description": "The number of outputs the module has.",
            "format": "int32",
            "readOnly": true,
            "example": 1
          },
          "moduleId": {
            "type": "string",
            "description": "The identifier of the module.",
            "format": "uuid",
            "nullable": true,
            "example": "15f45d09-41cf-4cc0-aa95-70708bb46900"
          },
          "module": {
            "$ref": "#/components/schemas/ModuleDto"
          },
          "moduleVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "sdkVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "unsafe": {
            "type": "boolean",
            "description": "Whether the module is flagged as unsafe.",
            "readOnly": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "An instance of a module in a flow."
      },
      "FlowResourceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the flow resource. Will have the same value as `ContentId`.",
            "format": "uuid",
            "example": "bc74f4d6-a714-46be-abbc-ad7f06914af9"
          },
          "versionId": {
            "type": "string",
            "description": "The identifier of the version of the flow resource.",
            "format": "uuid",
            "example": "12bfe620-66c3-4e0f-a1cc-3ffdbbc56468"
          },
          "resourceId": {
            "type": "string",
            "description": "The identifier of the resource.",
            "format": "uuid",
            "example": "e69e28d9-507f-47a9-9443-25340d258c64"
          },
          "contentId": {
            "type": "string",
            "description": "The identifier of the content.",
            "format": "uuid",
            "example": "bc74f4d6-a714-46be-abbc-ad7f06914af9"
          },
          "version": {
            "type": "integer",
            "description": "The version of the resource used.",
            "format": "int32",
            "example": 1
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "flowModuleId": {
            "type": "string",
            "description": "Optional. The identifier of the flow module if there is a module connected to the flow resource.",
            "format": "uuid",
            "nullable": true,
            "example": "26c2138c-d932-4a27-8913-4db6c5cf76b7"
          },
          "setting": {
            "type": "string",
            "nullable": true
          },
          "access": {
            "$ref": "#/components/schemas/AccessStatus"
          }
        },
        "additionalProperties": false,
        "description": "Represents a flow resource."
      },
      "FlowState": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "IdAndName": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the organization.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "name": {
            "type": "string",
            "description": "Name of the organization.",
            "nullable": true,
            "example": "My organization"
          }
        },
        "additionalProperties": false,
        "description": "Information about an organization with an id and a name."
      },
      "IdentityProvider": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the identity provider.",
            "format": "uuid",
            "example": "4100b683-bde7-40c8-bc9c-97c293913f7f"
          },
          "name": {
            "type": "string",
            "description": "Name of the identity provider.",
            "nullable": true,
            "example": "My Identity Provider"
          },
          "description": {
            "type": "string",
            "description": "Description of the identity provider.",
            "nullable": true,
            "example": "This is a sample identity provider."
          },
          "organizationId": {
            "type": "string",
            "description": "Unique identifier for the organization.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "crosserRole": {
            "type": "string",
            "description": "The role required in the identity provider that external users must have to log in to the Crosser system.",
            "nullable": true,
            "example": "Admin"
          },
          "clientId": {
            "type": "string",
            "description": "Client ID for the identity provider.",
            "nullable": true,
            "example": "client-id-123"
          },
          "clientSecret": {
            "type": "string",
            "description": "Client secret for the identity provider.",
            "nullable": true,
            "example": "super-secret"
          },
          "callbackPath": {
            "type": "string",
            "description": "Callback path for the identity provider.",
            "nullable": true,
            "example": "/auth/callback"
          },
          "authority": {
            "type": "string",
            "description": "Authority URL for the identity provider.",
            "nullable": true,
            "example": "https://authority.example.com"
          },
          "userNameClaim": {
            "type": "string",
            "description": "Claim used for the username.",
            "nullable": true,
            "example": "preferred_username"
          },
          "disabled": {
            "type": "boolean",
            "description": "Indicates if the identity provider is disabled.",
            "example": false
          },
          "debug": {
            "type": "boolean",
            "description": "Indicates if debug mode is enabled.",
            "example": true
          },
          "getClaimsFromUserInfoEndpoint": {
            "type": "boolean",
            "description": "Indicates if claims should be retrieved from the user info endpoint.",
            "example": true
          },
          "domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of domains associated with the identity provider.",
            "nullable": true,
            "example": [
              "example.com",
              "another-example.com"
            ]
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of scopes for the identity provider.",
            "nullable": true,
            "example": [
              "openid",
              "profile",
              "email"
            ]
          },
          "roleClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of role claims for the identity provider.",
            "nullable": true,
            "example": [
              "admin",
              "user"
            ]
          },
          "roleMappings": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "description": "Dictionary of role mappings for the identity provider.",
            "nullable": true,
            "example": {
              "external-role-1": [
                "internal-role-1",
                "internal-role-2"
              ],
              "external-role-2": [
                "internal-role-3"
              ]
            }
          }
        },
        "additionalProperties": false,
        "description": "Information about an identity provider."
      },
      "Label": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the label.",
            "format": "uuid",
            "example": "17c2316e-901c-4c6f-8ee5-18abf4075d60"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "name": {
            "type": "string",
            "description": "The name of the label.",
            "nullable": true,
            "example": "My label"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the label was created.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Creator"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the label was last updated.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Creator"
          }
        },
        "additionalProperties": false
      },
      "LabelDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the label.",
            "format": "uuid",
            "example": "17c2316e-901c-4c6f-8ee5-18abf4075d60"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "name": {
            "type": "string",
            "description": "The name of the label.",
            "nullable": true,
            "example": "My label"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the label was created.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "$ref": "#/components/schemas/CreatorDto"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the label was last updated.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/CreatorDto"
          }
        },
        "additionalProperties": false,
        "description": "Represents a label that can be assigned to a set of nodes."
      },
      "LogLevel": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "format": "int32"
      },
      "Login": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of user who is logging in.",
            "nullable": true,
            "example": "john.doe@example.com"
          },
          "twoFactorToken": {
            "type": "string",
            "description": "Two factor validation code received by email after first login step, if using two factor\nauthentication.",
            "nullable": true,
            "example": "391823"
          },
          "password": {
            "type": "string",
            "description": "Password for user who is logging in.",
            "nullable": true,
            "example": "Super_Secret1234"
          }
        },
        "additionalProperties": false,
        "description": "Authentication information for user that is logging in."
      },
      "LoginResult": {
        "type": "object",
        "properties": {
          "nextStep": {
            "type": "string",
            "description": "Next step to take depending on if password has been entered, a two factor token is required etc. Possible values are: `Complete`, `Email`, `External` and `Password`.",
            "nullable": true,
            "example": "Complete"
          },
          "token": {
            "type": "string",
            "description": "JWT to use for the user to make API calls.",
            "nullable": true,
            "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiNWVkNWYwYy0yNjRmLTRiYjktOWMxOS1kNzg2YmY4NWQyMTgiLCJqdGkiOiJhNTNhNWRkMy03ZjU2LTQwNGQtOGFkNS02ODIwZTJjMGFkYzkiLCJmdWxsTmFtZSI6Ik15IFVzZXIiLCJvaWQiOiIyZjM2OWNkZC0yNWU5LTRlNjktODJjNS02MGYwM2IwMzRjNTgiLCJvcmdhbml6YXRpb24iOiJNeSBPcmdhbml6YXRpb24iLCJnbG9iYWxSb2xlIjoiTm9uZSIsInN1YnNjcmlwdGlvblR5cGUiOiJDb21tZXJjaWFsIiwicm9sZXMiOlsiVXNlciIsIlN1cGVyIFVzZXIiXSwibmJmIjoxNzI3MjU0NTc3LCJleHAiOjE3MjgxMTg1NzcsImlzcyI6IkVkZ2VEaXJlY3RvciIsImF1ZCI6IkVkZ2VEaXJlY3RvciJ9.dwCoVuaCSaTulh1FwASaNwaLx2N5L9yXhIq7aPnimpg"
          },
          "releaseNoteToDisplay": {
            "type": "string",
            "description": "The current release not to display for the user that logged in.",
            "nullable": true,
            "example": "44"
          }
        },
        "additionalProperties": false,
        "description": "Authentication information for the user that logged in."
      },
      "Me": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the user.",
            "format": "uuid",
            "readOnly": true,
            "example": "4100b683-bde7-40c8-bc9c-97c293913f7f"
          },
          "providerId": {
            "type": "string",
            "description": "Identifier for the provider the user belongs to.",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "example": "f1aba31e-5623-4f07-ae48-d576bc01a695"
          },
          "providerType": {
            "type": "string",
            "description": "Type of the provider the user belongs to. `None` or `External`.",
            "nullable": true,
            "readOnly": true,
            "example": "None"
          },
          "userName": {
            "type": "string",
            "description": "Username of the user.",
            "nullable": true,
            "readOnly": true,
            "example": "john.doe"
          },
          "email": {
            "type": "string",
            "description": "Email address of the user.",
            "nullable": true,
            "readOnly": true,
            "example": "john.doe@example.com"
          },
          "fullName": {
            "type": "string",
            "description": "Full name of the user.",
            "nullable": true,
            "readOnly": true,
            "example": "John Doe"
          },
          "twoFactorProvider": {
            "type": "string",
            "description": "Two factor provider used by the user. Can be `None` or `External`.",
            "nullable": true,
            "readOnly": true,
            "example": "None"
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier for the organization the user belongs to.",
            "format": "uuid",
            "readOnly": true,
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "lastLoggedIn": {
            "type": "string",
            "description": "Date and time when the user last logged in.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-25T09:33:38.013347Z"
          },
          "createdAt": {
            "type": "string",
            "description": "Date and time when the user was created.",
            "format": "date-time",
            "readOnly": true,
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "receiveEmailAlerts": {
            "type": "boolean",
            "description": "If the user should receive email alerts.",
            "readOnly": true,
            "example": true
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationViewModelForUser"
          },
          "iiot": {
            "type": "boolean",
            "description": "If the user is an IIoT user.",
            "readOnly": true,
            "example": false
          },
          "ipa": {
            "type": "boolean",
            "description": "If the user is an IPA user.",
            "readOnly": true,
            "example": false
          },
          "organizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdAndName"
            },
            "description": "Array of organizations the user belongs to.",
            "nullable": true,
            "readOnly": true,
            "example": [
              {
                "id": "8b3d1b78-00c8-4b4a-8874-d5771048d750",
                "name": "My organization"
              }
            ]
          },
          "legalAgreements": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of legal agreements the user has accepted.",
            "nullable": true,
            "readOnly": true,
            "example": [
              "EulaV2"
            ]
          },
          "uiPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of UI permissions the user has.",
            "nullable": true,
            "example": [
              "*"
            ]
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessPermission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about the user that is currently logged in."
      },
      "ModuleDisplayType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "ModuleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the module.",
            "format": "uuid",
            "example": "15f45d09-41cf-4cc0-aa95-70708bb46900"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "name": {
            "type": "string",
            "description": "The name of the module.",
            "nullable": true,
            "example": "My module"
          },
          "unsafe": {
            "type": "boolean",
            "description": "Whether the module is flagged as unsafe.",
            "example": false
          },
          "iiot": {
            "type": "boolean",
            "description": "Whether the module is an IIoT module.",
            "example": false
          },
          "ipa": {
            "type": "boolean",
            "description": "Whether the module is an IPA module.",
            "example": false
          },
          "packageId": {
            "type": "string",
            "description": "The package id of the module.",
            "nullable": true,
            "example": "Crosser.EdgeNode.Modules.Aggregate"
          },
          "moduleType": {
            "type": "string",
            "description": "The type of the module. Available values are `Input`, `Output` and `Function`.",
            "nullable": true,
            "example": "Input"
          },
          "permissionType": {
            "$ref": "#/components/schemas/PermissionType"
          },
          "moduleDisplayType": {
            "$ref": "#/components/schemas/ModuleDisplayType"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Metadata for the module.",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The categories of the module.",
            "nullable": true,
            "example": [
              "09a5d2e3-c939-4eb9-ad50-fc03a22954d6",
              "37d31795-7682-4a21-a801-389b2b383c5f"
            ]
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModuleVersionDto"
            },
            "description": "The versions of the module.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The time the module was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the module.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the module was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the module.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "teaser": {
            "type": "string",
            "description": "The teaser of the module in markdown.",
            "nullable": true,
            "example": "# My module\\n\\nSome short explanation of the module goes here"
          },
          "icon": {
            "type": "string",
            "description": "The icon of the module.",
            "nullable": true,
            "example": "\"data:image/svg+xml;base64,PD94bWwg...\""
          },
          "currentActiveVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "changelog": {
            "type": "string",
            "description": "The changelog of the module in markdown.",
            "nullable": true,
            "example": "# 1.0.1\\n\\n## Fixed\\n\\n- Bug fix"
          }
        },
        "additionalProperties": false,
        "description": "Represents a module."
      },
      "ModuleVariableDataType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "ModuleVariableDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ModuleVariableType"
          },
          "default": {
            "nullable": true
          },
          "variableType": {
            "$ref": "#/components/schemas/ModuleVariableDataType"
          },
          "credentialProperty": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "type": "string",
            "nullable": true
          },
          "messageProperty": {
            "type": "string",
            "nullable": true
          },
          "required": {
            "type": "boolean"
          },
          "min": {
            "type": "number",
            "format": "double"
          },
          "max": {
            "type": "number",
            "format": "double"
          },
          "minLength": {
            "type": "integer",
            "format": "int32"
          },
          "maxLength": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ModuleVariableType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "ModuleVersionDto": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/SemVer"
          },
          "moduleName": {
            "type": "string",
            "description": "The name of the module version.",
            "nullable": true,
            "example": "Crosser.EdgeNode.Modules.AggregateModule"
          },
          "moduleId": {
            "type": "string",
            "description": "The identifier of the module.",
            "format": "uuid",
            "example": "15f45d09-41cf-4cc0-aa95-70708bb46900"
          },
          "archived": {
            "type": "boolean",
            "description": "Whether the module version is archived. An archived version works if already added in a flow but it cannot be added to flows.",
            "example": false
          },
          "nrOfInputs": {
            "type": "integer",
            "description": "The number of inputs the module version has.",
            "format": "int32",
            "example": 1
          },
          "maxNrOfInputs": {
            "type": "integer",
            "description": "The maximum number of inputs the module version can have.",
            "format": "int32",
            "example": 3
          },
          "nrOfOutputs": {
            "type": "integer",
            "description": "The number of outputs the module version has.",
            "format": "int32",
            "example": 1
          },
          "maxNrOfOutputs": {
            "type": "integer",
            "description": "The maximum number of outputs the module version can have.",
            "format": "int32",
            "example": 10
          },
          "jsonSchema": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "The JSON schema of the module version. Describes what settings the module have and how they are specified.",
            "nullable": true,
            "example": {
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "input1": {
                      "type": "string"
                    }
                  }
                }
              ]
            }
          },
          "variables": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ModuleVariableDto"
              },
              "nullable": true
            },
            "description": "The variables of the module version. Used for Universal Connector modules.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Metadata for the module version. Will contain documentation and other information of the module version.",
            "nullable": true
          },
          "uiVersion": {
            "type": "string",
            "description": "Obsolete. Used in previous versions of the UI. The version of the UI component the module version settings should be presented with.",
            "nullable": true,
            "example": "1.0.0"
          },
          "sdkVersion": {
            "$ref": "#/components/schemas/SemVer"
          },
          "hasInteractiveSupport": {
            "type": "boolean",
            "description": "Whether the module version has interactive support.",
            "example": false
          },
          "createdAt": {
            "type": "string",
            "description": "The time the module version was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the module version.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the module version was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the module version.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          }
        },
        "additionalProperties": false,
        "description": "Represents a module version."
      },
      "NavigationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "edgeNodeId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganizationContactInformation": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the organization.",
            "nullable": true,
            "example": "john.doe@example.com\n            "
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the organization.",
            "nullable": true,
            "example": "+46 123 456 789"
          },
          "country": {
            "type": "string",
            "description": "Country of the organization.",
            "nullable": true,
            "example": "Sweden"
          }
        },
        "additionalProperties": false,
        "description": "Information about the organization contact information."
      },
      "OrganizationViewModelForUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the organization.",
            "format": "uuid",
            "example": "8b3d1b78-00c8-4b4a-8874-d5771048d750"
          },
          "name": {
            "type": "string",
            "description": "Name of the organization.",
            "nullable": true,
            "example": "My organization"
          },
          "createdAt": {
            "type": "string",
            "description": "Date and time when the organization was created.",
            "format": "date-time",
            "example": "2024-09-23T09:33:38.013347Z"
          },
          "lastLoggedIn": {
            "type": "string",
            "description": "Date and time when the user last logged in.",
            "format": "date-time",
            "example": "2024-09-25T09:33:38.013347Z"
          },
          "contactInformation": {
            "$ref": "#/components/schemas/OrganizationContactInformation"
          },
          "subscription": {
            "$ref": "#/components/schemas/EdgedirectorSubscription"
          },
          "alertEmailRecipients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of email addresses that should receive alerts.",
            "nullable": true,
            "example": [
              "john.doe@example.com"
            ]
          },
          "docker": {
            "$ref": "#/components/schemas/DockerCredentials"
          }
        },
        "additionalProperties": false,
        "description": "Information about the organization the user belongs to."
      },
      "Parameter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter.",
            "nullable": true,
            "example": "My parameter"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the parameter was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the parameter was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "value": {
            "$ref": "#/components/schemas/ParameterValue"
          },
          "overrides": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParameterOverride"
            },
            "nullable": true
          },
          "nrOfOverrides": {
            "type": "integer",
            "description": "The number of overrides for the parameter.",
            "format": "int32",
            "readOnly": true,
            "example": 3
          },
          "nrOfFlowDefinitions": {
            "type": "integer",
            "description": "The number of flow definitions that uses the parameter.",
            "format": "int32",
            "example": 3
          }
        },
        "additionalProperties": false
      },
      "ParameterOverride": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter.",
            "nullable": true,
            "example": "My parameter"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the parameter was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the parameter was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "value": {
            "$ref": "#/components/schemas/ParameterValue"
          },
          "edgeNodeId": {
            "type": "string",
            "description": "The identifier of the node.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          }
        },
        "additionalProperties": false
      },
      "ParameterOverrideDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter.",
            "nullable": true,
            "example": "My parameter"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "createdAt": {
            "type": "string",
            "description": "The time the parameter was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the parameter was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the parameter.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "value": {
            "$ref": "#/components/schemas/ParameterValueDto"
          },
          "edgeNodeId": {
            "type": "string",
            "description": "The identifier of the node.",
            "format": "uuid",
            "example": "88cd62fa-6cb1-43d3-b243-787bd6ec8041"
          }
        },
        "additionalProperties": false,
        "description": "Represents a parameter override for a node."
      },
      "ParameterValue": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ParameterValueDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the parameter value. Will be the same as the parameter Id.",
            "nullable": true,
            "example": "My parameter"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "type": {
            "type": "string",
            "description": "The type of the parameter. Available values are `String`, `Number`, `Boolean`, `Credential`, `Resource`, `Integer` and `Object`.",
            "nullable": true,
            "example": "String"
          },
          "value": {
            "description": "The value of the parameter.",
            "nullable": true
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NavigationDto"
            },
            "nullable": true,
            "readOnly": true
          },
          "parameterOverrides": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NavigationDto"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a value of a parameter."
      },
      "PermissionType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "ReadOnlySpan.1.Char": {
        "type": "object",
        "properties": {
          "length": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "isEmpty": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RegistrationKey": {
        "type": "object",
        "properties": {
          "validFrom": {
            "type": "string",
            "description": "Date and time when the registration key is valid from.",
            "format": "date-time",
            "nullable": true,
            "example": "2024-09-23T09:33:38.013347Z"
          },
          "validTo": {
            "type": "string",
            "description": "Date and time when the registration key is valid to.",
            "format": "date-time",
            "nullable": true,
            "example": "2025-09-23T09:33:38.013347Z"
          },
          "type": {
            "type": "string",
            "description": "Type that the nodes using the registration key gets. Avaliable values are `Production` and `DevAndTest`.",
            "nullable": true,
            "example": "Production"
          }
        },
        "additionalProperties": false,
        "description": "Information about a registration key."
      },
      "Resource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the resource.",
            "format": "uuid",
            "example": "5189952c-21b0-4ca6-b84d-43c00fc5dad8"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "example": "8c84e649-1669-428c-8506-47b0815180e8"
          },
          "name": {
            "type": "string",
            "description": "The name of the resource.",
            "nullable": true,
            "example": "My resource"
          },
          "type": {
            "type": "string",
            "description": "The type of the resource. Available values are `File`, `CSharpScript`, `PythonScript`, `Modbus`, `OPC`, `SiemensS7`, `Rockwell`, `PiWebApi`, `DataTriggerDefinitions`, `AvevaHistorian`.",
            "nullable": true,
            "example": "File"
          },
          "pathOnNode": {
            "type": "string",
            "description": "Optional. The path of the resource. Some type of resources have no path, such as `Modbus`.",
            "nullable": true,
            "example": "./my_path"
          },
          "currentVersion": {
            "type": "integer",
            "description": "The latest version of the resource (including archived).",
            "format": "int32",
            "example": 1
          },
          "currentActiveVersion": {
            "type": "integer",
            "description": "The latest active version of the resource (not inlcuding archived).",
            "format": "int32",
            "example": 1
          },
          "category": {
            "type": "string",
            "description": "The category of the resource.",
            "nullable": true,
            "example": "My category"
          },
          "hasDraft": {
            "type": "boolean",
            "description": "Whether the resource has a draft version.",
            "example": true
          },
          "flowsCount": {
            "type": "integer",
            "description": "The number of flows that uses the resource.",
            "format": "int32",
            "example": 3
          },
          "flowDraftsCount": {
            "type": "integer",
            "description": "The number of flow drafts that uses the resource.",
            "format": "int32",
            "example": 3
          },
          "flowTemplatesCount": {
            "type": "integer",
            "description": "The number of flow templates that uses the resource.",
            "format": "int32",
            "example": 3
          },
          "parameterValuesCount": {
            "type": "integer",
            "description": "The number of parameter values that uses the resource.",
            "format": "int32",
            "example": 3
          },
          "createdAt": {
            "type": "string",
            "description": "The time the resource was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the resource.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the resource was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the resource.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "crn": {
            "$ref": "#/components/schemas/Crn"
          },
          "path": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Object representing a resource."
      },
      "ResourceVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the version.",
            "format": "uuid",
            "example": "61ec8858-abd2-455e-b023-fd1184c96329"
          },
          "resourceId": {
            "type": "string",
            "description": "The identifier of the resource.",
            "format": "uuid",
            "example": "5189952c-21b0-4ca6-b84d-43c00fc5dad8"
          },
          "contentId": {
            "type": "string",
            "description": "The identifier of the content.",
            "format": "uuid",
            "example": "61ec8858-abd2-455e-b023-fd1184c96329"
          },
          "name": {
            "type": "string",
            "description": "The name of the resource.",
            "nullable": true,
            "example": "My resource"
          },
          "description": {
            "type": "string",
            "description": "The description of the version.",
            "nullable": true,
            "example": "My description"
          },
          "type": {
            "type": "string",
            "description": "The type of the resource. Available values are `File`, `CSharpScript`, `PythonScript`, `Modbus`, `OPC`, `SiemensS7`, `Rockwell`, `PiWebApi`, `DataTriggerDefinitions`, `AvevaHistorian`.",
            "nullable": true,
            "example": "File"
          },
          "sizeInBytes": {
            "type": "integer",
            "description": "The size of the version in bytes.",
            "format": "int64",
            "nullable": true,
            "example": 1234
          },
          "state": {
            "type": "string",
            "description": "The state of the version. Available values are `Draft`, `Completed`, `Archived`.",
            "nullable": true,
            "example": "Draft"
          },
          "path": {
            "type": "string",
            "description": "Optional. The path of the resource. Some type of resources have no path, such as `Modbus`.",
            "nullable": true,
            "example": "./my_path"
          },
          "md5Sum": {
            "type": "string",
            "description": "The MD5 sum of the version.",
            "nullable": true,
            "example": "1175E6103E3158432AC8EE0716B937B3"
          },
          "url": {
            "type": "string",
            "description": "The URL of the resource.",
            "nullable": true,
            "example": null
          },
          "contentType": {
            "type": "string",
            "description": "The content type of the version.",
            "nullable": true,
            "example": "application/octet-stream"
          },
          "version": {
            "type": "integer",
            "description": "The version of the resource.",
            "format": "int32",
            "example": 1
          },
          "createdAt": {
            "type": "string",
            "description": "The time the version was created.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "createdBy": {
            "type": "string",
            "description": "The user that created the version.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "updatedAt": {
            "type": "string",
            "description": "The time the version was last updated.",
            "format": "date-time",
            "example": "2024-09-24T09:33:38.013347Z"
          },
          "updatedBy": {
            "type": "string",
            "description": "The user that last updated the version.",
            "format": "uuid",
            "example": "256f791c-fbc0-4435-9429-d291227f6577"
          },
          "flowsCount": {
            "type": "integer",
            "description": "The number of flows that uses the version.",
            "format": "int32",
            "example": 3
          },
          "flowDraftsCount": {
            "type": "integer",
            "description": "The number of flow drafts that uses the version.",
            "format": "int32",
            "example": 3
          },
          "flowTemplatesCount": {
            "type": "integer",
            "description": "The number of flow templates that uses the version.",
            "format": "int32",
            "example": 3
          },
          "parameterValuesCount": {
            "type": "integer",
            "description": "The number of parameter values that uses the version.",
            "format": "int32",
            "example": 3
          }
        },
        "additionalProperties": false,
        "description": "Object representing a resource version."
      },
      "SemVer": {
        "type": "object",
        "properties": {
          "major": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "minor": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "patch": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "preReleaseVersion": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "buildMetadata": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateClientIdAndSecret": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: {Bearer token}\"\nImportant: \"Bearer\" must be included before the JWT in the value field.",
        "name": "Authorization",
        "in": "header"
      }
    }
  }
}