{
  "openapi": "3.0.0",
  "info": {
    "title": "Humanitec API",
    "version": "0.28.34",
    "description": "# Introduction\nThe *Humanitec API* allows you to automate and integrate Humanitec into your developer and operational workflows.\nThe API is a REST based API. It is based around a set of concepts:\n\n* Core\n* External Resources\n* Sets and Deltas\n\n## Authentication\n\nAlmost all requests made to the Humanitec API require Authentication. See our [Developer Docs on API Authentication](https://developer.humanitec.com/platform-orchestrator/reference/api-references/#authentication) for instructions.\n\n## Content Types\nThe Humanitec API, unless explicitly specified, only accepts content types of `application/json` and will always return valid `application/json` or an empty response.\n\n## Response Codes\n### Success\nAny response code in the `2xx` range should be regarded as success.\n\n| **Code** | **Meaning**                         |\n|----------|-------------------------------------|\n| `200`    | Success                             |\n| `201`    | Success, a new resource was created |\n| `204`    | Success, but no content in response |\n\n_Note: We plan to simplify the interface by replacing 201 with 200 status codes._\n\n### Failure\nAny response code in the `4xx` range should be regarded as an error that can be rectified by the client. `5xx` error codes indicate errors that cannot be corrected by the client.\n\n| **Code** | **Meaning**                                                                                                           |\n|----------|-----------------------------------------------------------------------------------------------------------------------|\n| `400`    | General error. (Body will contain details)                                                                            |\n| `401`    | Attempt to access protected resource without `Authorization` Header.                                                  |\n| `403`    | The `Bearer` or `JWT` does not grant access to the requested resource.                                                |\n| `404`    | Resource not found.                                                                                                   |\n| `405`    | Method not allowed                                                                                                    |\n| `409`    | Conflict. Usually indicated a resource with that ID already exists.                                                   |\n| `422`    | Unprocessable Entity. The body was not valid JSON, was empty or contained an object different from what was expected. |\n| `429`    | Too many requests - request rate limit has been reached.                                                              |\n| `500`    | Internal Error. If it occurs repeatedly, contact support.                                                             |\n",
    "contact": {
      "name": "Humanitec Support",
      "email": "support@humanitec.com"
    },
    "x-logo": {
      "url": "humanitec-logo.png",
      "altText": "Humanitec logo"
    }
  },
  "paths": {
    "/orgs/{orgId}/agents": {
      "post": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "createAgent",
        "summary": "Register a new Agent under an Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentCreateBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Agent registered.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      },
      "get": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "listAgents",
        "summary": "List all the agents in an Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/fingerprintQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Agent"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/agents/{agentId}": {
      "delete": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "deleteAgent",
        "summary": "Delete an Agent (and its keys) stored under an Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/agentIdPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Agent successfully deleted."
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "patchAgent",
        "summary": "Update the description of an Agent.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/agentIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentPatchBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Agent updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/agents/{agentId}/keys": {
      "get": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "listKeysInAgent",
        "summary": "List all the keys registered under an Agent in an Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/agentIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Key"
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "createKey",
        "summary": "Register a new Key under an Agent in an Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/agentIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyCreateBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful list response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Key"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      }
    },
    "/orgs/{orgId}/agents/{agentId}/keys/{fingerprint}": {
      "delete": {
        "tags": [
          "Agents",
          "public"
        ],
        "operationId": "deleteKeyInAgent",
        "summary": "Delete a key registered under a Agent.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/agentIdPathParam"
          },
          {
            "$ref": "#/components/parameters/fingerprintPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Key successfully deleted."
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps": {
      "get": {
        "tags": [
          "public",
          "Application"
        ],
        "summary": "List all Applications in an Organization.",
        "operationId": "listApplications",
        "description": "Listing or lists of all Applications that exist within a specific Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Possibly empty list of Applications.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationResponse"
                  },
                  "type": "array"
                },
                "example": [
                  {
                    "created_at": "2020-06-15T09:32:03Z",
                    "created_by": "a-user@example.com",
                    "envs": {
                      "id": "development",
                      "name": "Development",
                      "type": "development"
                    },
                    "id": "my-app",
                    "name": "My Awesome App"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Application"
        ],
        "summary": "Add a new Application to an Organization",
        "operationId": "createApplication",
        "description": "Creates a new Application, then adds it to the specified Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request ID, Human-friendly name and environment of the Application.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationCreationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Application requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationResponse"
                },
                "example": {
                  "created_at": "2020-06-15T09:32:03Z",
                  "created_by": "a-user@example.com",
                  "envs": {
                    "id": "development",
                    "name": "Development",
                    "type": "development"
                  },
                  "id": "my-app",
                  "name": "My Awesome App"
                }
              }
            }
          },
          "400": {
            "description": "The request body was unparseable.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "The Authorization header was not present or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The supplied `id` clashes with an existing Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}": {
      "get": {
        "tags": [
          "public",
          "Application"
        ],
        "summary": "Get an existing Application",
        "operationId": "getApplication",
        "description": "Gets a specific Application in the specified Organization by ID.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Application requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationResponse"
                },
                "example": {
                  "created_at": "2020-06-15T09:32:03Z",
                  "created_by": "a-user@example.com",
                  "envs": {
                    "id": "development",
                    "name": "Development",
                    "type": "development"
                  },
                  "id": "my-app",
                  "name": "My Awesome App"
                }
              }
            }
          },
          "404": {
            "description": "No Application with ID `appId` in Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Application"
        ],
        "summary": "Update metadata of an existing Application",
        "operationId": "patchApplication",
        "description": "Update metadata of an existing Application in the specified Organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The Application patch request. Only the field `name` can be updated.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationPatchPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Application updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationResponse"
                },
                "example": {
                  "created_at": "2020-06-15T09:32:03Z",
                  "created_by": "a-user@example.com",
                  "envs": {
                    "id": "development",
                    "name": "Development",
                    "type": "development"
                  },
                  "id": "my-app",
                  "name": "My Awesome App"
                }
              }
            }
          },
          "404": {
            "description": "No Application with ID `appId` in Organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Application"
        ],
        "summary": "Delete an Application",
        "operationId": "deleteApplication",
        "description": "Deleting an Application will also delete everything associated with it. This includes Environments, Deployment history on those Environments, and any shared values and secrets associated.\n\n_Deletions are currently irreversible._",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Application Successfully deleted.\n\n"
          },
          "202": {
            "description": "Application deletion is in progress.\n\n"
          },
          "401": {
            "description": "The Authorization header was not present or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Application with `id` in Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs": {
      "get": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "List all Environments.",
        "operationId": "listEnvironments",
        "description": "Lists all of the Environments in the Application.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Environments associated with an Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentResponse"
                  },
                  "type": "array"
                },
                "example": [
                  {}
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "Add a new Environment to an Application.",
        "operationId": "createEnvironment",
        "description": "Creates a new Environment of the specified Type and associates it with the Application specified by `appId`.\n\nThe Environment is also initialized to the **current or past state of Deployment in another Environment**. This ensures that every Environment is derived from a previously known state. This means it is not possible to create a new Environment for an Application until at least one Deployment has occurred. (The Deployment does not have to be successful.)\n\nThe Type of the Environment must be already defined in the Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The ID, Name, Type, and Deployment the Environment will be derived from.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentDefinitionRequest"
              },
              "example": {
                "from_deploy_id": "e80db1a327208c1a",
                "id": "awesome-feature",
                "name": "Awesome Feature Dev",
                "namespace": "awesome-namespace",
                "type": "development"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The new Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentResponse"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "The supplied `id` is an invalid ID or a required field is missing.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Application with `id` in Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The supplied `id` clashes with an existing Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}": {
      "get": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "Get a specific Environment.",
        "operationId": "getEnvironment",
        "description": "Gets a specific Environment in an Application.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Environment requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentResponse"
                },
                "example": {}
              }
            }
          },
          "404": {
            "description": "No Environment with `id` in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "Update a specific Environment.",
        "operationId": "updateEnvironment",
        "description": "Update a specific Environment in an Application.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentBaseUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentResponse"
                },
                "example": {}
              }
            }
          },
          "404": {
            "description": "No Environment with `id` in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "Delete a specific Environment.",
        "operationId": "deleteEnvironment",
        "description": "Deletes a specific Environment in an Application.\n\nDeleting an Environment will also delete the Deployment history of the Environment.\n\n_Deletions are currently irreversible._",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Environment successfully deleted.\n\n"
          },
          "202": {
            "description": "Environment deletion is in progress.\n\n"
          },
          "400": {
            "description": "Attempt to delete the last Environment in an Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment with `envId` in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/deploys": {
      "get": {
        "tags": [
          "public",
          "Deployment"
        ],
        "summary": "List Deployments in an Environment.",
        "description": "List all of the Deployments that have been carried out in the current Environment. Deployments are returned with the newest first.",
        "operationId": "listDeployments",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pipelineRunId",
            "in": "query",
            "description": "An optional filter by the Pipeline and Pipeline Run ID separated by a comma.\n",
            "example": "default,01234567-89ab-cdef-0123-456789abcdef",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Deployments.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DeploymentResponse"
                  },
                  "type": "array"
                },
                "example": [
                  {}
                ]
              }
            }
          },
          "404": {
            "description": "No Environment with `id` in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Deployment"
        ],
        "summary": "Start a new Deployment.",
        "operationId": "createDeployment",
        "description": "At Humanitec, Deployments are defined as changes to the state of the Environment. The state can be changed by defining a set of desired changes to the current state via a Deployment Delta or by resetting the current state after a previous Deployment. (See Environment Rebase.) Both types of changes can be combined into a single Deployment during which the Delta is applied to the Rebased state.\n\nWhen specifying a Delta, a Delta ID must be used. That Delta must have been committed to the Delta store prior to the Deployment.\n\nA Set ID can also be defined in the deployment to force the state of the environment to a particular state. This will be ignored if the Delta is specified.\n\n**NOTE:**\n\nDirectly setting a `set_id` in a deployment is not recommended as it will not record history of where the set came from. If the intention is to replicate an existing environment, use the environment rebasing approach described above.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Delta describing the change to the Environment and a comment.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeploymentRequest"
              },
              "example": {
                "comment": "Updated version of module-one to v0.3.1",
                "delta_id": "df1ad41807b0390a9b0eaf8688e1f5baece9d764"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A description of the Deployment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeploymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error because the Delta is non-existent or incompatible with the state of the Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment with `id` in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "There is already an active deployment in the Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId}": {
      "get": {
        "tags": [
          "public",
          "Deployment"
        ],
        "summary": "Get a specific Deployment.",
        "description": "Gets a specific Deployment in an Application and an Environment.",
        "operationId": "getDeployment",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deployId",
            "in": "path",
            "description": "The Deployment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Deployment requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeploymentResponse"
                },
                "example": {}
              }
            }
          },
          "404": {
            "description": "No Deployment with `deployId` in Application and Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId}/errors": {
      "get": {
        "tags": [
          "public",
          "Deployment"
        ],
        "summary": "List errors that occurred in a Deployment.",
        "operationId": "listDeploymentErrors",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deployId",
            "in": "path",
            "description": "The Deployment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A List of deployment errors, could be empty.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DeploymentErrorResponse"
                  },
                  "type": "array"
                },
                "example": [
                  {
                    "code": "CLD-001",
                    "message": "Incorrect credentials",
                    "object_id": "my-service",
                    "scope": "workload"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/from_deploy_id": {
      "put": {
        "tags": [
          "public",
          "Environment"
        ],
        "summary": "Rebase to a different Deployment.",
        "operationId": "rebaseEnvironment",
        "description": "Rebasing an Environment means that the next Deployment to the Environment will be based on the Deployment specified in the rebase rather than the last one in the Environment. The Deployment to rebase to can either be current or a previous Deployment. The Deployment can be from any Environment of the same Application.\n\n_Running code will only be affected on the next Deployment to the Environment._\n\nCommon use cases for rebasing an Environment:\n\n* _Rollback_: Rebasing to a previous Deployment in the current Environment and then Deploying without additional changes will execute a rollback to the previous Deployment state.\n\n* _Clone_: Rebasing to the current Deployment in a different Environment and then deploying without additional changes will clone all of the configuration of the other Environment into the current one. (NOTE: External Resources will not be cloned in the process - the current External Resources of the Environment will remain unchanged and will be used by the deployed Application in the Environment.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Deployment ID to rebase to.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Rebase successful.\n\n"
          },
          "400": {
            "description": "No Deployment with ID found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment with ID found in Application and Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/env-types": {
      "get": {
        "tags": [
          "public",
          "EnvironmentType"
        ],
        "summary": "List all Environment Types",
        "operationId": "listEnvironmentTypes",
        "description": "Lists all Environment Types in an Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Environment Types.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentTypeResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "EnvironmentType"
        ],
        "summary": "Add a new Environment Type",
        "operationId": "createEnvironmentType",
        "description": "Adds a new Environment Type to an Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "New Environment Type.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentTypeRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Environment Type requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentTypeResponse"
                }
              }
            }
          },
          "400": {
            "description": "The supplied `id` is not a valid ID or a required field is missing.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "The Authorization header was not present or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The supplied `id` clashes with an existing Environment Type.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/env-types/{envTypeId}": {
      "get": {
        "tags": [
          "public",
          "EnvironmentType"
        ],
        "summary": "Get an Environment Type",
        "operationId": "getEnvironmentType",
        "description": "Gets a specific Environment Type within an Organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envTypeId",
            "in": "path",
            "description": "ID of the Environment Type.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Environment Type requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment Type with `id` in Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "EnvironmentType"
        ],
        "summary": "Deletes an Environment Type",
        "operationId": "deleteEnvironmentType",
        "description": "Deletes a specific Environment Type from an Organization. If there are Environments with this Type in the Organization, the operation will fail.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envTypeId",
            "in": "path",
            "description": "ID of the Environment Type.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The Environment Type requested.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentTypeResponse"
                }
              }
            }
          },
          "401": {
            "description": "The Authorization header was not present or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment Type with ID `envTypeId` in Organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "There are 1 or more Environments with this Type.\n\nTo delete an Environment Type, there can be no Environments with that type in the Organization.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "example": [
                  {
                    "app_id": "my-app",
                    "env_id": "awesome-feature"
                  },
                  {
                    "app_id": "my-app",
                    "env_id": "bugfix-7951"
                  }
                ]
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "EnvironmentType"
        ],
        "summary": "Updates Environment Type",
        "operationId": "updateEnvironmentType",
        "description": "Updates Environment Type.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envTypeId",
            "in": "path",
            "description": "ID of the Environment Type.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateEnvironmentTypePayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The Environment Type updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentTypeResponse"
                }
              }
            }
          },
          "401": {
            "description": "The Authorization header was not present or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Environment Type with provided ID exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefact-versions": {
      "get": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "List all Artefacts Versions in the org.",
        "description": "Returns the Artefact Versions registered with your organization. If no elements are found, an empty list is returned.",
        "operationId": "listArtefactVersionsInOrg",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "(Optional) Filter Artefact Versions by name.",
            "example": "registry.humanitec.io/public/sample-app",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "description": "(Optional) Filter Artefact Versions by the reference to a Version of the same Artefact. This cannot be used together with `name`.",
            "example": "registry.humanitec.io/public/sample-app:v1@sha256:8414aa82208bc4c2761dc149df67e25c6b8a9380e5d8c4e7b5c84ca2d04bb244",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "(Optional) Filter for non-archived Artefact Versions. If no filter is defined only non-archived Artefact Versions are returned, if the filter is true both archived and non-archived Versions are returned.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "(Optional) Filter by artefact type.",
            "example": "containers",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Artefact Versions registered with your organization.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ArtefactVersion"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "Register a new Artefact Version with your organization.",
        "operationId": "createArtefactVersion",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vcs",
            "in": "query",
            "description": "(Optional) Which version control system the version comes from. Default value is \"git\". If this parameter is not supplied or its value is \"git\", the provided ref, if not empty, is checked to ensure that it has the prefix \"refs/\".",
            "example": "git",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Optionally validate the request but do not persist the actual artefact. If the Accept type is set to \"application/x.workload-deployment-set+json\" or \"application/x.workload-deployment-set+x-yaml\", the generated deployment set will be returned.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "Indicates which content types the client is able to understand.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The data needed to register a new Artefact Version within the organization.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateArtefactVersion"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateArtefactVersion"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An Artefact Version.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArtefactVersion"
                }
              },
              "application/x.workload-deployment-set+json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadArtefactVersionDeploymentSet"
                }
              },
              "application/x.workload-deployment-set+x-yaml": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadArtefactVersionDeploymentSet"
                }
              }
            }
          },
          "204": {
            "description": "The request was valid, but no Artefact Version was created."
          },
          "400": {
            "description": "Either one or more request body parameters are missing or invalid, or the requested payload is not provided or malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Request unauthorised.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefact-versions/{artefactVersionId}": {
      "get": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "Get an Artefacts Versions.",
        "description": "Returns a specific Artefact Version.",
        "operationId": "getArtefactVersion",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactVersionId",
            "in": "path",
            "description": "The Artefact Version ID.",
            "example": "662b80db-cc71-40cf-b601-08d57983f6e4",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An Artefact Version.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArtefactVersion"
                }
              }
            }
          },
          "400": {
            "description": "Malformed Artefact Version ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Artefact Version not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefact-versions/{artefactVersionId}/workload-spec": {
      "get": {
        "tags": [
          "public",
          "Artefact"
        ],
        "summary": "Get the spec of this Workload Artefact Version",
        "description": "Returns the spec of this Artefact Version if it is of type workload. An error will be\nreturned if it is not.\n",
        "operationId": "getWorkloadArtefactVersionSpec",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactVersionId",
            "in": "path",
            "description": "The Artefact Version ID.",
            "example": "662b80db-cc71-40cf-b601-08d57983f6e4",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "The accepted content type.",
            "example": "application/json",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The workload spec, returned in JSON format by default or in YAML if specified by the Accept header.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "application/x-yaml": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Malformed Artefact Version ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Artefact Version not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefact-versions/{artefactVersionId}/workload-deployment-set": {
      "get": {
        "tags": [
          "public",
          "Artefact"
        ],
        "summary": "Get the Humanitec module definition of this Workload Artefact Version as a deployment set",
        "description": "Returns the Humanitec workload module of this Artefact Version if it is of type workload. An error will be\nreturned if it is not.\n",
        "operationId": "getWorkloadArtefactVersionDeploymentSet",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactVersionId",
            "in": "path",
            "description": "The Artefact Version ID.",
            "example": "662b80db-cc71-40cf-b601-08d57983f6e4",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "The accepted content type.",
            "example": "application/json",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The workload spec as a Humanitec deployment set, returned in JSON format by default or in YAML if specified by the Accept header.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadArtefactVersionDeploymentSet"
                }
              },
              "application/x-yaml": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadArtefactVersionDeploymentSet"
                }
              }
            }
          },
          "400": {
            "description": "Malformed Artefact Version ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Artefact Version not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefacts": {
      "get": {
        "tags": [
          "public",
          "Artefact"
        ],
        "summary": "List all Artefacts.",
        "description": "Returns the Artefacts registered with your organization. If no elements are found, an empty list is returned.",
        "operationId": "listArtefacts",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "(Optional) Filter Artefacts by type.",
            "example": "container",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "(Optional) Filter Artefacts by name.",
            "example": "registry.humanitec.io/public/sample-app",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of Artefacts within the organization.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ArtefactResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefacts/{artefactId}": {
      "delete": {
        "tags": [
          "public",
          "Artefact"
        ],
        "summary": "Delete Artefact and all related Artefact Versions",
        "description": "The specified Artefact and its Artefact Versions will be permanently deleted. Only Administrators can delete an Artefact.",
        "operationId": "deleteArtefact",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactId",
            "in": "path",
            "description": "The Artefact ID.",
            "example": "da97af75-2e7c-4ef3-bec0-755ce1e8dd29",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Artefact and related Artefact Versions successfully deleted."
          },
          "403": {
            "description": "Request forbidden. This action can only be performed by users holding the Administrator role. It is not possible to delete a built-in artefact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Artefact not found within your organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefacts/{artefactId}/versions": {
      "get": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "List all Artefact Versions of an Artefact.",
        "description": "Returns the Artefact Versions of a specified Artefact registered with your organization. If no elements are found, an empty list is returned.",
        "operationId": "listArtefactVersions",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactId",
            "in": "path",
            "description": "The Artefact ID.",
            "example": "da97af75-2e7c-4ef3-bec0-755ce1e8dd29",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "(Optional) Filter for non-archived Artefact Versions. If no filter is defined only non-archived Artefact Versions are returned, if the filter is true both archived and non-archived Versions are returned.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "description": "(Optional) Filter Artefact Versions by by name including a version or digest.",
            "example": "registry.humanitec.io/public/sample-app:v1@sha256:8414aa82208bc4c2761dc149df67e25c6b8a9380e5d8c4e7b5c84ca2d04bb244",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "(Optional) Limit the number of versions returned by the endpoint.",
            "example": 20,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns all Versions of the specified Artefact.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ArtefactVersion"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Invalid inputs provided.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Artefact with the supplied ID `artefactID` has been found within the organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefacts/{artefactId}/versions/{versionId}": {
      "patch": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "Update Version of an Artefact.",
        "description": "Update the version of a specified Artefact registered with your organization\".",
        "operationId": "patchArtefactVersion",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "artefactId",
            "in": "path",
            "description": "The Artefact ID.",
            "example": "da97af75-2e7c-4ef3-bec0-755ce1e8dd29",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "description": "The Version ID.",
            "example": "da97af75-2e7c-4ef3-bec0-755ce1e8dd29",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Artefact Version Update Request. Only the field `archive` can be updated.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateArtefactVersionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Artefact Version.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArtefactVersion"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters are missing or invalid, or the requested payload is not provided or malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Request unauthorised.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Update requested on a version of a builtin artefact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Artefact with the supplied artefactId or no Artefact Version with the supplied versionId have been found within the organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/images": {
      "get": {
        "tags": [
          "public",
          "Image"
        ],
        "summary": "List all Container Images",
        "description": "DEPRECATED: This endpoint exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nLists all of the Container Images registered for this organization.",
        "operationId": "listDeprecatedImages",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Possibly empty list of Container Images.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ImageResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/images/{imageId}": {
      "get": {
        "tags": [
          "public",
          "Image"
        ],
        "summary": "Get a specific Image Object",
        "description": "DEPRECATED: This endpoint exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nThe response includes a list of Image Builds as well as some metadata about the Image such as its Image Source.\n\nNote, `imageId` may not be the same as the container name. `imageId` is determined by the system making notifications about new builds.",
        "operationId": "getDeprecatedImage",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "The Image ID.",
            "example": "sample-app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Image Object requested.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Image with an ID of `imageId` found within the organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/images/{imageId}/builds": {
      "get": {
        "tags": [
          "public",
          "Image"
        ],
        "summary": "Lists all the Builds of an Image",
        "description": "DEPRECATED: This endpoint exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nThe response lists all available Image Builds of an Image.",
        "operationId": "listDeprecatedImageBuilds",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "The Image ID.",
            "example": "sample-app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Possibly empty list of Builds of Container Images.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ImageBuildResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "description": "No Image with an ID of `imageId` found within the organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Image"
        ],
        "summary": "Add a new Image Build",
        "description": "DEPRECATED: This endpoint exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nThis endpoint is used by Continuous Integration (CI) pipelines to notify Humanitec that a new Image Build is available.\n\nIf there is no Image with ID `imageId`, it will be automatically created.",
        "operationId": "createDeprecatedImageBuild",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "The Image ID.",
            "example": "sample-app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The metadata associated with the build.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageBuildRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Build successfully added."
          },
          "400": {
            "description": "The supplied `imageId` is invalid or a required field is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Request unauthorised.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "A build cannot be added to a builtin image.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/artefact-versions/convert-score": {
      "post": {
        "tags": [
          "public",
          "ArtefactVersion"
        ],
        "summary": "Convert a Score specification, optional overrides, and extensions into the contents for a deployment set.",
        "operationId": "convertScoreToSet",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "example": "sample-org",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Score specification, optional overrides, and extensions.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertScoreToSetBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The deployment set contents.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadArtefactVersionDeploymentSet"
                }
              }
            }
          },
          "400": {
            "description": "Either one or more request body parameters are missing or invalid, or the requested payload is not provided or malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/audit-logs": {
      "get": {
        "tags": [
          "public",
          "AuditLogs"
        ],
        "operationId": "listAuditLogEntries",
        "summary": "List audit log entries by Organization",
        "description": "List all available audit log entries in the Organization that match the specified filters. This API returns entries from newest to oldest and is paginated. Only successful create, modify, or delete requests are stored in  the audit log. This API may return a lot of data, depending on the size of the Organization, so it is  recommended to use the \"to\" and \"from\" query parameters to limit the returned data to the time window of interest. Each response contains at most 32 days worth of data for performance reasons and may be empty if no records exist within that time range. Pagination links in the 'Link' header should always be followed when present.\nThis API requires administrator permissions in the Organization.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          },
          {
            "name": "from",
            "in": "query",
            "description": "Optional filter for entries created after the given time.",
            "required": false,
            "example": "2023-01-01T00:00:00Z",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Optional filter for entries created before the given time.",
            "required": false,
            "example": "2023-01-01T00:00:00Z",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLogEntry"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/rules": {
      "get": {
        "tags": [
          "public",
          "AutomationRule"
        ],
        "operationId": "listAutomationRules",
        "summary": "List all Automation Rules in an Environment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty array of Automation Rules",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AutomationRuleResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "AutomationRule"
        ],
        "operationId": "createAutomationRule",
        "summary": "Create a new Automation Rule for an Environment.",
        "description": "Items marked as deprecated are still supported (however not recommended) for use and are incompatible with properties of the latest api version. In particular an error is raised if  `images_filter` (deprecated) and `artefacts_filter` are used in the same payload. The same is true for `exclude_images_filter` (deprecated) and `exclude_artefacts_filter`. `match` and `update_to` are still supported but will trigger an error if combined with `match_ref`.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The definition of the Automation Rule.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutomationRuleRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Automation Rule that was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRuleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableContent"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/rules/{ruleId}": {
      "get": {
        "tags": [
          "public",
          "AutomationRule"
        ],
        "operationId": "getAutomationRule",
        "summary": "Get a specific Automation Rule for an Environment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "The Automation Rule ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Automation Rule.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRuleResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "AutomationRule"
        ],
        "operationId": "updateAutomationRule",
        "summary": "Update an existing Automation Rule for an Environment.",
        "description": "Items marked as deprecated are still supported (however not recommended) for use and are incompatible with properties of the latest api version. In particular an error is raised if  `images_filter` (deprecated) and `artefacts_filter` are used in the same payload. The same is true for `exclude_images_filter` (deprecated) and `exclude_artefacts_filter`. `match` and `update_to` are still supported but will trigger an error if combined with `match_ref`.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "The Automation Rule ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The definition of the Automation Rule.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutomationRuleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Automation Rule.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationRuleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableContent"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "AutomationRule"
        ],
        "operationId": "deleteAutomationRule",
        "summary": "Delete Automation Rule from an Environment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          },
          {
            "name": "ruleId",
            "in": "path",
            "description": "The Automation Rule ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The Automation Rule was deleted."
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/deltas": {
      "get": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "List Deltas in an Application",
        "operationId": "listDeltas",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "archived",
            "in": "query",
            "description": "If true, return archived Deltas.\n\n",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "env",
            "in": "query",
            "description": "Only return Deltas associated with the specified Environment.\n\n",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Deployment Deltas.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DeltaResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Create a new Delta",
        "operationId": "createDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          }
        ],
        "requestBody": {
          "description": "A Deployment Delta to create.\n\nThe Deployment Delta will be added with the provided content of `modules` and the 'env_id' and 'name' properties of the 'metadata' property.\n\nNOTE: If the `id` property is specified, it will be ignored. A new ID will be generated and returned in the response.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeltaRequest"
              },
              "example": {
                "metadata": {
                  "env_id": "feature-test",
                  "name": "Updates for ticket # 2581"
                },
                "modules": {
                  "updates": {
                    "module-one": [
                      {
                        "op": "add",
                        "path": "/spec/containers/simple-service/variables/REDIS_URL",
                        "value": "redis://${modules.redis-cache.service.name}"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The requested Deployment Delta.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/components/schemas/DeltaResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/deltas/{deltaId}": {
      "get": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Fetch an existing Delta",
        "operationId": "getDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Delta to fetch.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Deployment Delta.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeltaResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Update an existing Delta",
        "operationId": "patchDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Delta to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "An array of Deltas.\n\nThe Deltas in the request are combined, meaning the current Delta is updated in turn by each Delta in the request. Once all Deltas have been combined, the resulting Delta is simplified.\n\n* All Modules in the `modules.add` property are replaced with the new Delta's values. If the value of a Module is `null`, and the ID is in the `modules.remove` list, it is removed from the `modules.remove` list.\n\n* All IDs listed in `modules.remove` are combined. Any ID in `modules.remove` and also in `modules.add` are removed from `modules.add`\n\n* The lists of JSON Patches in `modules.update` are concatenated or created in `modules.updates`.\n\nSimplification involves:\n\n* Applying any entries in `modules.updates` that have matching IDs in `modules.add` to the `modules.add` entry and removing the `modules.update` entry.\n\n* Reducing the number of JSON Patches in each `modules.update` entry to the smallest set that has the same effect.\n\n**Extension to JSON Patch**\n\nIf a JSON Patch entry needs to be removed, without side effects, the `value` of the `remove` action can be set to `{\"scope\": \"delta\"}. This will result in the remove action being used during simplification but be discarded before the Delta is finalized.\n\nIf the user making the request is not the user who created the Delta and they are not already on the contributors list, they will be added to the contributors list.\n\n_NOTE: If the `id` or `metadata` properties are specified, they will be ignored._",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/DeltaRequest"
                },
                "type": "array"
              },
              "example": [
                {
                  "modules": {
                    "updates": {
                      "module-one": [
                        {
                          "op": "add",
                          "path": "/spec/containers/simple-service/variables/REDIS_URL",
                          "value": "redis://${modules.redis-cache.service.name}"
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        },
        "responses": {
          "200": {
            "description": "The requested Deployment Delta.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeltaResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Update an existing Delta",
        "operationId": "putDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Delta to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "An array of Deltas.\n\nThe Deltas in the request are combined, meaning the current Delta is updated in turn by each Delta in the request. Once all Deltas have been combined, the resulting Delta is simplified.\n\n* All Modules in the `modules.add` property are replaced with the new Delta's values. If the value of a Module is `null`, and the ID is in the `modules.remove` list, it is removed from the `modules.remove` list.\n\n* All IDs listed in `modules.remove` are combined. Any ID in `modules.remove` and also in `modules.add` are removed from `modules.add`\n\n* The lists of JSON Patches in `modules.update` are concatenated or created in `modules.updates`.\n\nSimplification involves:\n\n* Applying any entries in `modules.updates` that have matching IDs in `modules.add` to the `modules.add` entry and removing the `modules.update` entry.\n\n* Reducing the number of JSON Patches in each `modules.update` entry to the smallest set that has the same effect.\n\n**Extension to JSON Patch**\n\nIf a JSON Patch entry needs to be removed, without side effects, the `value` of the `remove` action can be set to `{\"scope\": \"delta\"}. This will result in the remove action being used during simplification but be discarded before the Delta is finalized.\n\nIf the user making the request is not the user who created the Delta and they are not already on the contributors list, they will be added to the contributors list.\n\n_NOTE: If the `id` or `metadata` properties are specified, they will be ignored._",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeltaRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The requested Deployment Delta.\n\n"
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/archived": {
      "put": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Mark a Delta as \"archived\"",
        "operationId": "archiveDelta",
        "description": "Archived Deltas are still accessible but can no longer be updated.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Deployment Delta.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Either `true` or `false`.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "boolean"
              },
              "example": true
            }
          }
        },
        "responses": {
          "204": {
            "description": "Archived state successfully updated.\n\n"
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/env_id": {
      "put": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Change the Environment of a Delta",
        "operationId": "changeEnvOfDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Deployment Delta.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The new Environment ID. (NOTE: The string must still be JSON encoded.)\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentID"
              },
              "example": "new-env"
            }
          }
        },
        "responses": {
          "204": {
            "description": "Environment ID successfully updated.\n\n"
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/name": {
      "put": {
        "tags": [
          "public",
          "Delta"
        ],
        "summary": "Change the name of a Delta",
        "operationId": "changeNameOfDelta",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "deltaId",
            "in": "path",
            "description": "ID of the Deployment Delta.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The new name.(NOTE: The string must still be JSON encoded.)\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              },
              "example": "Update for ticket #s 2568 & 2572"
            }
          }
        },
        "responses": {
          "204": {
            "description": "Name successfully updated.\n\n"
          },
          "400": {
            "description": "The request was invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Delta with ID `deltaId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/sets": {
      "get": {
        "tags": [
          "public",
          "Set"
        ],
        "operationId": "listSets",
        "summary": "Get all Deployment Sets",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The Requested Deployment Set.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SetResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Set with ID `setId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/sets/{setId}": {
      "get": {
        "tags": [
          "public",
          "Set"
        ],
        "summary": "Get a Deployment Set",
        "operationId": "getSet",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "setId",
            "in": "path",
            "description": "ID of the Deployment Set.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "diff",
            "in": "query",
            "description": "ID of the Deployment Set to compared against.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Requested Deployment Set.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SetResponse"
                    },
                    {
                      "$ref": "#/components/schemas/PlainDeltaResponse"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Set with ID `setId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Set"
        ],
        "summary": "Apply a Deployment Delta to a Deployment Set",
        "operationId": "updateSet",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "setId",
            "in": "path",
            "description": "ID of the Deployment Set.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Delta to apply to the Set.\n\nNOTE: The `id` parameter is ignored if provided. The request body should be the full Delta.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeltaRequest"
              },
              "example": {
                "modules": {
                  "remove": [
                    "module-one"
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A Deployment Delta which if applied to the Set with ID `sourceSetId` gives the Set with ID `setId`.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Deployment Delta is incompatible with the Deployment Set specified by `setId`.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Set with ID `setId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/sets/{setId}/resources": {
      "get": {
        "tags": [
          "public",
          "Set"
        ],
        "summary": "Get Resource Inputs for the given Deployment Set",
        "operationId": "getSetResourceInputs",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "setId",
            "in": "path",
            "description": "ID of the Deployment Set.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resource Inputs of the requested Deployment Set.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceInputsResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Set with ID `setId` found in Application.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid resources in the Deployment Set",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/sets/{setId}/diff/{sourceSetId}": {
      "get": {
        "tags": [
          "public",
          "Set"
        ],
        "summary": "Get the difference between 2 Deployment Sets",
        "operationId": "getDiff",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "setId",
            "in": "path",
            "description": "ID of the Deployment Set.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceSetId",
            "in": "path",
            "description": "ID of the Deployment Set to diff against.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A Deployment Delta which if applied to the Set with ID `sourceSetId` gives the Set with ID `setId`.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainDeltaResponse"
                }
              }
            }
          },
          "404": {
            "description": "No Deployment Set with ID `setId` or `sourceSetId` found in Application.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/jobs": {
      "delete": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "Deletes all Jobs for the Application",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted successfully.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/webhooks": {
      "get": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "List Webhooks",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Webhooks.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "Create a new Webhook",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A created webhook.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "400": {
            "description": "Some of the values supplied are invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The supplied `id` clashes with an existing Job.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/webhooks/{jobId}": {
      "get": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "Get a Webhook",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The Webhook ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested webhook.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "404": {
            "description": "The requested webhook not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "Delete a Webhook",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The Webhook ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted successfully\n\n"
          },
          "404": {
            "description": "The requested webhook not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "Update a Webhook",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The Webhook ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated successfully, return the webhook\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookUpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The requested webhook not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/events": {
      "get": {
        "tags": [
          "public",
          "Event"
        ],
        "summary": "List Events",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Events.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EventResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/keys": {
      "post": {
        "tags": [
          "public",
          "PublicKeys"
        ],
        "operationId": "createPublicKey",
        "summary": "Associate a new RSA public key to an organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "A pcks8 RSA public key PEM encoded (as the ones produced by openssl), whose module length is greater or equal than 4096 bits. It should be provided as a single line. This might be accomplished through the usage of `awk` bash tool: `awk -v ORS='\\n' '1' public_key.pem`",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              },
              "example": "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo22jj/h+WPhL5M8RUyqC\\nEqRK3FOYD6KuDTyUHZL2QUX/q35bT1aGIOtu+22oM/8hTZ/6+BTknvF+Z+e7At8E\\n/I6/qNZilJFH/HqNHYflykceILVCFQM6v0ar6CSPh88DjwQPGLrh+UYp0NKBF6D5\\n2LEVQpxsM/0qV4fOZngRVI9UeKiYehk8aXJi20nI5Cj9GnV7BuEo7sKq7NewTOMN\\nwHqSnCtMV+E7SIgyy4+aKAFHOR0Y4FgJN14bAjE2GX/VUmAYBNtPgGwkCNDbA9v1\\nJJnFmdKflp8foqeWwC9UcUDLqjZzMT2a16pnL89iHV4fJ4vI6h26Jf2wUJbb7xE3\\nxJNhCR9Qf2IHx8TTVetIRl5I/ZUPkRrq5iskOIWV4+I+NzS+gbnCUv6sCO3cnZaa\\noZ4Wk5V+5qfctANeTn0TEAabYAJ/zFgYcs2IwYNqcN5eTss99zGNgtDL3oJr/A6g\\neGBgzad3p80qPMb1le64cHAAFZaerI2kcdnNpWGLXJ/J7IKF9uNfsrvi7Zdv8AXg\\nVAyqBARfzSkgnUKN6iWkWxAAzylKnQ3Etw81huaLwDG/6Lqd8I5OePMwHEZkollD\\nEBD16L/iyV9veru2zLVXkX/nL64YtZERLOWI5NUMaSurAR4N3ptFAsDRcO5Z4+Dq\\nO3pqszSh1aCyJvyl6cjQLT8CAwEAAQ==\\n-----END PUBLIC KEY-----\\n"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Public Key added successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKey"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      },
      "get": {
        "tags": [
          "public",
          "PublicKeys"
        ],
        "operationId": "listPublicKeys",
        "summary": "List all public keys associated to an organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fingerprint",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The fingerprint (the hexadecimal representation of the sha256 hash of the DER representation of the key) of the requested key. If a value is provided, the result will contain a single key, if any."
          }
        ],
        "responses": {
          "200": {
            "description": "A possible empty list of public keys associated to an organization, sorted descending by creation date.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicKey"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/keys/{keyId}": {
      "delete": {
        "tags": [
          "public",
          "PublicKeys"
        ],
        "operationId": "deletePublicKey",
        "summary": "Delete a public key associated to an organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyId",
            "in": "path",
            "description": "The public key ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Public Key successfully removed."
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "get": {
        "tags": [
          "public",
          "PublicKeys"
        ],
        "operationId": "getPublicKey",
        "summary": "Retrieve a single public key associated to an organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyId",
            "in": "path",
            "description": "The public key ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A public key associated to an organization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKey"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/humanitec-keys": {
      "get": {
        "tags": [
          "public",
          "HumanitecPublicKeys"
        ],
        "operationId": "listHumanitecPublicKeys",
        "summary": "List all the public keys Humanitec shares with an organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "If set to true, the response includes only the active key, if set to false only non-active keys, otherwise both active and non-active keys."
          }
        ],
        "responses": {
          "200": {
            "description": "A possible empty list of public keys which Humanitec shares with an organization, sorted by the active value and descending by creation date.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/HumanitecPublicKey"
                  },
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/logs": {
      "get": {
        "tags": [
          "public",
          "Logs"
        ],
        "summary": "Get container log entries for the environment",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workload_id",
            "in": "query",
            "description": "filter by workload ID\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "container_id",
            "in": "query",
            "description": "filter by container ID\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deployment_id",
            "in": "query",
            "description": "filter by deployment ID\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timestamp_from",
            "in": "query",
            "description": "filter by min time, RFC 3339 format, e.g. \"2021-10-02T15:01:23.045Z\"\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timestamp_to",
            "in": "query",
            "description": "filter by max time, RFC 3330 format, e.g. \"2021-10-02T15:01:23.045Z\"\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "limit log entries returned\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asc",
            "in": "query",
            "description": "if true request results in ascending order, default order is descending\n\n",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "invert",
            "in": "query",
            "description": "if true reverse the order of the log entries in the output\n\n",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of log entries returned.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputEntryResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid.\n\n"
          },
          "404": {
            "description": "The environment is not found.\n\n"
          },
          "429": {
            "description": "Too Many Requests.\n\n"
          }
        }
      }
    },
    "/orgs": {
      "get": {
        "tags": [
          "public",
          "Organization"
        ],
        "summary": "List active organizations the user has access to.",
        "operationId": "listOrganizations",
        "responses": {
          "200": {
            "description": "A list of available organizations (based on the current user access level).\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OrganizationResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          }
        }
      }
    },
    "/orgs/{orgId}": {
      "get": {
        "tags": [
          "public",
          "Organization"
        ],
        "summary": "Get the specified Organization.",
        "operationId": "getOrganization",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns organization details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          }
        }
      }
    },
    "/orgs/{orgId}/pipelines": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "listPipelinesInOrg",
        "summary": "List all Pipelines within an Organization. This can be filtered by Application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byAppIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          },
          {
            "$ref": "#/components/parameters/byTriggerTypeQueryParam"
          },
          {
            "$ref": "#/components/parameters/byMetadata"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Pipeline"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "listPipelines",
        "summary": "List Pipelines within an Application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          },
          {
            "$ref": "#/components/parameters/byTriggerTypeQueryParam"
          },
          {
            "$ref": "#/components/parameters/byMetadata"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Pipeline"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "createPipeline",
        "summary": "Create a Pipeline within an Application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Optionally validate the request but do not persist the actual Pipeline.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-yaml": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful creation response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            }
          },
          "204": {
            "description": "The request was valid, but no Pipeline was created."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "getPipeline",
        "summary": "Get a Pipeline within an Application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byVersionQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "updatePipeline",
        "summary": "update a Pipeline within an Application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/ifMatchHeaderParam"
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Optionally validate the request but do not persist the update.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-yaml": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful get response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pipeline"
                }
              }
            }
          },
          "204": {
            "description": "The request was valid, but no Pipeline was updated."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "412": {
            "$ref": "#/components/responses/412PreconditionFailed"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "deletePipeline",
        "summary": "Delete a pipeline within an application.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/ifMatchHeaderParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Pipeline has been successfully deleted"
          },
          "202": {
            "description": "Request for pipeline deletion successfully committed"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "412": {
            "$ref": "#/components/responses/412PreconditionFailed"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/versions": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "listPipelineVersions",
        "summary": "List all versions of the pipeline",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineVersion"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/schema": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "getPipelineDefinition",
        "summary": "Get a pipeline schema.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byVersionQueryParam"
          },
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get response.",
            "content": {
              "application/x.humanitec-pipelines-v1.0+yaml": {
                "schema": {
                  "type": "object"
                }
              },
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipeline-criteria": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "listPipelineCriteriaInApp",
        "summary": "List the trigger matching criteria defined for Pipelines in this Application.",
        "description": "Lists the trigger matching criteria defined for Pipelines in this Application. Trigger matching criteria link requests in an environment to the appropriate Pipeline based on the trigger and inputs.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "pipeline",
            "description": "An optional filter by Pipeline ID.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "sample-pipeline"
            }
          },
          {
            "name": "match",
            "description": "Optional key value match filters on the criteria.",
            "in": "query",
            "explode": true,
            "style": "deepObject",
            "required": false,
            "example": {
              "env_type": "development"
            },
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineCriteria"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/criteria": {
      "post": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "createPipelineCriteria",
        "summary": "Create a new trigger matching criteria for this Pipeline.",
        "description": "Create a new trigger matching criteria for this Pipeline. This must not conflict with an existing criteria for the same trigger on this or any other Pipeline that applies to this Application.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PipelineCriteriaCreateBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The criteria was successfully added.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineCriteria"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/criteria/{criteriaId}": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "getPipelineCriteria",
        "summary": "Get the Pipeline Criteria with the given id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "name": "criteriaId",
            "in": "path",
            "description": "The Criteria ID",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineCriteria"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "deletePipelineCriteria",
        "summary": "Delete the Pipeline Criteria with the given id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "name": "criteriaId",
            "in": "path",
            "description": "The Criteria ID",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the criteria."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/pipeline-schemas/latest": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "getLatestPipelineDefinitionSchema",
        "summary": "Gets the latest pipeline schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/pipeline-runs": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "listPipelineRunsByOrg",
        "summary": "List all pipeline runs within the Org ordered newest to oldest. This can be filtered by app, pipeline, and status.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byAppIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byPipelineIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byEnvIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byStatusQueryParam"
          },
          {
            "$ref": "#/components/parameters/byCompletedQueryParam"
          },
          {
            "$ref": "#/components/parameters/byCreatedAfterParam"
          },
          {
            "$ref": "#/components/parameters/byCreatedBeforeParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineRun"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipeline-runs": {
      "post": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "createPipelineRunByTriggerCriteria",
        "summary": "Create a Pipeline Run in the appropriate Pipeline based on the trigger and inputs.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/idempotencyKey"
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Optionally validate the request but do not persist the actual Pipeline Run.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PipelineRunCreateByTriggerCriteriaBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful creation response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineRun"
                }
              }
            }
          },
          "204": {
            "description": "The request was valid and matched a Pipeline, but not Pipeline Run was persisted."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableContent"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "listPipelineRuns",
        "summary": "List runs within a pipeline ordered newest to oldest.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byEnvIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byStatusQueryParam"
          },
          {
            "$ref": "#/components/parameters/byCompletedQueryParam"
          },
          {
            "$ref": "#/components/parameters/byCreatedAfterParam"
          },
          {
            "$ref": "#/components/parameters/byCreatedBeforeParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response. If the Link header is present, more data may be available.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineRun"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "createPipelineRun",
        "summary": "Create a run within a pipeline.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/idempotencyKey"
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Optionally validate the request but do not persist the actual Pipeline Run.",
            "example": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PipelineRunCreateBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful creation response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineRun"
                }
              }
            }
          },
          "204": {
            "description": "The request was valid, but no Pipeline Run was created."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableContent"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "getPipelineRun",
        "summary": "Get a run within an pipeline.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineRun"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "deletePipelineRun",
        "summary": "Deleting a completed Run within a Pipeline.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/ifMatchHeaderParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the Run."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "412": {
            "$ref": "#/components/responses/412PreconditionFailed"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/cancel": {
      "post": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "cancelPipelineRun",
        "summary": "Cancel a Run within an Pipeline.",
        "description": "Attempts to cancel the specified Run. If the Run is in a queued state, this cancellation will be applied\nimmediately. If the Run is executing, the cancellation will be stored and will be resolved by the next\nJob or Step that supports in-flight cancellation. Runs that are in any other state, are not cancellable.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/ifMatchHeaderParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful cancellation or the Run was already cancelled."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "412": {
            "$ref": "#/components/responses/412PreconditionFailed"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/restart": {
      "post": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "restartPipelineRun",
        "summary": "Restart a Run within an Pipeline by cloning it with the same trigger and inputs.",
        "description": "Attempts to copy and restart the specified Run. The run must be in a completed state.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/idempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Successful restart response.",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineRun"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableContent"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "listPipelineJobs",
        "summary": "List the details of the jobs within a pipeline run.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/byStatusQueryParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineJobPartial"
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "getPipelineJob",
        "summary": "List the details of a Job including Step information",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/jobIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineJob"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/steps/{stepIndex}/logs": {
      "get": {
        "tags": [
          "public",
          "PipelineRuns"
        ],
        "operationId": "listPipelineStepLogs",
        "summary": "Get a page of log output for a given step within a job.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/jobIdPathParam"
          },
          {
            "$ref": "#/components/parameters/stepIndexPathParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "headers": {
              "Etag": {
                "$ref": "#/components/headers/Etag"
              },
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineStepLog"
                  }
                }
              }
            }
          },
          "307": {
            "$ref": "#/components/responses/307TemporaryRedirect"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/approvals": {
      "get": {
        "tags": [
          "public",
          "PipelineApprovals"
        ],
        "operationId": "listPipelineApprovalRequests",
        "summary": "List of the approval requests",
        "description": "List of the approval requests with in an app.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          },
          {
            "$ref": "#/components/parameters/byPipelineIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byRunIdQueryParam"
          },
          {
            "$ref": "#/components/parameters/byApprovalStatusQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful list response.",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineApprovalRequest"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId}": {
      "get": {
        "tags": [
          "public",
          "PipelineApprovals"
        ],
        "operationId": "getPipelineApprovalRequest",
        "summary": "Get an approval request",
        "description": "Get an approval request.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/jobIdPathParam"
          },
          {
            "$ref": "#/components/parameters/approvalIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get approval request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineApprovalRequest"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId}/approve": {
      "post": {
        "tags": [
          "public",
          "PipelineApprovals"
        ],
        "operationId": "approvePipelineApprovalRequest",
        "summary": "Approve the approval request",
        "description": "Approve the approval requested.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/jobIdPathParam"
          },
          {
            "$ref": "#/components/parameters/approvalIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully approved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineApprovalRequest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId}/deny": {
      "post": {
        "tags": [
          "public",
          "PipelineApprovals"
        ],
        "operationId": "denyPipelineApprovalRequest",
        "summary": "Deny the approval request",
        "description": "Deny the approval requested.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/runIdPathParam"
          },
          {
            "$ref": "#/components/parameters/jobIdPathParam"
          },
          {
            "$ref": "#/components/parameters/approvalIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully denied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PipelineApprovalRequest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/batches/{batchType}": {
      "get": {
        "tags": [
          "public",
          "Pipelines"
        ],
        "operationId": "GetBatch",
        "summary": "Read the current state of a trigger batch",
        "description": "Read the current state of a trigger batch for a Pipeline if one exists",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/pipelineIdPathParam"
          },
          {
            "$ref": "#/components/parameters/batchTypeParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful get batch request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Batch"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/registries": {
      "get": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Lists available registries for the organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A Possibly empty list of Registries.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RegistryResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Request parameters are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' does not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Creates a new registry record.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "A new record details.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistryRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A newly created record details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request parameters or payload are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication token is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' does not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "409": {
            "description": "The record with the same ID or name (prefix) already exists within the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/registries/{regId}": {
      "get": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Loads a registry record details.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regId",
            "in": "path",
            "description": "Unique (alpha-numerical) registry identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A registry details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request parameters are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' or 'regId' do not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Deletes an existing registry record and all associated credentials and secrets.",
        "description": "_Deletions are currently irreversible._",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regId",
            "in": "path",
            "description": "Unique (alpha-numerical) registry identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted successfully.\n\n"
          },
          "400": {
            "description": "Request parameters are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "403": {
            "description": "Built-in 'humanitec' registry can't be deleted.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' or 'regId' do not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Updates (patches) an existing registry record.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regId",
            "in": "path",
            "description": "Unique (alpha-numerical) registry identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Record details to update.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated record details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request parameters or payload are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "403": {
            "description": "Built-in 'humanitec' registry can't be changed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' or 'regId' do not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "409": {
            "description": "The record with the same name (prefix) already exists within the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/registries/{regId}/creds": {
      "get": {
        "tags": [
          "public",
          "Registry"
        ],
        "summary": "Returns current account credentials or secret details for the registry.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "Unique (alpha-numerical) organization identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regId",
            "in": "path",
            "description": "Unique (alpha-numerical) registry identifier.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current account credentials or secret details for the registry.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryCredsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request parameters are incomplete or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication token is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Specified 'orgId' or 'regId' do not match any record.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources": {
      "get": {
        "tags": [
          "public",
          "ActiveResource"
        ],
        "summary": "List Active Resources provisioned in an environment.",
        "operationId": "listActiveResources",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scheduled_deletion",
            "in": "query",
            "description": "If set to `true` or `false`, filters resources scheduled or not scheduled for deletion correspondingly.\n",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Active Resources.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ActiveResourceResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graph": {
      "post": {
        "tags": [
          "public",
          "ResourceProvision"
        ],
        "summary": "Lists the resource objects that hold the information needed to provision the resources specified in the request and the resources they depend on.",
        "description": "This endpoint is deprecated. Use `/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graphs` instead.",
        "operationId": "queryResourceGraph",
        "deprecated": true,
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Resources to provision.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/ResourceProvisionRequestRequest"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A list of objects which hold information to provision resources, sorted according to resources provisioning order.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/NodeBodyResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Request payload is not provided or is malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graphs": {
      "post": {
        "tags": [
          "public",
          "ResourceProvision"
        ],
        "summary": "Create a Dependency Graph which is composed by the resource objects that hold the information needed to provision the resources specified in the request and the resources they depend on.",
        "operationId": "createDependencyGraph",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "requestBody": {
          "description": "Resources to provision.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/ResourceProvisionRequestRequest"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A Dependency Graph which contains a list of objects which hold information to provision resources, sorted according to resources provisioning order.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DependencyGraphResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request payload is not provided or is malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graphs/{graphId}": {
      "get": {
        "tags": [
          "public",
          "ResourceProvision"
        ],
        "summary": "Retrieve a Dependency Graph by its ID.",
        "operationId": "getDependencyGraph",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          },
          {
            "$ref": "#/components/parameters/graphIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A Dependency Graph which contains a list of objects which hold information to provision resources, sorted according to resources provisioning order.  \n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DependencyGraphResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Dependency Graph with the supplied id does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/{type}/{resId}": {
      "delete": {
        "tags": [
          "public",
          "ActiveResource"
        ],
        "summary": "Delete Active Resource.",
        "operationId": "deleteActiveResource",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The Resource Type, may include a resource class: {type}.{class}.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resId",
            "in": "path",
            "description": "The Resource ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detach",
            "in": "query",
            "description": "If set to `true`, will detach an active resource. The resource continues to exist and is not deleted, but it is no longer connected to the Platform Orchestrator. \nDetaching can be done for any active resource. In case that the resource is an active one (i.e. not marked to be deleted), it would stay in use until the next deployment.\nDetaching active resources can cause inconsistent status (e.g. detaching a k8s-cluster might make it impossible to retrieve runtime information by or un-pause an environment)\nIf the resource has been provisioned via the Humanitec Operator, this does not delete the resource CR in the cluster. This must be done manually.\n",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The resource has successfully been marked for deletion.\n\n"
          },
          "204": {
            "description": "The resource deleted.\n\n"
          },
          "400": {
            "description": "The driver associated to the request resource could not be found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The requested resource could not be found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict when deleting resource.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/resources/{type}/{resId}/actions/pin": {
      "post": {
        "tags": [
          "public",
          "ActiveResource"
        ],
        "summary": "Pin Active Resource to a target Resource Definition Version.",
        "operationId": "pinActiveResource",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          },
          {
            "$ref": "#/components/parameters/resourceTypePathParam"
          },
          {
            "$ref": "#/components/parameters/resourceIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActiveResourceTargetDefinitionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Active Resource.  \n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveResourceResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The requested resource could not be found.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/account-types": {
      "get": {
        "tags": [
          "public",
          "AccountType"
        ],
        "summary": "List Resource Account Types available to the organization.",
        "operationId": "listResourceAccountTypes",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Resources Accounts Types.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccountTypeResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/accounts": {
      "get": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "List Resource Accounts in the organization.",
        "operationId": "listResourceAccounts",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Resources Accounts.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceAccountResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "Create a new Resource Account in the organization.",
        "operationId": "createResourceAccount",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Validate the request but do not persist the change.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "check_credential",
            "in": "query",
            "description": "Validate that the Account credential authenticates successfully.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateResourceAccountRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly created Resources Account details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceAccountResponse"
                }
              }
            }
          },
          "204": {
            "description": "The Resource Account details are valid but were not persisted because dry-run is enabled."
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication token is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Resources Account already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/accounts/{accId}": {
      "get": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "Get a Resource Account.",
        "operationId": "getResourceAccount",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accId",
            "in": "path",
            "description": "The Resource Account ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Resources Account.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceAccountResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Account with the 'accId' ID is not found or does not belong to the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "Delete an unused Resource Account.",
        "description": "A Resource Account can be deleted if it is not referenced or referenced only by deleted Resource Definitions.\nResource Definition Versions which reference the deleted Resource Account cannot be used in deployments.\n",
        "operationId": "deleteResourceAccount",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accId",
            "in": "path",
            "description": "The Resource Account ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The account was successfully deleted.\n\n"
          },
          "400": {
            "description": "The Resource Account cannot be deleted as at least one non-deleted Resource Definition or one Active Resource still referencing it.\nIn the error the coordinates of the referencing resources are provided.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictingResourcesErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Account with the 'accId' ID is not found or does not belong to the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "Update a Resource Account.",
        "operationId": "patchResourceAccount",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accId",
            "in": "path",
            "description": "The Resource Account ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dry_run",
            "in": "query",
            "description": "Validate the request but do not persist the change.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "check_credential",
            "in": "query",
            "description": "Validate that the Account credential authenticates successfully.",
            "example": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResourceAccountRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resource Account details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceAccountResponse"
                }
              }
            }
          },
          "204": {
            "description": "The Resource Account details are valid but were not persisted because dry-run is enabled."
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Account with the 'accId' ID is not found or does not belong to the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/accounts/{accId}/actions/check": {
      "post": {
        "tags": [
          "public",
          "ResourceAccount"
        ],
        "summary": "Check the credentials of an existing Resource Account",
        "description": "Check the validity of a Resource Account and return any problems that may cause it to not work as expected.",
        "operationId": "checkResourceAccount",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accId",
            "in": "path",
            "description": "The Resource Account ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated Account Type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckResourceAccountData"
                }
              }
            }
          },
          "400": {
            "description": "The Resource Account is not valid or could not be validated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs": {
      "get": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "List Resource Definitions.",
        "operationId": "listResourceDefinitions",
        "description": "Filter criteria can be applied to obtain all the resource definitions that could match the filters, grouped by type and sorted by matching rank. Resources marked as deleted are not listed in the response, unless specified via `deleted` query parameter.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "app",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Application.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Environment.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env_type",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Environment Type.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "res",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Resource.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "res_type",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Resource Type.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "class",
            "in": "query",
            "description": "(Optional) Filter Resource Definitions that may match a specific Class.\n\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "If returns also resource definitions which has been deleted.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Resources Definitions.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceDefinitionResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "Create a new Resource Definition.",
        "operationId": "createResourceDefinition",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Resource Definition details.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateResourceDefinitionRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly created Resources Definition details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceDefinitionResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Resources Definition already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}": {
      "get": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "Get a Resource Definition.",
        "description": "If the resource is marked as deleted it is not shown in the response, unless specified via `deleted` query parameter.",
        "operationId": "getResourceDefinition",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "If returns the resource definition even if it has been deleted.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Resources Definition details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceDefinitionResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Definition with the 'defId' ID is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "Update a Resource Definition.",
        "operationId": "updateResourceDefinition",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Resource Definition record details.\n\nThe PUT operation updates a resource definition using the provided payload. An empty driver_account or driver_inputs property will unset the existing values.\n\nIf driver_type changes and an Active Resource which uses this Resource Definition exists, the resource provisioned with the previous used driver_type will be deleted.\nAs driver_type can't be empty, an empty driver_type means existing value will be used.\n\nCurrently the resource can't be changed.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResourceDefinitionRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resource Definition.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceDefinitionResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Definition with the 'defId' ID is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "Delete a Resource Definition.",
        "operationId": "deleteResourceDefinition",
        "description": "If there **are no** Active Resources provisioned via the current definition, the Resource Definition is deleted immediately.\n\nIf there **are** Active Resources provisioned via the current definition, the request fails. The response will describe the changes to the affected Active Resources if operation is forced.\n\nThe request can take an optional `force` query parameter. If set to `true`, the current Resource Definition is deleted immediately even if there are Active Resources linked to it.  \nThe Resource Definition that has been marked for deletion cannot be used to provision new resources.\n\nWith the next deployment, matching criteria for Resources will be re-evaluated, and current Active Resources for the target environment would be either linked to another matching Resource Definition or decommissioned and created using the new or default Resource Definition (when available).",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force",
            "in": "query",
            "description": "If set to `true`, will mark the Resource Definition for deletion, even if it affects existing Active Resources.\n\n",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Resource Definition has been marked as deleted.\n\n"
          },
          "404": {
            "description": "A Resource Driver with the 'driverId' ID is not found or is not accessible by the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "List of Active Resources that still reference this Resource Definition.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceDefinitionChangeResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "ResourceDefinition"
        ],
        "summary": "Update a Resource Definition.",
        "operationId": "patchResourceDefinition",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Resource Definition record details.\n\nThe PATCH operation would change the value of the property if it is included in the request payload JSON, and not `null`. Missing and `null` properties are ignored.\n\nFor the map properties, such as PatchResourceDefinitionRequest.DriverInputs, the merge operation is applied.\n\nMerge rules are as follows:\n\n- If a map property has a value, it is replaced (or added).\n\n- If a map property is set to `null`, it is removed.\n\n- If a map property is not included (missing in JSON), it remains unchanged.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchResourceDefinitionRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resource Definition.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceDefinitionResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Definition with the 'defId' ID is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/versions": {
      "get": {
        "tags": [
          "public",
          "ResourceDefinitionVersion"
        ],
        "summary": "Get Versions of a Resource Definition.",
        "description": "First 50 Versions are kept along with all the Versions referenced by an Active Resource.\n\n To obtain Versions of a deleted Resource Definition, the `deleted` parameter needs to be used.",
        "operationId": "listResourceDefinitionVersions",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defIdPathParam"
          },
          {
            "$ref": "#/components/parameters/deletedQueryParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A list or Resource Definition Version.\n",
            "headers": {
              "Link": {
                "schema": {
                  "type": "string"
                },
                "description": "A list of request links, optionally including a \"next\" page link for pagination."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResourceDefinitionVersion"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId}": {
      "get": {
        "tags": [
          "public",
          "ResourceDefinitionVersion"
        ],
        "summary": "Get a Resource Definition Version.",
        "operationId": "getResourceDefinitionVersion",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defVersionIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The Resource Definition Version with the specified ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceDefinitionVersion"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition Version is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId}/actions/archive": {
      "post": {
        "tags": [
          "public",
          "ResourceDefinitionVersion"
        ],
        "summary": "Mark/unmark the Resource Definition Version as archived.",
        "operationId": "archiveResourceDefinitionVersion",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defVersionIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchiveDefinitionVersionRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The Resource Definition Version's archived status changed."
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition Version is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId}/actions/promote": {
      "post": {
        "tags": [
          "public",
          "ResourceDefinitionVersion"
        ],
        "summary": "Promote the Resource Definition Version as active.",
        "operationId": "promoteResourceDefinitionVersion",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defIdPathParam"
          },
          {
            "$ref": "#/components/parameters/defVersionIdPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "The Resource Definition Version became active."
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition Version is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/criteria": {
      "put": {
        "tags": [
          "public",
          "ResourceDefinition",
          "MatchingCriteria"
        ],
        "summary": "Update all Matching Criteria of a Resource Definition.",
        "operationId": "updateResourceDefinitionCriteria",
        "description": "Matching Criteria are combined with Resource Type to select a specific definition. Matching Criteria can be set for any combination of Application ID, Environment ID, Environment Type, and Resource ID. In the event of multiple matches, the most specific match is chosen.\n\nFor example, given 3 sets of matching criteria for the same type:\n\n```\n 1. {\"env_type\":\"test\"}\n 2. {\"env_type\":\"development\"}\n 3. {\"env_type\":\"test\", \"app_id\":\"my-app\"}\n```\n\nIf, a resource of that type was needed in an Application `my-app`, Environment `qa-team` with Type `test` and Resource ID `modules.my-module-externals.my-resource`, there would be two resource definitions matching the criteria: #1 & #3. Definition #3 will be chosen because its matching criteria is the most specific.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Matching Criteria rules.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/MatchingCriteriaRuleRequest"
                },
                "type": "array"
              },
              "example": [
                {
                  "env_id": "production"
                }
              ]
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly added Matching Criteria details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MatchingCriteriaResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Matching Criteria already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "ResourceDefinition",
          "MatchingCriteria"
        ],
        "summary": "Add a new Matching Criteria to a Resource Definition.",
        "operationId": "createResourceDefinitionCriteria",
        "description": "Matching Criteria are combined with Resource Type to select a specific definition. Matching Criteria can be set for any combination of Application ID, Environment ID, Environment Type, and Resource ID. In the event of multiple matches, the most specific match is chosen.\n\nFor example, given 3 sets of matching criteria for the same type:\n\n```\n 1. {\"env_type\":\"test\"}\n 2. {\"env_type\":\"development\"}\n 3. {\"env_type\":\"test\", \"app_id\":\"my-app\"}\n```\n\nIf, a resource of that type was needed in an Application `my-app`, Environment `qa-team` with Type `test` and Resource ID `modules.my-module-externals.my-resource`, there would be two resource definitions matching the criteria: #1 & #3. Definition #3 will be chosen because its matching criteria is the most specific.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Matching Criteria rules.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCriteriaRuleRequest"
              },
              "example": {
                "env_id": "production"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly added Matching Criteria details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchingCriteriaResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "The Resource Definition is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Matching Criteria already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/criteria/{criteriaId}": {
      "delete": {
        "tags": [
          "public",
          "ResourceDefinition",
          "MatchingCriteria"
        ],
        "summary": "Delete a Matching Criteria from a Resource Definition.",
        "operationId": "deleteResourceDefinitionCriteria",
        "description": "If there **are no** Active Resources that would match to a different Resource Definition when the current Matching Criteria is deleted, the Matching Criteria is deleted immediately.\n\nIf there **are** Active Resources that would match to a different Resource Definition, the request fails with HTTP status code 409 (Conflict). The response content will list all of affected Active Resources and their new matches.\n\nThe request can take an optional `force` query parameter. If set to `true`, the Matching Criteria is deleted immediately. Referenced Active Resources would match to a different Resource Definition during the next deployment in the target environment.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "criteriaId",
            "in": "path",
            "description": "The Matching Criteria ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force",
            "in": "query",
            "description": "If set to `true`, the Matching Criteria is deleted immediately, even if this action affects existing Active Resources.\n\n",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted.\n\n"
          },
          "404": {
            "description": "The Resource Definition is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "One or more Active Resources reference the Resource Definition through this Matching Criteria.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceDefinitionChangeResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/defs/{defId}/resources": {
      "get": {
        "tags": [
          "public",
          "ResourceDefinition",
          "ActiveResource"
        ],
        "summary": "List Active Resources provisioned via a specific Resource Definition.",
        "operationId": "listActiveResourceByDefinition",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defId",
            "in": "path",
            "description": "The Resource Definition ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Active Resources.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ActiveResourceResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/drivers": {
      "get": {
        "tags": [
          "public",
          "DriverDefinition"
        ],
        "summary": "List Resource Drivers.",
        "operationId": "listResourceDrivers",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Resources Drivers.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DriverDefinitionResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "DriverDefinition"
        ],
        "summary": "Register a new Resource Driver.",
        "operationId": "createResourceDriver",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Resources Driver details.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDriverRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly registered Resources Driver details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDefinitionResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Resources Driver already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/drivers/{driverId}": {
      "get": {
        "tags": [
          "public",
          "DriverDefinition"
        ],
        "summary": "Get a Resource Driver.",
        "operationId": "getResourceDriver",
        "description": "# Only drivers that belongs to the given organization or registered as `public` are accessible through this endpoint",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "driverId",
            "in": "path",
            "description": "The Resource Driver ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Resources Driver details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDefinitionResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Driver with the 'driverId' ID is not found or is not accessible by the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "DriverDefinition"
        ],
        "summary": "Update a Resource Driver.",
        "operationId": "updateResourceDriver",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "driverId",
            "in": "path",
            "description": "The Resource Driver ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDriverRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resources Driver details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDefinitionResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resources Driver with the 'driverId' ID is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "DriverDefinition"
        ],
        "summary": "Delete a Resources Driver.",
        "operationId": "deleteResourceDriver",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "driverId",
            "in": "path",
            "description": "The Resources Driver ID to delete.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted.\n"
          },
          "409": {
            "description": "Resource driver is used by some active resources.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/types": {
      "get": {
        "tags": [
          "public",
          "ResourceType"
        ],
        "summary": "List Resource Types.",
        "operationId": "listResourceTypes",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Resources Types.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceTypeResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "ResourceType"
        ],
        "summary": "Creates a new Resources Type.",
        "operationId": "createResourceType",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResourceTypeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly created Resources Type details.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceTypeResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "This operation is forbidden.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A Resources Type already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/types/{typeId}": {
      "delete": {
        "tags": [
          "public",
          "ResourceType"
        ],
        "summary": "Delete a Resource Type.",
        "operationId": "deleteResourceType",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The Resource Type id. The type id should be provided as url encoded string.\n",
            "example": "my-org%2Fmy-type",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Record deleted.\n\n"
          },
          "400": {
            "description": "Some resources is related to the Resource Type with 'typeId' as id.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "This operation is forbidden.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Type with the 'typeId' id is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "ResourceType"
        ],
        "summary": "Update a Resource Type.",
        "operationId": "patchResourceType",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The Resource Type id. The type id should be provided as url encoded string.\n",
            "example": "my-org%2Fmy-type",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Resource Type record details.\n\nThe PATCH operation would change the value of the property if it is included in the request payload JSON, and not `null`. Missing and `null` properties are ignored.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchResourceTypeRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resource Type.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceTypeResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "This operation is forbidden.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Type with the 'typeId' id is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "ResourceType"
        ],
        "summary": "Update a Resource Type.",
        "operationId": "updateResourceType",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The Resource Type id. The type id should be provided as url encoded string.\n",
            "example": "my-org%2Fmy-type",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Resource Type record details.\n\nThe PUT operation updates a resource type using the provided payload. An empty inputs_schema or outputs_schema property will unset the existing values.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResourceTypeRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Resource Type.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceTypeResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "This operation is forbidden.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "A Resource Type with the 'typeId' id is not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal application error.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/classes": {
      "get": {
        "tags": [
          "public",
          "ResourceClass"
        ],
        "summary": "List resource classes.",
        "operationId": "listResourceClasses",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of resources classes.\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ResourceClassResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/types/{typeId}/classes": {
      "post": {
        "tags": [
          "public",
          "ResourceClass"
        ],
        "summary": "Creates a new resources class.",
        "operationId": "createResourceClass",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The resource type.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResourceClassRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The newly created resources class details.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceClassResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request parameters is missing or invalid.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "A resources class of this ID already exists in this resource type.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/resources/types/{typeId}/classes/{classId}": {
      "get": {
        "tags": [
          "public",
          "ResourceClass"
        ],
        "summary": "Get resource class by ID.",
        "operationId": "getResourceClass",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The resource type.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "classId",
            "in": "path",
            "description": "The resource class ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Requested resource class details\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceClassResponse"
                }
              }
            }
          },
          "404": {
            "description": "A resource class with the 'classId' id is not found in resource type typeId.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "ResourceClass"
        ],
        "summary": "Update a resource class description.",
        "operationId": "updateResourceClass",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The resource type ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "classId",
            "in": "path",
            "description": "The resource class ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResourceClassRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated resource class.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceClassResponse"
                }
              }
            }
          },
          "404": {
            "description": "A resource class with the 'classId' id is not found in resource type 'typeId'.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "ResourceClass"
        ],
        "summary": "Delete a resource class.",
        "operationId": "deleteResourceClass",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The organization ID.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "typeId",
            "in": "path",
            "description": "The resource type.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          },
          {
            "name": "classId",
            "in": "path",
            "description": "The resource class id.\n",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Resource class deleted successfully.\n"
          },
          "404": {
            "description": "A resource class with the 'classId' id is not found in resource type 'typeId'.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/runtime": {
      "get": {
        "tags": [
          "public",
          "RuntimeInfo"
        ],
        "operationId": "getRuntime",
        "summary": "Get Runtime information about the environment.",
        "description": "Runtime info are fetched from the cluster provisioned by the Orchestrator with Resource Id `k8s-cluster-runtime`. If no cluster with that id is found, the system fetches information from a cluster provisioned with the default Resource Id  `k8s-cluster`.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Runtime info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeInfoResponseV1"
                }
              },
              "application/v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeInfoResponseV2"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/runtime/paused": {
      "put": {
        "tags": [
          "public",
          "EnvironmentPausedInfo"
        ],
        "operationId": "updatePaused",
        "summary": "Pause / Resume an environment.",
        "description": "On pause requests, all the Kubernetes Deployment resources are scaled down to 0 replicas. On resume requests, all the Kubernetes Deployment resources are scaled up to the number of replicas running before the environment was paused. When an environment is paused, it is not possible to:```\n  - Deploy the environment within Humanitec.\n  - Scale the number of replicas running of any workload.\n```",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "requestBody": {
          "description": "If the value is `true` the request is to pause an environment, if it is `false` is to resume an environment.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "boolean"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Success."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/runtime/replicas": {
      "patch": {
        "tags": [
          "public",
          "Replicas"
        ],
        "operationId": "patchReplicas",
        "summary": "Set number of replicas for an environment's modules.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envIdPathParam"
          }
        ],
        "requestBody": {
          "description": "map of replicas by modules.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Success."
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/runtime": {
      "get": {
        "tags": [
          "public",
          "RuntimeInfo"
        ],
        "operationId": "listRuntime",
        "summary": "Get Runtime information about specific multiple environments.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "name": "id",
            "in": "query",
            "description": "Filter environments by ID (required). Up to 5 ids can be supplied per request.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of the RuntimeInfo of the environments specified by the id parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentRuntimeInfoResponse"
                  },
                  "type": "array"
                },
                "example": [
                  {
                    "id": "development",
                    "paused": true,
                    "status": "Success"
                  },
                  {
                    "id": "staging",
                    "paused": false,
                    "status": "Warning"
                  },
                  {
                    "error": "Environment my-org/my-app/not-existing-env does not exist",
                    "id": "not-existing-env",
                    "paused": false
                  }
                ]
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          }
        }
      }
    },
    "/orgs/{orgId}/runtime/actions/check-connectivity": {
      "post": {
        "tags": [
          "public",
          "RuntimeInfo"
        ],
        "operationId": "checkClusterConnectivity",
        "summary": "Provision and check the cluster connectivity in an environment",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "description": "Parameters required to start a cluster provisioning and connection check.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClusterConnectionCheckRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The cluster connectivity test returned a result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClusterConnectionCheckResult"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/secretstores": {
      "get": {
        "tags": [
          "public",
          "SecretStore"
        ],
        "summary": "Get list of Secret Stores for the given organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of Secret Stores.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SecretStoreResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "SecretStore"
        ],
        "summary": "Create a Secret Store for the given organization.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Secret Store data.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSecretStorePayloadRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Secret Store successfully added.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretStoreResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request body parameters are either missing, invalid, or the requested payload is not provided or is malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Request unauthorised.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/secretstores/{storeId}": {
      "get": {
        "tags": [
          "public",
          "SecretStore"
        ],
        "summary": "Get the Secret Store.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The Secret Store ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Secret Stores.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretStoreResponse"
                }
              }
            }
          },
          "404": {
            "description": "Secret Store not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "SecretStore"
        ],
        "summary": "Delete the Secret Store.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The Secret Store ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Secret Store successfully deleted.\n\n"
          },
          "404": {
            "description": "Secret Store not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "SecretStore"
        ],
        "summary": "Update the Secret Store.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The Secret Store ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Secret Store data.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSecretStorePayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Secret Store successfully updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretStoreResponse"
                }
              }
            }
          },
          "400": {
            "description": "One or more request body parameters are either missing, invalid, or the requested payload is not provided or is malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Secret Store not found.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/current-user": {
      "get": {
        "tags": [
          "public",
          "UserProfile"
        ],
        "summary": "Gets the extended profile of the current user",
        "operationId": "getCurrentUser",
        "responses": {
          "200": {
            "description": "The extended user profile of the user.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileExtendedResponse"
                }
              }
            }
          },
          "401": {
            "description": "No token supplied.\n\n"
          },
          "403": {
            "description": "Token is not valid for a user.\n\n"
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "UserProfile"
        ],
        "summary": "Updates the extended profile of the current user.",
        "operationId": "updateCurrentUser",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserProfileExtendedRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The extended user profile of the user.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileExtendedResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid or the payload malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "No token supplied.\n\n"
          },
          "403": {
            "description": "Token is not valid for a user.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/groups": {
      "post": {
        "tags": [
          "public",
          "Group"
        ],
        "operationId": "createGroup",
        "summary": "Create a group in an organization",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The group metadata and the role.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Group created with the specified Organization Role.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupWithRole"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Request unauthorized",
            "$ref": "#/components/responses/403Forbidden"
          },
          "409": {
            "description": "A group with the same name exists under the provided idp.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/groups/{groupId}/users": {
      "get": {
        "tags": [
          "public",
          "Group"
        ],
        "operationId": "listGroupUsers",
        "summary": "List users in a group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/groupIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The users that are members of the group.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserProfileResponse"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "description": "A group with the same name exists under the provided idp.",
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/users": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "List Users or Groups with roles in an App",
        "operationId": "listUserRolesInApp",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/subjectTypeQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Users or Groups and the roles they hold.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserRoleResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Adds a User or a Group to an Application with a Role",
        "operationId": "createUserRoleInApp",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The User or Group ID and the role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleRequest"
              },
              "example": {
                "id": "61048226-642c-438e-974f-ce5c013d94f8",
                "role": "manager"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The User or Group ID and the associated role.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/users/{userId}": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Get the role of a User or a Group on an Application",
        "operationId": "getUserRoleInApp",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Remove the role of a User or a Group on an Application",
        "operationId": "deleteUserRoleInApp",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Role of the User or the Group successfully deleted.\n\n"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Update the role of a User or a Group on an Application",
        "operationId": "updateUserRoleInApp",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/appIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The new User or Group role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/env-types/{envType}/users": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "List Users and Groups with roles in an Environment Type",
        "operationId": "listUserRolesInEnvType",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envTypePathParam"
          },
          {
            "$ref": "#/components/parameters/subjectTypeQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Users or Groups and the roles they hold.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserRoleResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Adds a User or a Group to an Environment Type with a Role",
        "operationId": "createUserRoleInEnvType",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envTypePathParam"
          }
        ],
        "requestBody": {
          "description": "The User or Group ID and the role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleRequest"
              },
              "example": {
                "id": "61048226-642c-438e-974f-ce5c013d94f8",
                "role": "manager"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The User or Group ID and the associated role.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/env-types/{envType}/users/{userId}": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Get the role of a User or a Group on an Environment Type",
        "operationId": "getUserRoleInEnvType",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envTypePathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Remove the role of a User or a Group on an Environment Type",
        "operationId": "deleteUserRoleInEnvType",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envTypePathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Role of the User or Group successfully deleted.\n\n"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Update the role of a User or a Group on an Environment Type",
        "operationId": "updateUserRoleInEnvType",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/envTypePathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The new User or Group role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/invitations": {
      "get": {
        "tags": [
          "public",
          "UserInvite"
        ],
        "summary": "List the invites issued for the organization.",
        "operationId": "listInvitesInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The list of the invites issued for the organization.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserInviteResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Invites a user to an Organization with a specified role.",
        "operationId": "createInviteInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The email and the desired role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInviteRequestRequest"
              },
              "example": {
                "email": "jane.gonzales@example.com",
                "role": "manager"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An temporary profile for the invited user.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserRoleResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid or the payload malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Object does not exist.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/users": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "List Users and Groups with roles in an Organization",
        "operationId": "listUserRolesInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/subjectTypeQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Users and Groups and the roles they hold.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserRoleResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "UserProfile"
        ],
        "summary": "Creates a new service user.",
        "operationId": "createServiceUserInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewServiceUserRequest"
              },
              "example": {
                "name": "CI Robot",
                "role": "manager"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The extended user profile of the user.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid or the payload malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Token is not valid for a user.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/users/{userId}": {
      "get": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Get the role of a User or a Group on an Organization",
        "operationId": "getUserRoleInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Remove the role of a User or a Group on an Organization",
        "operationId": "deleteUserRoleInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Role of the user or group successfully deleted.\n\n"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "UserRole"
        ],
        "summary": "Update the role of a User or a Group on an Organization",
        "operationId": "updateUserRoleInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "requestBody": {
          "description": "The new User or Group role\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/users/{userId}/groups": {
      "get": {
        "tags": [
          "public",
          "Group"
        ],
        "summary": "Get the groups in an organization a user belongs to.",
        "operationId": "listUserGroupsInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The list of groups in the organization a user belongs to.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Group"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/users/{userId}/perms": {
      "get": {
        "tags": [
          "UserRole",
          "public"
        ],
        "summary": "Get the permissions of a User or Group on the objects in an Organization",
        "operationId": "getSubjectPermsInOrg",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/userIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The information about the User or the Group.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubjectPermissions"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/users/{userId}/tokens": {
      "get": {
        "tags": [
          "public",
          "TokenInfo"
        ],
        "summary": "Lists tokens associated with a user",
        "operationId": "listUserTokens",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of tokens.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TokenInfoResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "403": {
            "description": "Calling user does not have permission to list tokens for this user.\n\n"
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "TokenInfo"
        ],
        "summary": "Creates a new static token for a user.",
        "operationId": "createUserToken",
        "description": "This is only supported for users of type `service`.",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The definition of the token.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenDefinitionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The issued static token.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid or the payload malformed.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Calling user does not have permission to list tokens for this user.\n\n"
          },
          "409": {
            "description": "There is already a token with the given ID.\n\n"
          }
        }
      }
    },
    "/users/{userId}/tokens/{tokenId}": {
      "get": {
        "tags": [
          "public",
          "TokenInfo"
        ],
        "summary": "Gets a specific token associated with a user",
        "operationId": "getUserToken",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tokenId",
            "in": "path",
            "description": "The token ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Metadata about the token.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenInfoResponse"
                }
              }
            }
          },
          "403": {
            "description": "Calling user does not have permission to list tokens for this user.\n\n"
          },
          "404": {
            "description": "This token ID is not available for the user.\n\n"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "TokenInfo"
        ],
        "summary": "Deletes a specific token associated with a user",
        "operationId": "deleteUserToken",
        "description": "This endpoint deletes a user's session token. The deleted token can no longer be used to access the API. All other tokens for this user can still be used.",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tokenId",
            "in": "path",
            "description": "The token ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The token was successfully deleted.\n\n"
          },
          "400": {
            "description": "The request is invalid.\n\n"
          },
          "403": {
            "description": "The calling user does not have permission to delete the token.\n\n"
          },
          "404": {
            "description": "This token id is not available for the user or the user does not exist.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions": {
      "get": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "List Value Set Versions in an Environment of an App",
        "description": "A new Value Set Version is created on every modification of a Value inside the an Environment of an App. In case this environment has no overrides the response is the same as the App level endpoint.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_changed",
            "in": "query",
            "description": "(Optional) Return only value set version where the specified key changed\n\n",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of ValueSetVersion.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ValueSetVersionResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}": {
      "get": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Get a single Value Set Version in an Environment of an App. The zero version id (00000000-0000-0000-0000-000000000000) will return the latest Value Set Version.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "404": {
            "description": "ValueSetVersion with `valueSetVersionId` in Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/purge/{key}": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Purge the value of a specific Shared Value from the App Environment Version history.",
        "description": "Purging permanently removes the value of a specific Shared Value in an application. A purged value is no longer accessible, can't be restored and can't be used\nby deployments referencing a Value Set Version where the value was present.\n\nLearn more about purging in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#purge).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Key of the value to be purged.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "key successfully purged\n\n"
          },
          "400": {
            "description": "The specified key can't be purged in this version.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/restore": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Restore a Value Set Version in an Environment of an App",
        "description": "Restore the values of all Shared Values in an environment from a specific version. Keys not existing in the selected version are deleted.\n\nLearn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The resulting ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/restore/{key}": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Restore a specific key from the Value Set Version in an Environment of an App",
        "description": "Restore the values of a single Shared Value in an Environment from a specific version.\n\nLearn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Key of the value to be restored.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The resulting ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App Environment.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/values": {
      "get": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "List Shared Values in an Environment",
        "description": "The returned values will be the base Application values with the Environment overrides where applicable. The `source` field will specify the level from which the value is from.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Values.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ValueResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Create a Shared Value for an Environment",
        "description": "The Shared Value created will only be available to the specific Environment.\n\nIf a Value is marked as a secret, it will be securely stored. It will not be possible to retrieve the value again through the API. The value of the secret can however be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Definition of the new Shared Value.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueCreatePayloadRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Shared Value successfully created.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Shared Value already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Delete all Shared Value for an Environment",
        "description": "All Shared Values will be deleted. If the Shared Values are marked as a secret, they will also be deleted.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Shared Value successfully deleted.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/envs/{envId}/values/{key}": {
      "put": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Update Shared Value for an Environment",
        "description": "Update the value or description of the Shared Value. Shared Values marked as secret can also be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Both `value` and `description` must be supplied. All other fields will be ignored.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueEditPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shared Value successfully updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Delete Shared Value for an Environment",
        "description": "The specified Shared Value will be permanently deleted. If the Shared Value is marked as a secret, it will also be permanently deleted.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Shared Value successfully deleted.\n\n"
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Update Shared Value for an Environment",
        "description": "Update the value or description of the Shared Value. Shared Values marked as secret can also be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "envId",
            "in": "path",
            "description": "The Environment ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "At least `value` or `description` must be supplied. All other fields will be ignored.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValuePatchPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shared Value successfully updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/value-set-versions": {
      "get": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "List Value Set Versions in the App",
        "description": "A new Value Set Version is created on every modification of a Value inside the app.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_changed",
            "in": "query",
            "description": "(Optional) Return only value set version where the specified key changed\n\n",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of ValueSetVersion.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ValueSetVersionResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}": {
      "get": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Get a single Value Set Version from the App",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "404": {
            "description": "ValueSetVersion with `valueSetVersionId` in App.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/purge/{key}": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Purge the value of a specific Shared Value from the App Version history.",
        "description": "Purging permanently removes the value of a specific Shared Value in an Application. A purged value is no longer accessible, can't be restored and can't be used\nby deployments referencing a Value Set Version where the value was present.\n\nLearn more about purging in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#purge).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Key of the value to be purged.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "key successfully purged\n\n"
          },
          "400": {
            "description": "The specified key can't be purged in this version.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/restore": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Restore a Value Set Version in an App",
        "description": "Restore the values of all Shared Values in an application from a specific version. Keys not existing in the selected version are deleted.\n\nLearn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The resulting ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/restore/{key}": {
      "post": {
        "tags": [
          "public",
          "ValueSetVersion"
        ],
        "summary": "Restore a specific key from the Value Set Version in an App",
        "description": "Restore the values of a single Shared Value in an application from a specific version.\n\nLearn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert).\n",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueSetVersionId",
            "in": "path",
            "description": "The ValueSetVersion ID.\n\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Key of the value to be restored.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueSetActionPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The resulting ValueSetVersion\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueSetVersionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No ValueSetVersion with `valueSetVersionId` in App.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/values": {
      "get": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "List Shared Values in an Application",
        "description": "The returned values will be the \"base\" values for the Application. The overridden value for the Environment can be retrieved via the `/orgs/{orgId}/apps/{appId}/envs/{envId}/values` endpoint.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A possibly empty list of Values.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ValueResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Create a Shared Value for an Application",
        "description": "The Shared Value created will be available to all Environments in that Application.\n\nIf a Value is marked as a secret, it will be securely stored. It will not be possible to retrieve the value again through the API. The value of the secret can however be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Definition of the new Shared Value.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueCreatePayloadRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Shared Value successfully created.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Shared Value already exists.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Delete all Shared Value for an App",
        "description": "All Shared Values will be deleted. If the Shared Values are marked as a secret, they will also be deleted.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Shared Values successfully deleted.\n\n"
          }
        }
      }
    },
    "/orgs/{orgId}/apps/{appId}/values/{key}": {
      "put": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Update Shared Value for an Application",
        "description": "Update the value or description of the Shared Value. Shared Values marked as secret can also be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Both `value` and `description` must be supplied. All other fields will be ignored.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueEditPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shared Value successfully updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Delete Shared Value for an Application",
        "description": "The specified Shared Value will be permanently deleted. If the Shared Value is marked as a secret, it will also be permanently deleted.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Shared Value successfully deleted.\n\n"
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "public",
          "Value"
        ],
        "summary": "Update Shared Value for an Application",
        "description": "Update the value or description of the Shared Value. Shared Values marked as secret can also be updated.",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "description": "The Organization ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appId",
            "in": "path",
            "description": "The Application ID.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "The key to update.\n\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "At least `value` or `description` must be supplied. All other fields will be ignored.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValuePatchPayloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shared Value successfully updated.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input not valid.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Shared Value does not exist.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanitecErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profile-features": {
      "get": {
        "tags": [
          "public",
          "WorkloadProfileFeatures"
        ],
        "summary": "List workload profile features available to the organization.",
        "operationId": "listWorkloadProfileFeatures",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of usable Workload Profiles Features.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WorkloadProfileFeatureResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profiles": {
      "get": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "List workload profiles available to the organization.",
        "operationId": "listWorkloadProfiles",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/deprecatedQueryParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Workload Profiles.",
            "headers": {
              "Link": {
                "$ref": "#/components/headers/Link"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WorkloadProfileResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Create new Workload Profile",
        "operationId": "createWorkloadProfile",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "description": "Workload profile details.\n\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkloadProfileRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The newly created Workload Profile.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profiles/{profileQid}": {
      "get": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Get a Workload Profile",
        "operationId": "getWorkloadProfile",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/profileQidPathParam"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested WorkloadProfile.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Update a Workload Profile",
        "operationId": "updateWorkloadProfile",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/profileQidPathParam"
          }
        ],
        "requestBody": {
          "description": "Workload profile details.\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkloadProfileUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The resulting WorkloadProfile.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      },
      "delete": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Delete a Workload Profile",
        "operationId": "deleteWorkloadProfile",
        "description": "This will also delete all versions of a workload profile.\n\nIt is not possible to delete profiles of other organizations.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/profileQidPathParam"
          }
        ],
        "responses": {
          "204": {
            "description": "The Workload Profile has been deleted.\n"
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profiles/{profileQid}/versions": {
      "get": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "operationId": "listWorkloadProfileVersions",
        "summary": "List versions of the given workload profile.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/profileQidPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Workload Profile Versions.",
            "headers": {
              "Link": {
                "$ref": "#/components/headers/Link"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WorkloadProfileVersionResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profiles/{profileQid}/versions/latest": {
      "get": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "operationId": "getLatestWorkloadProfileVersion",
        "summary": "Latest version of the given workload profile with optional constraint.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/profileQidPathParam"
          }
        ],
        "deprecated": true,
        "responses": {
          "200": {
            "description": "The latest version of a Workload profile\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadProfileVersionResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          }
        }
      }
    },
    "/orgs/{orgId}/workload-profile-chart-versions": {
      "post": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Add new Workload Profile Chart Version",
        "operationId": "createWorkloadProfileChartVersion",
        "description": "Creates a Workload Profile Chart Version from the uploaded Helm chart. The name and version is retrieved from the chart's metadata (Charts.yaml file).\n\nThe request has content type `multipart/form-data` and the request body includes one part:\n\n1. `file` with `application/x-gzip` content type which is an archive containing a Helm chart.\n\nRequest body example:\n\n\tContent-Type: multipart/form-data; boundary=----boundary \t----boundary \tContent-Disposition: form-data; name=\"file\"; filename=\"my-workload-1.0.1.tgz\" \tContent-Type: application/x-gzip \t[TGZ_DATA] \t----boundary",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          }
        ],
        "requestBody": {
          "description": "Workload profile chart version.\n\n",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The newly created Workload Profile Chart Version metadata.\n\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadProfileChartVersionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          }
        }
      },
      "get": {
        "tags": [
          "public",
          "WorkloadProfile"
        ],
        "summary": "Workload Profile Chart Versions for the given organization.",
        "operationId": "listWorkloadProfileChartVersions",
        "description": "Returns all Workload Profile Chart Versions for the given organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/orgIdPathParam"
          },
          {
            "$ref": "#/components/parameters/perPageQueryParam"
          },
          {
            "$ref": "#/components/parameters/pageTokenQueryParam"
          },
          {
            "name": "id",
            "in": "query",
            "description": "Filter Chart Versions by Chart Version ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Filter Chart Versions by Chart Version.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of Workload Profile Chart Versions.",
            "headers": {
              "Link": {
                "$ref": "#/components/headers/Link"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WorkloadProfileChartVersionResponse"
                  },
                  "type": "array"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "orgIdPathParam": {
        "name": "orgId",
        "in": "path",
        "description": "The Organization ID",
        "example": "sample-org",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
          "maxLength": 50
        }
      },
      "agentIdPathParam": {
        "name": "agentId",
        "in": "path",
        "description": "The Agent id.",
        "example": "my-agent",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "proxyUrlPathParam": {
        "name": "proxyUrl",
        "in": "path",
        "description": "The Proxy Url associated to an Agent.",
        "example": "http://my-org_my-agent:9be36d7e31323a00@proxy.namespace:8080",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "fingerprintPathParam": {
        "name": "fingerprint",
        "in": "path",
        "description": "The Key fingerprint (hexadecimal representation of sha256 hash of the DER representation of the key).",
        "example": "9be36d7e31323a00e88facdd50843accd95ddbcffaefea28e49c28c08399417d",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "fingerprintQueryParam": {
        "name": "fingerprint",
        "in": "query",
        "description": "The Key fingerprint (hexadecimal representation of sha256 hash of the DER representation of the key).",
        "example": "9be36d7e31323a00e88facdd50843accd95ddbcffaefea28e49c28c08399417d",
        "schema": {
          "type": "string"
        }
      },
      "appIdPathParam": {
        "name": "appId",
        "in": "path",
        "description": "The Application ID",
        "required": true,
        "example": "sample-app",
        "schema": {
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
          "type": "string",
          "maxLength": 50
        }
      },
      "perPageQueryParam": {
        "name": "per_page",
        "in": "query",
        "description": "The maximum number of items to return in a page of results",
        "required": false,
        "example": 50,
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 50
        }
      },
      "pageTokenQueryParam": {
        "name": "page",
        "in": "query",
        "description": "The page token to request from",
        "required": false,
        "example": "AAAAAAAAAA==",
        "schema": {
          "type": "string"
        }
      },
      "DelegatedRoles": {
        "name": "X-Service-Authorization",
        "in": "header",
        "description": "The delegated permissions.",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "SubjectType": {
        "name": "type",
        "in": "query",
        "description": "Type of Subject. Either User or Group",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/SubjectTypeEnum"
        }
      },
      "OrgId": {
        "name": "orgId",
        "in": "path",
        "description": "The Organization ID.",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
        }
      },
      "AppId": {
        "name": "appId",
        "in": "path",
        "description": "The Application ID.",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
        }
      },
      "EnvType": {
        "name": "envType",
        "in": "path",
        "description": "The Environment Type.",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
        }
      },
      "GroupId": {
        "name": "groupId",
        "in": "path",
        "description": "The Group ID.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "UserId": {
        "name": "userId",
        "in": "path",
        "description": "The ID of the User.",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
        }
      },
      "envIdPathParam": {
        "name": "envId",
        "in": "path",
        "description": "The Environment ID",
        "example": "development",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "pipelineIdPathParam": {
        "name": "pipelineId",
        "in": "path",
        "description": "The Pipeline ID",
        "example": "sample-pipeline",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "idempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "description": "The HTTP Idempotency-Key",
        "example": "0xr$P0Cu4@DB",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "runIdPathParam": {
        "name": "runId",
        "in": "path",
        "description": "The Run ID",
        "example": "01234567-89ab-cdef-0123-456789abcdef",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "jobIdPathParam": {
        "name": "jobId",
        "in": "path",
        "description": "The Job ID",
        "example": "deploy",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "approvalIdPathParam": {
        "name": "approvalId",
        "in": "path",
        "description": "The Approval ID",
        "example": "01234567-89ab-cdef-0123-456789abcdef",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "stepIndexPathParam": {
        "name": "stepIndex",
        "in": "path",
        "description": "The index of the step within the Job",
        "example": 0,
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "byOrgIdQueryParam": {
        "name": "org",
        "description": "An optional Organization ID",
        "in": "query",
        "required": false,
        "example": "sample-org",
        "schema": {
          "type": "string"
        }
      },
      "byAppIdQueryParam": {
        "name": "app",
        "description": "An optional list of Application IDs.",
        "in": "query",
        "explode": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "example": "sample-app",
            "type": "string"
          }
        }
      },
      "byEnvIdQueryParam": {
        "name": "env",
        "description": "An optional Environment ID",
        "in": "query",
        "required": false,
        "schema": {
          "example": "development",
          "type": "string"
        }
      },
      "byPipelineIdQueryParam": {
        "name": "pipeline",
        "description": "An optional list of Pipeline IDs.",
        "in": "query",
        "explode": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "sample-pipeline"
          }
        }
      },
      "byRunIdQueryParam": {
        "name": "run",
        "description": "An optional Pipeline Run ID.",
        "in": "query",
        "explode": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "sample-run"
          }
        }
      },
      "byVersionQueryParam": {
        "name": "version",
        "in": "query",
        "description": "An optional Pipeline Version ID.",
        "required": false,
        "example": "01234567-89ab-cdef-0123-456789abcdef",
        "schema": {
          "type": "string"
        }
      },
      "byStatusQueryParam": {
        "name": "status",
        "description": "Optional filter by status.",
        "in": "query",
        "explode": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "executing"
          }
        }
      },
      "byCompletedQueryParam": {
        "name": "completed",
        "in": "query",
        "description": "Optional filer by completed or not.",
        "required": false,
        "example": true,
        "schema": {
          "type": "boolean"
        }
      },
      "byWaitingForQueryParam": {
        "name": "waiting_for",
        "in": "query",
        "description": "Optional filter by waiting for an event.",
        "required": false,
        "example": "application.environment.deployment(test-deployment-id)",
        "schema": {
          "type": "string"
        }
      },
      "byCreatedAfterParam": {
        "name": "created_after",
        "in": "query",
        "description": "Optional filter by creation after date time.",
        "example": "2018-03-20T09:12:28Z",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "byCreatedBeforeParam": {
        "name": "created_before",
        "in": "query",
        "description": "Optional filter by creation before date time",
        "example": "2018-03-20T09:12:28Z",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "byMetadata": {
        "name": "metadata",
        "description": "Optional filter by pipeline metadata",
        "in": "query",
        "required": false,
        "style": "deepObject",
        "schema": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "ifMatchHeaderParam": {
        "name": "If-Match",
        "in": "header",
        "description": "Indicate that the request should only succeed if there is an etag match",
        "required": false,
        "example": "1234567890abcdef",
        "schema": {
          "type": "string"
        }
      },
      "byApprovalStatusQueryParam": {
        "name": "status",
        "in": "query",
        "description": "Optional filter by status.",
        "required": false,
        "example": "denied",
        "schema": {
          "type": "string"
        }
      },
      "byTriggerTypeQueryParam": {
        "name": "trigger",
        "description": "An optional filter by trigger type.",
        "in": "query",
        "required": false,
        "example": "pipeline_call",
        "schema": {
          "type": "string"
        }
      },
      "batchTypeParam": {
        "name": "batchType",
        "description": "The batch type, only artefact is implemented.",
        "in": "path",
        "required": true,
        "example": "artefact",
        "schema": {
          "type": "string"
        }
      },
      "defVersionIdPathParam": {
        "name": "defVersionId",
        "in": "path",
        "description": "The Resource Definition Version ID.",
        "example": "01234567-89ab-cdef-0123-4567890abcdef",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "graphIdPathParam": {
        "name": "graphId",
        "in": "path",
        "description": "The Dependency Graph ID.",
        "example": "01234567-89ab-cdef-0123-4567890abcdef",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "defIdPathParam": {
        "name": "defId",
        "in": "path",
        "description": "The Resource Definition ID.",
        "example": "sample-def",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "resourceTypePathParam": {
        "name": "type",
        "in": "path",
        "description": "The Resource Type, may include a resource class: {type}.{class}.\n",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "resourceIdPathParam": {
        "name": "resId",
        "in": "path",
        "description": "The Resource ID.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "deletedQueryParam": {
        "name": "deleted",
        "in": "query",
        "description": "If to show also deleted records in the response.",
        "required": false,
        "example": true,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "deployIdQueryParam": {
        "name": "deploy_id",
        "in": "query",
        "description": "The ID of the deployment that this provision is happening in. (Used to avoid re-provisioning resources.)",
        "schema": {
          "type": "string"
        }
      },
      "userIdPathParam": {
        "name": "userId",
        "in": "path",
        "description": "The User or Group Id.",
        "required": true,
        "example": "61048226-642c-438e-974f-ce5c013d94f8",
        "schema": {
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
          "type": "string"
        }
      },
      "groupIdPathParam": {
        "name": "groupId",
        "in": "path",
        "description": "The Group Id.",
        "required": true,
        "example": "g-61048226-642c-438e-974f-ce5c013d94f8",
        "schema": {
          "pattern": "^g-[a-z0-9](?:-?[a-z0-9]+)+$",
          "type": "string"
        }
      },
      "envTypePathParam": {
        "name": "envType",
        "in": "path",
        "description": "The Environment Type.",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
        }
      },
      "subjectTypeQueryParam": {
        "name": "type",
        "in": "query",
        "description": "Type of Subject. Either User or Group",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/SubjectTypeEnum"
        }
      },
      "profileQidPathParam": {
        "name": "profileQid",
        "in": "path",
        "description": "The Workload Profile ID.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "versionPathParam": {
        "name": "version",
        "in": "path",
        "description": "The Version.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "deprecatedQueryParam": {
        "name": "deprecated",
        "in": "query",
        "description": "Whether to include deprecated profiles",
        "required": false,
        "example": true,
        "schema": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "responses": {
      "307TemporaryRedirect": {
        "description": "The content is available at a different location specified in the Location header.",
        "headers": {
          "location": {
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "400BadRequest": {
        "description": "The request was invalid. More detail can be found in the error body.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HumanitecErrorResponse"
            }
          }
        }
      },
      "403Forbidden": {
        "description": "Server understands the request but refuses to authorize it.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HumanitecErrorResponse"
            }
          }
        }
      },
      "404NotFound": {
        "description": "Either the resource or a related resource could not be found. More detail can be found in the error body.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HumanitecErrorResponse"
            }
          }
        }
      },
      "409Conflict": {
        "description": "The request itself is valid however it could not be applied based on the current state of the resource.\nMore detail can be found in the error body.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HumanitecErrorResponse"
            }
          }
        }
      },
      "412PreconditionFailed": {
        "description": "The request itself is valid however it could not be applied because the Etag does not match.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "422UnprocessableContent": {
        "description": "Server understands the content type of the request, and the syntax of the request is correct, but it was unable to process the contained instructions\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "401Unauthorized": {
        "description": "Request lacks valid authentication credentials.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HumanitecErrorResponse"
            }
          }
        }
      }
    },
    "schemas": {
      "ErrorResponse": {
        "description": "A standard error response",
        "properties": {
          "error": {
            "description": "A short code representing the class of error. This code can be used for tracking and observability or to\nfind appropriate troubleshooting documentation.\n",
            "example": "API-000",
            "type": "string"
          },
          "message": {
            "description": "A human-readable explanation of the error.",
            "example": "Something happened!",
            "type": "string"
          },
          "details": {
            "description": "An optional payload of metadata associated with the error.",
            "additionalProperties": true,
            "type": "object"
          }
        },
        "required": [
          "error",
          "message"
        ],
        "type": "object"
      },
      "AgentCreateBody": {
        "description": "An object containing data needed to register an Agent.",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "description": "The Agent id. It can't be empty and should contain only url safe characters.",
            "example": "agent-id"
          },
          "public_key": {
            "type": "string",
            "description": "A pcks8 RSA public key PEM encoded (as the ones produced by openssl), whose module length is greater or equal than 4096 bits.",
            "example": "-----BEGIN PUBLIC KEY-----\n...-----END PUBLIC KEY-----"
          },
          "description": {
            "type": "string",
            "description": "An optional description to show future users.",
            "example": "One of my agents."
          }
        },
        "required": [
          "id",
          "public_key"
        ]
      },
      "AgentPatchBody": {
        "description": "An object containing data to update the description field of an Agent.",
        "properties": {
          "description": {
            "type": "string",
            "description": "A description to show future users. It can be empty.",
            "example": "One of my agents."
          }
        },
        "required": [
          "description"
        ]
      },
      "Agent": {
        "description": "An object containing the details of an Agent.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Agent id.",
            "example": "agent-id"
          },
          "description": {
            "type": "string",
            "description": "A description to show future users. It can be empty.",
            "example": "One of my agents."
          },
          "created_at": {
            "type": "string",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "description": "Time of the Agent being registered."
          },
          "created_by": {
            "type": "string",
            "description": "User ID of user that added the Agent.",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "required": [
          "id",
          "created_at",
          "created_by"
        ]
      },
      "Key": {
        "description": "An object containing the details of a Key.",
        "properties": {
          "fingerprint": {
            "type": "string",
            "description": "The Key fingerprint (sha256 hash of the DER representation of the key).",
            "example": "9be36d7e31323a00e88facdd50843accd95ddbcffaefea28e49c28c08399417d"
          },
          "public_key": {
            "type": "string",
            "description": "A pcks8 RSA ublic key PEM encoded.",
            "example": "-----BEGIN PUBLIC KEY-----\n...-----END PUBLIC KEY-----"
          },
          "created_at": {
            "type": "string",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "description": "Time of the Key being registered."
          },
          "created_by": {
            "type": "string",
            "description": "User ID of user that added the Key.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "expired_at": {
            "type": "string",
            "example": "2022-06-22T09:37:23.523Z",
            "format": "date-time",
            "description": "Time when the Key should be replaced (2 years after its creation)."
          },
          "is_authorized": {
            "type": "boolean",
            "description": "If this key has been authorized to be used to validate requests coming from an Agent.",
            "example": true
          }
        },
        "required": [
          "fingerprint",
          "public_key",
          "created_at",
          "created_by",
          "expired_at",
          "is_authorized"
        ]
      },
      "KeyCreateBody": {
        "properties": {
          "public_key": {
            "type": "string",
            "description": "A pcks8 RSA public key PEM encoded (as the ones produced by openssl), whose module length is greater or equal than 4096 bits.",
            "example": "-----BEGIN PUBLIC KEY-----\n...-----END PUBLIC KEY-----"
          }
        },
        "required": [
          "public_key"
        ]
      },
      "ApplicationCreationRequest": {
        "properties": {
          "env": {
            "$ref": "#/components/schemas/EnvironmentBaseRequest",
            "description": "The Environment that will be automatically created with application. If not provided, default environment will be created instead."
          },
          "id": {
            "description": "The ID which refers to a specific application.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "maxLength": 50,
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Application.",
            "type": "string"
          },
          "skip_environment_creation": {
            "description": "If true, no environment will be created with the application.",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "ApplicationRequest": {
        "description": "An Application is a collection of Workloads that work together. When deployed, all Workloads in an Application are deployed to the same namespace.\n\nApps are the root of the configuration tree holding Environments, Deployments, Shared Values, and Secrets.",
        "example": {
          "created_at": "2020-05-22T14:53:27Z",
          "created_by": "a.user@example.com",
          "envs": [
            {
              "id": "my-env",
              "name": "My Environment"
            }
          ],
          "id": "my-app",
          "name": "My Application"
        },
        "properties": {
          "id": {
            "description": "The ID which refers to a specific application.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Application.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "ApplicationResponse": {
        "description": "An Application is a collection of Workloads that work together. When deployed, all Workloads in an Application are deployed to the same namespace.\n\nApps are the root of the configuration tree holding Environments, Deployments, Shared Values, and Secrets.",
        "example": {
          "created_at": "2020-05-22T14:53:27Z",
          "created_by": "a.user@example.com",
          "status": "active",
          "status_changed_at": "2020-05-22T14:53:27Z",
          "envs": [
            {
              "id": "my-env",
              "name": "My Environment"
            }
          ],
          "id": "my-app",
          "name": "My Application"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp in UTC indicates when the Application was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The user who created the Application.",
            "type": "string"
          },
          "envs": {
            "description": "The Environments associated with the Application.",
            "items": {
              "$ref": "#/components/schemas/EnvironmentBaseResponse"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID which refers to a specific application.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Application.",
            "type": "string"
          },
          "org_id": {
            "description": "The Organization id of this Application",
            "type": "string"
          },
          "status": {
            "description": "The status of the application",
            "type": "string",
            "enum": [
              "active",
              "deleting"
            ]
          },
          "status_changed_at": {
            "description": "The timestamp in UTC of when the Environment status was last changed.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "format": "date-time",
            "type": "string"
          },
          "status_message": {
            "description": "The message associated with the status of the environment",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "org_id",
          "created_at",
          "created_by",
          "envs",
          "status",
          "status_changed_at"
        ],
        "type": "object"
      },
      "DeploymentErrorRequest": {
        "description": "Error happening during deployment.",
        "example": {
          "code": "CLD-001",
          "message": "Incorrect cloud provider credentials.",
          "object_id": "my-workload",
          "scope": "workload",
          "summary": "Provider error"
        },
        "properties": {
          "code": {
            "type": "string"
          },
          "error_type": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "object_id": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeploymentErrorResponse": {
        "description": "Error happening during deployment.",
        "example": {
          "code": "CLD-001",
          "message": "Incorrect cloud provider credentials.",
          "object_id": "my-workload",
          "scope": "workload",
          "summary": "Provider error"
        },
        "properties": {
          "code": {
            "type": "string"
          },
          "error_type": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "object_id": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "required": [
          "scope",
          "object_id",
          "code",
          "summary",
          "message",
          "error_type"
        ],
        "type": "object"
      },
      "DeploymentPipelineReferenceRequest": {
        "properties": {
          "id": {
            "description": "The ID of the Pipeline",
            "type": "string"
          },
          "job_id": {
            "description": "The ID of the Pipeline Job within the Run.",
            "type": "string"
          },
          "run_id": {
            "description": "The ID of the Pipeline Run",
            "type": "string"
          },
          "step_index": {
            "description": "The index of the step with in the Job.",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DeploymentPipelineReferenceResponse": {
        "properties": {
          "id": {
            "description": "The ID of the Pipeline",
            "type": "string"
          },
          "job_id": {
            "description": "The ID of the Pipeline Job within the Run.",
            "type": "string"
          },
          "run_id": {
            "description": "The ID of the Pipeline Run",
            "type": "string"
          },
          "step_index": {
            "description": "The index of the step with in the Job.",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "run_id",
          "job_id",
          "step_index"
        ],
        "type": "object"
      },
      "DeploymentRequest": {
        "description": "Deployments represent updates to the running state of an Environment.\n\nDeployments are made by applying _Deltas_ to a state defined by an existing Deployment. The Environment’s from_deploy property defines the Deployment. This Deployment is usually but not always in the current Environment. If the Deployment is from another Environment, the state of that Environment will be \"cloned\" into the current Environment with the option to apply a Delta.",
        "example": {
          "comment": "Updated version of module-one to v0.3.1",
          "created_at": "2020-05-22T14:58:07Z",
          "created_by": "a.user@example.com",
          "delta_id": "df1ad41807b0390a9b0eaf8688e1f5baece9d764",
          "env_id": "my-env",
          "from_id": "42d4b302fd3c",
          "id": "67f1619a57d",
          "status": "in progress",
          "status_changed_at": "2020-05-22T14:59:01Z"
        },
        "properties": {
          "comment": {
            "description": "An optional comment to help communicate the purpose of the Deployment.",
            "type": "string"
          },
          "delta_id": {
            "description": "ID of the Deployment Delta describing the changes to the current Environment for this Deployment.",
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/components/schemas/DeploymentPipelineReferenceRequest",
            "description": "The Pipeline that created this deployment. This may be blank if no Pipeline is associated."
          },
          "mode": {
            "description": "The deployment mode. Must be \"full\" or \"incremental\". Defaults to \"full\" when absent.\n\"incremental\" is only valid in direct (non-legacy) mode.",
            "enum": [
              "full",
              "incremental"
            ],
            "type": "string"
          },
          "set_id": {
            "description": "ID of the Deployment Set describing the state of the Environment after Deployment.",
            "type": "string"
          },
          "value_set_version_id": {
            "description": "ID of the Value Set Version describe the values to be used for this Deployment.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeploymentResponse": {
        "description": "Deployments represent updates to the running state of an Environment.\n\nDeployments are made by applying _Deltas_ to a state defined by an existing Deployment. The Environment’s from_deploy property defines the Deployment. This Deployment is usually but not always in the current Environment. If the Deployment is from another Environment, the state of that Environment will be \"cloned\" into the current Environment with the option to apply a Delta.",
        "example": {
          "comment": "Updated version of module-one to v0.3.1",
          "created_at": "2020-05-22T14:58:07Z",
          "created_by": "a.user@example.com",
          "delta_id": "df1ad41807b0390a9b0eaf8688e1f5baece9d764",
          "env_id": "my-env",
          "from_id": "42d4b302fd3c",
          "id": "67f1619a57d",
          "status": "in progress",
          "status_changed_at": "2020-05-22T14:59:01Z"
        },
        "properties": {
          "comment": {
            "description": "An optional comment to help communicate the purpose of the Deployment.",
            "type": "string"
          },
          "created_at": {
            "description": "The Timestamp of when the Deployment was initiated.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "description": "The user who initiated the Deployment.",
            "type": "string"
          },
          "delta_id": {
            "description": "ID of the Deployment Delta describing the changes to the current Environment for this Deployment.",
            "type": "string"
          },
          "env_id": {
            "description": "The Environment where the Deployment occurred.",
            "type": "string"
          },
          "export_file": {
            "type": "string"
          },
          "dependency_graph_id": {
            "type": "string",
            "description": "The ID of the Dependency Graph which holds the sorted list of the resources provisioned with this deployment.\nThe referenced Graph does not include resources of type k8s-cluster and k8s-namespace (and logging in case of deployments executed in Operator mode)."
          },
          "legacy_mode": {
            "type": "boolean",
            "description": "Defines if it's a Legacy Mode deployment, nil means either the mode is unknown or the deployment not yet finished."
          },
          "operator_version": {
            "type": "string",
            "description": "The version of the Humanitec Operator that performed this Deployment. Only set in Operator Mode; nil if the version is unknown, could not be retrieved, or the Deployment has not yet finished."
          },
          "mode": {
            "description": "The deployment mode. Either \"full\" or \"incremental\". \"incremental\" is only valid in direct (non-legacy) mode.",
            "type": "string"
          },
          "export_status": {
            "type": "string"
          },
          "from_id": {
            "description": "The ID of the Deployment that this Deployment was based on.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Deployment.",
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/components/schemas/DeploymentPipelineReferenceResponse",
            "description": "The Pipeline that created this deployment. This may be blank if no Pipeline is associated."
          },
          "set_id": {
            "description": "ID of the Deployment Set describing the state of the Environment after Deployment.",
            "type": "string"
          },
          "status": {
            "description": "The current status of the Deployment. Can be `pending`, `in progress`, `succeeded`, or `failed`.",
            "type": "string"
          },
          "status_changed_at": {
            "description": "The timestamp of the last `status` change. If `status` is `succeeded` or `failed` it it will indicate when the Deployment finished.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "format": "date-time",
            "type": "string"
          },
          "value_set_version_id": {
            "description": "ID of the Value Set Version describe the values to be used for this Deployment.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "comment",
          "id",
          "env_id",
          "created_at",
          "created_by",
          "status",
          "status_changed_at",
          "from_id",
          "export_status",
          "export_file"
        ],
        "type": "object"
      },
      "EnvironmentBaseRequest": {
        "properties": {
          "id": {
            "description": "The ID the Environment is referenced as.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "maxLength": 50,
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Environment.",
            "type": "string"
          },
          "type": {
            "description": "The Environment Type. This is used for organizing and managing Environments.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object"
      },
      "EnvironmentBaseUpdateRequest": {
        "properties": {
          "name": {
            "description": "The Human-friendly name for the Environment.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentBaseResponse": {
        "properties": {
          "id": {
            "description": "The ID the Environment is referenced as.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Environment.",
            "type": "string"
          },
          "type": {
            "description": "The Environment Type. This is used for organizing and managing Environments.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object"
      },
      "EnvironmentDefinitionRequest": {
        "properties": {
          "from_deploy_id": {
            "description": "Defines the existing Deployment the new Environment will be based on.",
            "type": "string"
          },
          "id": {
            "description": "The ID the Environment is referenced as.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "maxLength": 50,
            "type": "string"
          },
          "name": {
            "description": "The Human-friendly name for the Environment.",
            "type": "string"
          },
          "type": {
            "description": "The Environment Type. This is used for organizing and managing Environments.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "EnvironmentResponse": {
        "description": "Environments are independent spaces where Applications can run. An Application is always deployed into an Environment.",
        "example": {
          "created_at": "2020-05-22T14:58:07Z",
          "created_by": "a.user@example.com",
          "status": "active",
          "status_changed_at": "2020-05-22T14:59:01Z",
          "from_deploy": {
            "comment": "Updated version of module-one to v0.3.1",
            "created_at": "2020-05-22T14:58:07Z",
            "created_by": "a.user@example.com",
            "delta_id": "df1ad41807b0390a9b0eaf8688e1f5baece9d764",
            "env_id": "my-env",
            "from_id": "42d4b302fd3c",
            "id": "67f1619a57d",
            "status": "in progress",
            "status_changed_at": "2020-05-22T14:59:01Z"
          },
          "id": "feature-test",
          "last_deploy": {
            "comment": "Updated version of module-one to v0.3.1",
            "created_at": "2020-05-22T14:58:07Z",
            "created_by": "a.user@example.com",
            "delta_id": "df1ad41807b0390a9b0eaf8688e1f5baece9d764",
            "env_id": "my-env",
            "from_id": "42d4b302fd3c",
            "id": "67f1619a57d",
            "status": "in progress",
            "status_changed_at": "2020-05-22T14:59:01Z"
          },
          "name": "Feature Test",
          "type": "development"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp in UTC of when the Environment was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "description": "The user who created the Environment",
            "type": "string"
          },
          "from_deploy": {
            "$ref": "#/components/schemas/DeploymentResponse",
            "description": "The Deployment which acts as the base for the next Deployment. Typically this will be identical to last_deploy but can differ if an Environment Rebase occurred.\n\nThis property is not present before the first Deployment in the first Environment in a new Application."
          },
          "id": {
            "description": "The ID the Environment is referenced as.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          },
          "last_deploy": {
            "$ref": "#/components/schemas/DeploymentResponse",
            "description": "The last Deployment to have occured in the environment. This is not present if a deployment is yet to occur in the Environment."
          },
          "name": {
            "description": "The Human-friendly name for the Environment.",
            "type": "string"
          },
          "type": {
            "description": "The Environment Type. This is used for organizing and managing Environments.",
            "type": "string"
          },
          "status": {
            "description": "The status of the environment",
            "type": "string",
            "enum": [
              "active",
              "deleting"
            ]
          },
          "status_changed_at": {
            "description": "The timestamp in UTC of when the Environment status was last changed.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "format": "date-time",
            "type": "string"
          },
          "status_message": {
            "description": "The message associated with the status of the environment",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "created_at",
          "created_by",
          "status",
          "status_changed_at"
        ],
        "type": "object"
      },
      "EnvironmentTypeRequest": {
        "description": "Environment Types are a way of grouping and managing Environments. Every Environment has exactly 1 Environment Type.\n\nEnvironment Types can be used with External Resources to manage where resources such as databases are provisioned or even which cluster to deploy to.",
        "example": {
          "description": "Environments used for automated QA.",
          "id": "qa-automation"
        },
        "properties": {
          "description": {
            "description": "A Human-readable description of the Environment Type",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Environment Type. (Must be unique within an Organization.)",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "EnvironmentTypeResponse": {
        "description": "Environment Types are a way of grouping and managing Environments. Every Environment has exactly 1 Environment Type.\n\nEnvironment Types can be used with External Resources to manage where resources such as databases are provisioned or even which cluster to deploy to.",
        "example": {
          "description": "Environments used for automated QA.",
          "id": "qa-automation"
        },
        "properties": {
          "description": {
            "description": "A Human-readable description of the Environment Type",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Environment Type. (Must be unique within an Organization.)",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          }
        },
        "required": [
          "id",
          "description"
        ],
        "type": "object"
      },
      "HumanitecErrorResponse": {
        "description": "HumanitecError represents a standard Humanitec Error",
        "properties": {
          "details": {
            "additionalProperties": true,
            "type": "object",
            "description": "(Optional) Additional information is enclosed here."
          },
          "error": {
            "type": "string",
            "example": "API-000",
            "description": "A short code to help with error identification."
          },
          "message": {
            "type": "string",
            "example": "Could not validate token",
            "description": "A Human readable message about the error."
          }
        },
        "required": [
          "error",
          "message"
        ],
        "type": "object",
        "example": {
          "error": "API-000",
          "message": "Could not validate token."
        }
      },
      "UpdateEnvironmentTypePayloadRequest": {
        "description": "UpdateEnvironmentTypePayload contains the `description` field that should be set in the Environment Type to update.",
        "example": {
          "description": "Example Environment Type description"
        },
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ApplicationPatchPayload": {
        "description": "Patch request body to update Application metadata.",
        "example": {
          "description": "Example Environment Type description"
        },
        "properties": {
          "name": {
            "description": "The Human-friendly name for the Application.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "type": "object"
      },
      "CreateArtefactVersionBase": {
        "type": "object",
        "required": [
          "type",
          "name"
        ],
        "properties": {
          "type": {
            "description": "The Artefact Version type.",
            "type": "string",
            "example": "container"
          },
          "name": {
            "description": "The Artefact name.",
            "type": "string",
            "example": "registry.humanitec.io/my-org/my-service"
          },
          "version": {
            "description": "(Optional) The Artefact Version.",
            "type": "string",
            "example": "1.2.7"
          },
          "ref": {
            "description": "(Optional) The ref the Artefact Version was built from.",
            "type": "string",
            "example": "refs/heads/main"
          },
          "commit": {
            "description": "(Optional) The commit ID the Artefact Version was built on.",
            "pattern": "^[0-9a-f]{5,40}$",
            "example": "884bccaa807ea27cc1997a7492a3b6279fd7bd55",
            "type": "string"
          }
        }
      },
      "CreateContainerArtefactVersion": {
        "description": "Details for creating a new Container Artefact Version",
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateArtefactVersionBase"
          },
          {
            "properties": {
              "digest": {
                "description": "(Optional) The Artefact Version digest.",
                "type": "string",
                "example": "sha256:8414aa82208bc4c2761dc149df67e25c6b8a9380e5d8c4e7b5c84ca2d04bb244"
              }
            }
          }
        ]
      },
      "CreateWorkloadArtefactVersion": {
        "description": "Details for creating a new Workload Artefact Version",
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateArtefactVersionBase"
          },
          {
            "required": [
              "spec"
            ],
            "properties": {
              "spec": {
                "type": "object",
                "additionalProperties": true,
                "description": "A Json object containing the workload specification. Score v1b1 is expected.",
                "example": {
                  "apiVersion": "score.dev/v1b1",
                  "metadata": {
                    "name": "hello-world"
                  }
                }
              },
              "image": {
                "type": "string",
                "description": "An optional default image to assign to any containers in the workload that do not have an image set or whose image is '.'",
                "example": "busybox:latest"
              },
              "overrides": {
                "type": "object",
                "additionalProperties": true,
                "description": "An optional Json object containing the workload overrides. Score v1b1 is expected.",
                "example": {
                  "apiVersion": "score.dev/v1b1",
                  "profile": "humanitec/default-module"
                }
              },
              "property_overrides": {
                "type": "object",
                "additionalProperties": true,
                "description": "An optional set of path overrides that will be applied to the workload.",
                "example": {
                  "containers.my-container.image": "busybox:latest",
                  "containers.my-container.variables.DEBUG": null
                }
              },
              "resource_type_aliases": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "description": "An optional set of resource types overrides that will be applied in the deployment set.",
                "example": {
                  "s3": "my-org/s3"
                }
              },
              "extensions": {
                "$ref": "#/components/schemas/ScoreHumanitecExtensions"
              }
            }
          }
        ]
      },
      "ScoreHumanitecExtensions": {
        "description": "Humanitec workload extensions for the Workload Artefact Version. These can be used to override the profile, or workload module spec and resource attributes.",
        "required": [
          "apiVersion"
        ],
        "properties": {
          "apiVersion": {
            "description": "The api version describing the format of the extensions.",
            "type": "string"
          },
          "profile": {
            "description": "An optional override for the workload profile",
            "type": "string"
          },
          "spec": {
            "description": "A map of additional workload spec fields that will be merged.",
            "type": "object",
            "additionalProperties": true
          },
          "deploy": {
            "description": "An optional deploy condition for the workload.",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "when": {
                "description": "The stage the deployment should occur. \"deploy\", deployed in-parallel with other workloads (the default). \"before\", deployed before other workloads. \"after\", deployed after other workloads.",
                "type": "string",
                "enum": [
                  "before",
                  "deploy",
                  "after"
                ],
                "example": "before"
              },
              "success": {
                "description": "The success criteria for the deployment. \"deploy\", workload deployed. \"available\", workload available. \"complete\", workload complete (often used with jobs).",
                "type": "string",
                "enum": [
                  "deploy",
                  "available",
                  "complete"
                ],
                "example": "complete"
              },
              "timeout": {
                "description": "The timeout in seconds for the deployment to reach it's success condition.",
                "type": "integer"
              }
            }
          }
        },
        "example": {
          "apiVersion": "humanitec.org/v1b1",
          "profile": "humanitec/default-module",
          "spec": {
            "labels": {
              "my-label": "my-value"
            }
          }
        }
      },
      "CreateArtefactVersion": {
        "description": "The details of a new Artefact Version to register. The type field is required and dictates the type of Artefact to register.",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "description": "The Artefact Version type.",
            "type": "string",
            "example": "container"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateContainerArtefactVersion"
          },
          {
            "$ref": "#/components/schemas/CreateWorkloadArtefactVersion"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "container": "#/components/schemas/CreateContainerArtefactVersion",
            "workload": "#/components/schemas/CreateWorkloadArtefactVersion"
          }
        }
      },
      "ArtefactResponse": {
        "description": "Artefacts can be registered with Humanitec. Continuous Integration (CI) pipelines notify Humanitec when a new version of an Artefact becomes available. Humanitec tracks the Artefact along with metadata about how it was built.",
        "properties": {
          "created_at": {
            "description": "The time when the Artefact was added to Humanitec.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The user ID of the user who added the Artefact to Humanitec.",
            "type": "string",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "id": {
            "description": "The UUID of the Artefact.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "name": {
            "description": "The name of the Artefact.",
            "example": "registry.humanitec.io/my-org/my-service",
            "type": "string"
          },
          "type": {
            "description": "The type of the Artefact.",
            "example": "container",
            "type": "string"
          },
          "updated_at": {
            "description": "The time when the Artefact was updated for the last time.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "updated_by": {
            "description": "The user ID of the user who updated the Artefact for the last time.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object"
      },
      "ArtefactVersionBase": {
        "type": "object",
        "required": [
          "type",
          "id",
          "name",
          "artefact_id",
          "archived"
        ],
        "properties": {
          "archived": {
            "description": "If the Artefact Version is archived.",
            "example": false,
            "type": "boolean"
          },
          "artefact_id": {
            "description": "The UUID of the Artefact.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "commit": {
            "description": "(Optional) The commit ID the Artefact Version was built on.",
            "example": "060c3d6530a881afb808f105f36af25e1ad1b2f3",
            "type": "string"
          },
          "created_at": {
            "description": "The time when the Artefact Version was added to Humanitec.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The user ID of the user who added the Artefact Version to Humanitec.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "id": {
            "description": "The UUID of the Artefact Version.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "name": {
            "description": "The name of the Artefact.",
            "example": "registry.humanitec.io/my-org/my-service",
            "type": "string"
          },
          "ref": {
            "description": "(Optional) The ref the Artefact Version was built from.",
            "example": "refs/heads/main",
            "type": "string"
          },
          "updated_at": {
            "description": "The time when the Artefact Version was updated for the last time.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "updated_by": {
            "description": "The user ID of the user who performed the last updated on the Artefact Version.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "version": {
            "description": "(Optional) The version of the Artefact Version.",
            "example": "1.2.7",
            "type": "string"
          }
        }
      },
      "ContainerArtefactVersion": {
        "description": "Details of a Container Artefact Version",
        "allOf": [
          {
            "$ref": "#/components/schemas/ArtefactVersionBase"
          },
          {
            "required": [
              "ref",
              "commit",
              "digest"
            ],
            "properties": {
              "digest": {
                "description": "(Optional) The Artefact Version digest.",
                "type": "string",
                "example": "sha256:8414aa82208bc4c2761dc149df67e25c6b8a9380e5d8c4e7b5c84ca2d04bb244"
              }
            }
          }
        ]
      },
      "WorkloadArtefactVersion": {
        "description": "Details of a Workload Artefact Version",
        "allOf": [
          {
            "$ref": "#/components/schemas/ArtefactVersionBase"
          },
          {
            "properties": {}
          }
        ]
      },
      "ArtefactVersion": {
        "description": "The details of an Artefact Version. The type field dictates the type of Artefact along with any additional fields.",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "description": "The Artefact Version type.",
            "type": "string",
            "example": "container"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/ContainerArtefactVersion"
          },
          {
            "$ref": "#/components/schemas/WorkloadArtefactVersion"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "container": "#/components/schemas/ContainerArtefactVersion",
            "workload": "#/components/schemas/WorkloadArtefactVersion"
          }
        }
      },
      "WorkloadArtefactVersionDeploymentSet": {
        "description": "Humanitec definition for a Workload Artefact.",
        "required": [
          "modules",
          "shared"
        ],
        "properties": {
          "modules": {
            "description": "The set of workloads to add when deployed, the key is the name of the workload.",
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "shared": {
            "description": "The set of shared resources to depend on, the key is the resource identifier.",
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": true
            }
          }
        }
      },
      "ImageBuildRequest": {
        "description": "DEPRECATED: This type exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nHolds the metadata associated withe a Container Image Build",
        "properties": {
          "branch": {
            "description": "The branch name of the branch the build was built on",
            "example": "master",
            "type": "string"
          },
          "commit": {
            "description": "The commit ID that this build was built from.",
            "example": "884bccaa807ea27cc1997a7492a3b6279fd7bd55",
            "type": "string"
          },
          "image": {
            "description": "The fully qualified Image URL including registry, repository and tag.",
            "example": "registry.humanitec.io/my-org/my-service:1.2.7",
            "pattern": "^((?:[\\w.\\-_]+(?:(?::\\d+|)(?=/[a-z0-9._-]+/[a-z0-9._-]+))|)(?:/|)(?:[a-z0-9.\\-_]+(?:/[a-z0-9.\\-_]+|)))(?::)?((?:[\\w.\\-]{1,127}|)(?:0[xX][0-9a-fA-F]+|))?$'",
            "type": "string"
          },
          "tags": {
            "description": "The tag that the build was built from.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ImageBuildResponse": {
        "description": "DEPRECATED: This type exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nHolds the metadata associated withe a Container Image Build",
        "properties": {
          "added_at": {
            "description": "The time when the build was added to Humanitec.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "branch": {
            "description": "The branch name of the branch the build was built on",
            "example": "master",
            "type": "string"
          },
          "commit": {
            "description": "The commit ID that this build was built from.",
            "example": "884bccaa807ea27cc1997a7492a3b6279fd7bd55",
            "type": "string"
          },
          "image": {
            "description": "The fully qualified Image URL including registry, repository and tag.",
            "example": "registry.humanitec.io/my-org/my-service:1.2.7",
            "pattern": "^((?:[\\w.\\-_]+(?:(?::\\d+|)(?=/[a-z0-9._-]+/[a-z0-9._-]+))|)(?:/|)(?:[a-z0-9.\\-_]+(?:/[a-z0-9.\\-_]+|)))(?::)?((?:[\\w.\\-]{1,127}|)(?:0[xX][0-9a-fA-F]+|))?$'",
            "type": "string"
          },
          "tags": {
            "description": "The tag that the build was built from.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "image",
          "commit",
          "branch",
          "tags"
        ],
        "type": "object"
      },
      "ImageRequest": {
        "description": "DEPRECATED: This type exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nContainer Images (known simply as Images) can be registered with Humanitec. Continuous Integration (CI) pipelines can then notify Humanitec when a new build of a Container Image becomes available. Humanitec tracks the Image along with metadata about how it was built.",
        "properties": {
          "added_at": {
            "description": "The time the first build of this Image was added to the organization",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "builds": {
            "description": "A list of Image Builds ordered by addition date.",
            "items": {
              "$ref": "#/components/schemas/ImageBuildRequest"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID used to group different builds of the same Image together.",
            "example": "my-service",
            "type": "string"
          },
          "source": {
            "description": "The Image Source that this Image is added via",
            "example": "github",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageResponse": {
        "description": "DEPRECATED: This type exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nContainer Images (known simply as Images) can be registered with Humanitec. Continuous Integration (CI) pipelines can then notify Humanitec when a new build of a Container Image becomes available. Humanitec tracks the Image along with metadata about how it was built.",
        "properties": {
          "added_at": {
            "description": "The time the first build of this Image was added to the organization",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "builds": {
            "description": "A list of Image Builds ordered by addition date.",
            "items": {
              "$ref": "#/components/schemas/ImageBuildResponse"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID used to group different builds of the same Image together.",
            "example": "my-service",
            "type": "string"
          },
          "source": {
            "description": "The Image Source that this Image is added via",
            "example": "github",
            "type": "string"
          }
        },
        "required": [
          "id",
          "source",
          "builds",
          "added_at"
        ],
        "type": "object"
      },
      "UpdateArtefactVersionPayloadRequest": {
        "description": "UpdateArtefactVersionPayload contains the `archived` field that should be set in the Artefact Version to update.",
        "properties": {
          "archived": {
            "description": "The Value of the archived value.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          }
        },
        "required": [
          "archived"
        ],
        "type": "object"
      },
      "ConvertScoreToSetBody": {
        "description": "Request body for converting a Score manifest to Humanitec deployment set.",
        "additionalProperties": false,
        "required": [
          "spec"
        ],
        "properties": {
          "spec": {
            "type": "object",
            "additionalProperties": true,
            "description": "A Json object containing the workload specification. Score v1b1 is expected.",
            "example": {
              "apiVersion": "score.dev/v1b1",
              "metadata": {
                "name": "hello-world"
              }
            }
          },
          "image": {
            "type": "string",
            "description": "An optional default image to assign to any containers in the workload that do not have an image set or whose image is '.'",
            "example": "busybox:latest"
          },
          "overrides": {
            "type": "object",
            "additionalProperties": true,
            "description": "An optional Json object containing the workload overrides. Score v1b1 is expected.",
            "example": {
              "apiVersion": "score.dev/v1b1",
              "profile": "humanitec/default-module"
            }
          },
          "property_overrides": {
            "type": "object",
            "additionalProperties": true,
            "description": "An optional set of path overrides that will be applied to the workload.",
            "example": {
              "containers.my-container.image": "busybox:latest",
              "containers.my-container.variables.DEBUG": null
            }
          },
          "resource_type_aliases": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "An optional set of resource types overrides that will be applied in the deployment set.",
            "example": {
              "s3": "my-org/s3"
            }
          },
          "extensions": {
            "$ref": "#/components/schemas/ScoreHumanitecExtensions"
          }
        }
      },
      "AuditLogEntry": {
        "description": "An entry in the audit log",
        "required": [
          "at",
          "user_id",
          "request_method",
          "request_path",
          "response_status"
        ],
        "properties": {
          "at": {
            "description": "The date and time when the event was recorded.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "org_id": {
            "description": "The id of the Organization this event occurred in.",
            "example": "my-organization",
            "type": "string"
          },
          "user_id": {
            "description": "The id of the User who triggered the event.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "request_method": {
            "description": "The HTTP method that was requested. Only POST, PATCH, PUT, and DELETE are audited.",
            "example": "POST",
            "type": "string"
          },
          "request_path": {
            "description": "The URL path that was called.",
            "example": "/orgs/some-org/apps",
            "type": "string"
          },
          "response_status": {
            "description": "The status code of the response. Only successful responses are audited.",
            "example": 201,
            "type": "integer"
          }
        }
      },
      "SubjectTypeEnum": {
        "description": "Subjects that can assume roles on objects.",
        "type": "string",
        "enum": [
          "user",
          "group"
        ]
      },
      "Group": {
        "description": "Group holds the metadata of a new group.",
        "example": {
          "id": "g-d510224a-4641-48fd-8054-68efd3537ee2",
          "group_id": "my-idp-group",
          "idp_id": "my-idp"
        },
        "type": "object",
        "properties": {
          "id": {
            "description": "The id used in Humanitec to identify the group.",
            "type": "string"
          },
          "group_id": {
            "description": "The name of the group in the IdP",
            "type": "string"
          },
          "idp_id": {
            "description": "The IdP id.",
            "type": "string",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
          },
          "created_at": {
            "description": "The time the user was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "group_id",
          "idp_id"
        ]
      },
      "AutomationRuleRequest": {
        "description": "An Automation Rule defining how and when artefacts in an environment should be updated.",
        "properties": {
          "active": {
            "description": "Whether the rule will be processed or not.",
            "type": "boolean",
            "example": true
          },
          "artefacts_filter": {
            "description": "A list of artefact names to be processed by the rule. If the array is empty, it implies include all. If `exclude_artefacts_filter` is true, this list describes the artefacts to exclude.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "example": [
              "http://registry.org/sample-service"
            ]
          },
          "exclude_artefacts_filter": {
            "description": "Whether the artefacts specified in `artefacts_filter` should be excluded (true) or included (false) in the automation rule.",
            "type": "boolean",
            "example": false
          },
          "exclude_images_filter": {
            "description": "DEPRECATED: Whether the images specified in `images_filter` should be excluded (true) or included (false) in the automation rule.",
            "type": "boolean",
            "example": false,
            "deprecated": true
          },
          "images_filter": {
            "description": "DEPRECATED: A list of image IDs to be processed by the rule. If the array is empty, it implies include all. If `exclude_images_filter` is true, this list describes images to exclude.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "example": [
              "sample-service"
            ],
            "deprecated": true
          },
          "match": {
            "description": "DEPRECATED: A regular expression applied to the branch or tag name depending on the value of `update_to`. Defaults to match all if omitted or empty.",
            "type": "string",
            "example": "^pr-[0-9]+-.*$",
            "deprecated": true
          },
          "match_ref": {
            "description": "A regular expression applied to the ref of a new artefact version. Defaults to match all if omitted or empty.",
            "type": "string",
            "example": "^refs/heads/pr-[0-9]+-.*$"
          },
          "type": {
            "description": "Specifies the type of event. Currently, only updates to either branches or tags are supported. Must be `\"update\"`.",
            "pattern": "^(?:update)$",
            "type": "string",
            "example": "update"
          },
          "update_to": {
            "description": "DEPRECATED: Specifies whether the update occurs on commit to branch or creation of tag. Must be one of `\"branch\"` or `\"tag\"`.",
            "pattern": "^(?:branch|tag)$",
            "type": "string",
            "example": "branch",
            "deprecated": true
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "AutomationRuleResponse": {
        "description": "An Automation Rule defining how and when artefacts in an environment should be updated.",
        "properties": {
          "active": {
            "description": "Whether the rule will be processed or not.",
            "type": "boolean",
            "example": true
          },
          "artefacts_filter": {
            "description": "A list of artefact names to be processed by the rule. If the array is empty, it implies include all. If `exclude_artefacts_filter` is true, this list describes the artefacts to exclude.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "example": [
              "http://registry.org/sample-service"
            ]
          },
          "created_at": {
            "description": "The timestamp in UTC of when the Automation Rule was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          },
          "exclude_artefacts_filter": {
            "description": "Whether the artefacts specified in `artefacts_filter` should be excluded (true) or included (false) in the automation rule.",
            "type": "boolean",
            "example": false
          },
          "exclude_images_filter": {
            "description": "DEPRECATED: Whether the images specified in `images_filter` should be excluded (true) or included (false) in the automation rule.",
            "type": "boolean",
            "example": false,
            "deprecated": true
          },
          "id": {
            "description": "The unique ID for this rule.",
            "type": "string",
            "example": "923486d012f20324"
          },
          "images_filter": {
            "description": "DEPRECATED: A list of image IDs to be processed by the rule. If the array is empty, it implies include all. If `exclude_images_filter` is true, this list describes images to exclude.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "example": [
              "sample-service"
            ],
            "deprecated": true
          },
          "match": {
            "description": "DEPRECATED: A regular expression applied to the branch or tag name depending on the value of `update_to`. Defaults to match all if omitted or empty.",
            "type": "string",
            "example": "^pr-[0-9]+-.*$",
            "deprecated": true
          },
          "match_ref": {
            "description": "A regular expression applied to the ref of a new artefact version. Defaults to match all if omitted or empty.",
            "type": "string",
            "example": "^refs/heads/pr-[0-9]+-.*$"
          },
          "type": {
            "description": "Specifies the type of event. Currently, only updates to either branches or tags are supported. Must be `\"update\"`.",
            "pattern": "^(?:update)$",
            "type": "string",
            "example": "update"
          },
          "update_to": {
            "description": "DEPRECATED: Specifies whether the update occurs on commit to branch or creation of tag. Must be one of `\"branch\"` or `\"tag\"`.",
            "pattern": "^(?:branch|tag)$",
            "type": "string",
            "example": "branch",
            "deprecated": true
          },
          "updated_at": {
            "description": "The timestamp in UTC of when the Automation Rule was updated.",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "active",
          "type",
          "images_filter",
          "artefacts_filter",
          "exclude_images_filter",
          "exclude_artefacts_filter",
          "update_to",
          "match",
          "match_ref",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "EnvironmentID": {
        "type": "string",
        "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
        "example": "my-env"
      },
      "DeltaMetadataRequest": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "contributers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "nullable": true
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "env_id": {
            "$ref": "#/components/schemas/EnvironmentID"
          },
          "last_modified_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shared": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "DeltaMetadataResponse": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "contributers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "env_id": {
            "$ref": "#/components/schemas/EnvironmentID"
          },
          "last_modified_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shared": {
            "type": "boolean"
          }
        },
        "required": [
          "created_by",
          "created_at",
          "last_modified_at",
          "archived"
        ],
        "type": "object"
      },
      "DeltaRequest": {
        "description": "A Deployment Delta (or just \"Delta\") describes the changes that must be applied to one Deployment Set to generate another Deployment Set. Deployment Deltas are the only way to create new Deployment Sets.\n\nDeployment Deltas can be created fully formed or combined together via PATCHing. They can also be generated from the difference between two Deployment Sets.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Delta.>,\n   \"metadata\": {\n     <Properties such as who created the Delta, which Environment it is associated to and a Human-friendly name>\n   }\n   \"modules\" : {\n     \"add\" : {\n       <ID of Module to add to the Deployment Set> : {\n         <An entire Modules object>\n       }\n     },\n     \"remove\": [\n       <An array of Module IDs that should be removed from the Deployment Set>\n     ],\n    \"update\": {\n       <ID of Module already in the Set to be updated> : [\n         <An array of JSON Patch (Search Results (RFC 6902) objects scoped to the module>\n       ]\n     }\n   }\n }\n```",
        "example": {
          "id": "49393b5004d072000b8abfd910c61685eb9235f5",
          "metadata": {},
          "modules": {
            "add": {
              "redis-cache": {
                "profile": "humanitec/redis"
              }
            },
            "remove": [
              "simple-service"
            ],
            "update": {
              "module-one": [
                {
                  "op": "replace",
                  "path": "/spec/containers/core-service/variables/EXAMPLE",
                  "value": "New Value"
                }
              ]
            }
          }
        },
        "properties": {
          "id": {
            "description": "Ignored, but can be provided.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/DeltaMetadataRequest",
            "description": "Holds various metadata such as a Human-friendly name, collaborators, and Environment it is associated with."
          },
          "modules": {
            "$ref": "#/components/schemas/ModuleDeltasRequest",
            "description": "A dictionary of the Modules this Delta has operations for."
          },
          "shared": {
            "items": {
              "$ref": "#/components/schemas/UpdateActionRequest"
            },
            "type": "array",
            "nullable": true
          }
        },
        "type": "object"
      },
      "DeltaResponse": {
        "description": "A Deployment Delta (or just \"Delta\") describes the changes that must be applied to one Deployment Set to generate another Deployment Set. Deployment Deltas are the only way to create new Deployment Sets.\n\nDeployment Deltas can be created fully formed or combined together via PATCHing. They can also be generated from the difference between two Deployment Sets.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Delta.>,\n   \"metadata\": {\n     <Properties such as who created the Delta, which Environment it is associated to and a Human-friendly name>\n   }\n   \"modules\" : {\n     \"add\" : {\n       <ID of Module to add to the Deployment Set> : {\n         <An entire Modules object>\n       }\n     },\n     \"remove\": [\n       <An array of Module IDs that should be removed from the Deployment Set>\n     ],\n    \"update\": {\n       <ID of Module already in the Set to be updated> : [\n         <An array of JSON Patch (Search Results (RFC 6902) objects scoped to the module>\n       ]\n     }\n   }\n }\n```",
        "example": {
          "id": "49393b5004d072000b8abfd910c61685eb9235f5",
          "metadata": {},
          "modules": {
            "add": {
              "redis-cache": {
                "profile": "humanitec/redis"
              }
            },
            "remove": [
              "simple-service"
            ],
            "update": {
              "module-one": [
                {
                  "op": "replace",
                  "path": "/spec/containers/core-service/variables/EXAMPLE",
                  "value": "New Value"
                }
              ]
            }
          }
        },
        "properties": {
          "id": {
            "description": "A unique ID for the Delta",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/DeltaMetadataResponse",
            "description": "Holds various metadata such as a Human-friendly name, collaborators, and Environment it is associated with."
          },
          "modules": {
            "$ref": "#/components/schemas/ModuleDeltasResponse",
            "description": "A dictionary of the Modules this Delta has operations for."
          },
          "shared": {
            "items": {
              "$ref": "#/components/schemas/UpdateActionResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "metadata",
          "modules",
          "shared"
        ],
        "type": "object"
      },
      "PlainDeltaResponse": {
        "description": "Similar to the delta response, except the id and metadata properties.\n\n**Basic Structure**\n\n```\n {\n   \"modules\" : {\n     \"add\" : {\n       <ID of Module to add to the Deployment Set> : {\n         <An entire Modules object>\n       }\n     },\n     \"remove\": [\n       <An array of Module IDs that should be removed from the Deployment Set>\n     ],\n    \"update\": {\n       <ID of Module already in the Set to be updated> : [\n         <An array of JSON Patch (Search Results (RFC 6902) objects scoped to the module>\n       ]\n     }\n   }\n }\n```",
        "example": {
          "modules": {
            "add": {
              "redis-cache": {
                "profile": "humanitec/redis"
              }
            },
            "remove": [
              "simple-service"
            ],
            "update": {
              "module-one": [
                {
                  "op": "replace",
                  "path": "/spec/containers/core-service/variables/EXAMPLE",
                  "value": "New Value"
                }
              ]
            }
          }
        },
        "properties": {
          "modules": {
            "$ref": "#/components/schemas/ModuleDeltasResponse",
            "description": "A dictionary of the Modules this Delta has operations for."
          },
          "shared": {
            "items": {
              "$ref": "#/components/schemas/UpdateActionResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "modules",
          "shared"
        ],
        "type": "object"
      },
      "DeployConditionRequest": {
        "description": "A deploy condition for the workload\n\nPossible values for \"when\" are: - \"before\", deployed before other workloads - \"deploy\", deployed in-parallel with other workloads (default) - \"after\", deployed after other workloads\n\nPossible values for \"success\" are: - \"deploy\", workload deployed - \"available\", workload available - \"complete\", workload complete (often used with jobs)",
        "example": {
          "success": "complete",
          "when": "before"
        },
        "properties": {
          "success": {
            "type": "string"
          },
          "timeout": {
            "type": "integer"
          },
          "when": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeployConditionResponse": {
        "description": "A deploy condition for the workload\n\nPossible values for \"when\" are: - \"before\", deployed before other workloads - \"deploy\", deployed in-parallel with other workloads (default) - \"after\", deployed after other workloads\n\nPossible values for \"success\" are: - \"deploy\", workload deployed - \"available\", workload available - \"complete\", workload complete (often used with jobs)",
        "example": {
          "success": "complete",
          "when": "before"
        },
        "properties": {
          "success": {
            "type": "string"
          },
          "timeout": {
            "type": "integer"
          },
          "when": {
            "type": "string"
          }
        },
        "required": [
          "when",
          "success",
          "timeout"
        ],
        "type": "object"
      },
      "ModuleDeltasRequest": {
        "description": "ModuleDeltas groups the different operations together.",
        "properties": {
          "add": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ModuleRequest"
            },
            "type": "object",
            "nullable": true
          },
          "remove": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "nullable": true
          },
          "update": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/UpdateActionRequest"
              },
              "type": "array"
            },
            "type": "object",
            "nullable": true
          }
        },
        "type": "object"
      },
      "ModuleDeltasResponse": {
        "description": "ModuleDeltas groups the different operations together.",
        "properties": {
          "add": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ModuleResponse"
            },
            "type": "object"
          },
          "remove": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "update": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/UpdateActionResponse"
              },
              "type": "array"
            },
            "type": "object"
          }
        },
        "required": [
          "add",
          "remove",
          "update"
        ],
        "type": "object"
      },
      "ModuleRequest": {
        "description": "Module single workload data",
        "properties": {
          "deploy": {
            "$ref": "#/components/schemas/DeployConditionRequest"
          },
          "externals": {
            "additionalProperties": true,
            "type": "object",
            "nullable": true
          },
          "profile": {
            "type": "string"
          },
          "spec": {
            "additionalProperties": true,
            "type": "object",
            "nullable": true
          }
        },
        "type": "object",
        "nullable": true
      },
      "ModuleResponse": {
        "description": "Module represents a collection of workload controllers (deployments/statefulsets/etc) for the module",
        "properties": {
          "deploy": {
            "$ref": "#/components/schemas/DeployConditionResponse"
          },
          "externals": {
            "additionalProperties": true,
            "type": "object"
          },
          "profile": {
            "type": "string"
          },
          "spec": {
            "additionalProperties": true,
            "type": "object"
          }
        },
        "required": [
          "profile",
          "spec",
          "externals"
        ],
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/ControllerResponse"
        }
      },
      "SetRequest": {
        "description": "A Deployment Set (or just \"Set\") defines all of the non-Environment specific configuration for Modules and External Resources. Each of these Modules or External Resources has a unique name.\n\nDeployment Sets are immutable and their ID is a cryptographic hash of their content. This means that a Deployment Set can be globally identified based on its ID. It also means that referencing a Deployment Set by ID will always return the same Deployment Set.\n\nDeployment Sets cannot be created directly, instead they are created by applying a Deployment Delta to an existing Deployment Set.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Set>,\n   \"modules\" : {\n     <ID of Module> : {\n       \"profile\": <Defines how the optional \"spec\" property is interpreted>\n       \"spec\": {\n         <Properties that depend on the \"profile\" property.>\n       }\n       \"externals\": {\n         <External Resource Name> : {\n           \"type\": <Resource Type>,\n           \"params\": {\n             <Properties which parametrize the resource depending on the Resource Type.>\n           }\n         }\n       }\n     }\n   }\n }\n```\n\nFor details about how the Humanitec provided profiles work, see (Deployment Set Profiles)[].",
        "example": {
          "modules": {
            "module-one": {
              "externals": {
                "db-one": {
                  "params": {
                    "extensions": {
                      "uuid-ossp": {}
                    }
                  },
                  "type": "postgres"
                }
              },
              "profile": "humanitec/default-module",
              "spec": {
                "containers": {
                  "core-service": {
                    "id": "core-service",
                    "image": "registry.humanitec.io/my-org/core-service:VERSION_ONE",
                    "readiness_probe": {
                      "path": "/healtz",
                      "port": 8080,
                      "type": "http"
                    },
                    "variables": {
                      "DBHOST": "${externals.db-one.name}",
                      "DBNAME": "${externals.db-one.name}",
                      "DBPASSWORD": "${externals.db-one.password}",
                      "DBUSERNAME": "${externals.db-one.username}",
                      "REDIS_URL": "redis://${modules.redis-cache.service.name}"
                    }
                  }
                }
              }
            },
            "redis-cache": {
              "profile": "humanitec/redis"
            }
          }
        },
        "properties": {
          "modules": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ModuleRequest"
            },
            "description": "The Modules that make up the Set",
            "type": "object"
          },
          "shared": {
            "additionalProperties": true,
            "description": "Resources that are shared across the set",
            "type": "object"
          },
          "version": {
            "description": "The version of the Deployment Set Schema to use. (Currently, only 0 is supported, and if omitted, version 0 is assumed.)",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SetResponse": {
        "description": "A Deployment Set (or just \"Set\") defines all of the non-Environment specific configuration for Modules and External Resources. Each of these Modules or External Resources has a unique name.\n\nDeployment Sets are immutable and their ID is a cryptographic hash of their content. This means that a Deployment Set can be globally identified based on its ID. It also means that referencing a Deployment Set by ID will always return the same Deployment Set.\n\nDeployment Sets cannot be created directly, instead they are created by applying a Deployment Delta to an existing Deployment Set.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Set>,\n   \"modules\" : {\n     <ID of Module> : {\n       \"profile\": <Defines how the optional \"spec\" property is interpreted>\n       \"spec\": {\n         <Properties that depend on the \"profile\" property.>\n       }\n       \"externals\": {\n         <External Resource Name> : {\n           \"type\": <Resource Type>,\n           \"params\": {\n             <Properties which parametrize the resource depending on the Resource Type.>\n           }\n         }\n       }\n     }\n   }\n }\n```\n\nFor details about how the Humanitec provided profiles work, see (Deployment Set Profiles)[].",
        "example": {
          "modules": {
            "module-one": {
              "externals": {
                "db-one": {
                  "params": {
                    "extensions": {
                      "uuid-ossp": {}
                    }
                  },
                  "type": "postgres"
                }
              },
              "profile": "humanitec/default-module",
              "spec": {
                "containers": {
                  "core-service": {
                    "id": "core-service",
                    "image": "registry.humanitec.io/my-org/core-service:VERSION_ONE",
                    "readiness_probe": {
                      "path": "/healtz",
                      "port": 8080,
                      "type": "http"
                    },
                    "variables": {
                      "DBHOST": "${externals.db-one.name}",
                      "DBNAME": "${externals.db-one.name}",
                      "DBPASSWORD": "${externals.db-one.password}",
                      "DBUSERNAME": "${externals.db-one.username}",
                      "REDIS_URL": "redis://${modules.redis-cache.service.name}"
                    }
                  }
                }
              }
            },
            "redis-cache": {
              "profile": "humanitec/redis"
            }
          }
        },
        "properties": {
          "id": {
            "description": "The ID which is a hash of the content of the Deployment Set.",
            "type": "string"
          },
          "modules": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ModuleResponse"
            },
            "description": "The Modules that make up the Set",
            "type": "object"
          },
          "shared": {
            "additionalProperties": true,
            "description": "Resources that are shared across the set",
            "type": "object"
          },
          "version": {
            "description": "The version of the Deployment Set Schema to use. (Currently, only 0 is supported, and if omitted, version 0 is assumed.)",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "modules",
          "shared",
          "version"
        ],
        "type": "object"
      },
      "UpdateActionRequest": {
        "description": "A representation of the main object defined in JSON Patch specified in RFC 6902 from the IETF. The main differences are:\n\n* Only `add`, `remove` and `replace` are supported\n\n* `remove` can have have its scope of application applied in its `value`. e.g. `{\"scope\":\"delta\"}",
        "properties": {
          "from": {
            "type": "string"
          },
          "op": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "value": {
            "nullable": true
          }
        },
        "type": "object"
      },
      "UpdateActionResponse": {
        "description": "A representation of the main object defined in JSON Patch specified in RFC 6902 from the IETF. The main differences are:\n\n* Only `add`, `remove` and `replace` are supported\n\n* `remove` can have have its scope of application applied in its `value`. e.g. `{\"scope\":\"delta\"}",
        "properties": {
          "from": {
            "type": "string"
          },
          "op": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "op",
          "path"
        ],
        "type": "object"
      },
      "ResourceInputsResponse": {
        "description": "A payload needed to generate a resource graph.",
        "example": {
          "class": "cloudsql",
          "id": "shared.postgres",
          "resource": {
            "host": "127.0.0.1",
            "name": "my-database"
          },
          "type": "postgres"
        },
        "properties": {
          "id": {
            "description": "The Resource ID in the Deployment Set.",
            "type": "string"
          },
          "type": {
            "description": "The Resource type.",
            "type": "string"
          },
          "class": {
            "description": "The Resource class.",
            "type": "string"
          },
          "resource": {
            "description": "The Resource input parameters specified in the deployment set.",
            "additionalProperties": true,
            "type": "object"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EventBaseRequest": {
        "description": "Properties which identify an event .",
        "properties": {
          "scope": {
            "description": "Event scope",
            "type": "string"
          },
          "type": {
            "description": "Event type",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EventBaseResponse": {
        "description": "Properties which identify an event .",
        "properties": {
          "scope": {
            "description": "Event scope",
            "type": "string"
          },
          "type": {
            "description": "Event type",
            "type": "string"
          }
        },
        "required": [
          "scope",
          "type"
        ],
        "type": "object"
      },
      "EventResponse": {
        "description": "Events available for triggering automated jobs.",
        "properties": {
          "properties": {
            "description": "List of event properties which can be used as variables for this event",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "scope": {
            "description": "Event scope",
            "type": "string"
          },
          "type": {
            "description": "Event type",
            "type": "string"
          }
        },
        "required": [
          "scope",
          "type",
          "properties"
        ],
        "type": "object"
      },
      "JSONFieldRequest": {
        "additionalProperties": {},
        "type": "object"
      },
      "JSONFieldResponse": {
        "additionalProperties": {},
        "type": "object"
      },
      "WebhookRequest": {
        "description": "Webhook is a special type of a Job. It performs an HTTPS request to a specified URL with specified headers.",
        "properties": {
          "disabled": {
            "description": "Defines whether this job is currently disabled.",
            "nullable": true,
            "type": "boolean"
          },
          "headers": {
            "$ref": "#/components/schemas/JSONFieldRequest",
            "description": "The webhook's HTTP headers."
          },
          "id": {
            "description": "Job ID, unique within the Organization",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/JSONFieldRequest",
            "description": "The webhook's HTTP headers."
          },
          "triggers": {
            "description": "A list of Events by which the Job is triggered",
            "items": {
              "$ref": "#/components/schemas/EventBaseRequest"
            },
            "type": "array"
          },
          "url": {
            "description": "The webhook's URL (without protocol, only HTTPS is supported).",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "WebhookResponse": {
        "description": "Webhook is a special type of a Job. It performs an HTTPS request to a specified URL with specified headers.",
        "properties": {
          "created_at": {
            "description": "The timestamp of when this Job was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The user who created this Job",
            "type": "string"
          },
          "disabled": {
            "description": "Defines whether this job is currently disabled.",
            "nullable": true,
            "type": "boolean"
          },
          "headers": {
            "$ref": "#/components/schemas/JSONFieldResponse",
            "description": "The webhook's HTTP headers."
          },
          "id": {
            "description": "Job ID, unique within the Organization",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/JSONFieldResponse",
            "description": "The webhook's HTTP headers."
          },
          "triggers": {
            "description": "A list of Events by which the Job is triggered",
            "items": {
              "$ref": "#/components/schemas/EventBaseResponse"
            },
            "type": "array"
          },
          "url": {
            "description": "The webhook's URL (without protocol, only HTTPS is supported).",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "disabled",
          "triggers",
          "url",
          "headers",
          "payload"
        ],
        "type": "object"
      },
      "WebhookUpdateResponse": {
        "description": "Webhook is a special type of a Job. It performs an HTTPS request to a specified URL with specified headers.",
        "properties": {
          "disabled": {
            "description": "Defines whether this job is currently disabled.",
            "nullable": true,
            "type": "boolean"
          },
          "headers": {
            "$ref": "#/components/schemas/JSONFieldResponse",
            "description": "The webhook's HTTP headers."
          },
          "payload": {
            "$ref": "#/components/schemas/JSONFieldResponse",
            "description": "The webhook's HTTP headers."
          },
          "triggers": {
            "description": "A list of Events by which the Job is triggered",
            "items": {
              "$ref": "#/components/schemas/EventBaseResponse"
            },
            "nullable": true,
            "type": "array"
          },
          "url": {
            "description": "The webhook's URL (without protocol, only HTTPS is supported)",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "disabled",
          "triggers",
          "url",
          "headers",
          "payload"
        ],
        "type": "object"
      },
      "PublicKey": {
        "description": "PublicKey stores a Public Key an organization shares with Humanitec.",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "expired_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Date of key expiration.",
            "type": "string"
          },
          "fingerprint": {
            "description": "It's the hexadecimal representation of the sha256 hash of the DER representation of the key, it's computed and stored when a new key is uploaded.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "key",
          "created_at",
          "created_by",
          "expired_at",
          "fingerprint"
        ]
      },
      "HumanitecPublicKey": {
        "description": "HumanitecPublicKey stores a Public Key Humanitec shared with an organization.",
        "properties": {
          "pub_key": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          }
        },
        "required": [
          "pub_key",
          "active",
          "created_at"
        ]
      },
      "Jwk": {
        "description": "JSON Web Key",
        "type": "object",
        "properties": {
          "alg": {
            "type": "string"
          },
          "kty": {
            "type": "string"
          },
          "use": {
            "type": "string"
          },
          "x5c": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "n": {
            "type": "string"
          },
          "e": {
            "type": "string"
          },
          "kid": {
            "type": "string"
          },
          "x5t": {
            "type": "string"
          }
        },
        "required": [
          "alg",
          "kty",
          "use",
          "n",
          "e",
          "kid"
        ]
      },
      "OutputEntryResponse": {
        "description": "A container log entry.",
        "properties": {
          "container_id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "payload": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "workload_id": {
            "type": "string"
          }
        },
        "required": [
          "level",
          "payload",
          "timestamp",
          "workload_id",
          "container_id"
        ],
        "type": "object"
      },
      "LogoResponse": {
        "properties": {
          "dark_url": {
            "type": "string"
          },
          "light_url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OrganizationResponse": {
        "description": "An Organization is the top level object in Humanitec. All other objects belong to an Organization.",
        "properties": {
          "created_at": {
            "description": "Timestamp when the Organization was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "nullable": true,
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "description": "User ID that created the Organization.",
            "type": "string"
          },
          "id": {
            "description": "Unique ID for the Organization.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/LogoResponse",
            "description": "Organization logo details."
          },
          "name": {
            "description": "Human friendly name for the Organization.",
            "type": "string"
          },
          "trial_expires_at": {
            "description": "Timestamp the trial expires at.",
            "example": "2020-06-22T09:37:23.523Z",
            "nullable": true,
            "format": "date-time",
            "type": "string"
          },
          "scaffolding_url": {
            "description": "URL of the scaffolding service.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "created_at",
          "created_by",
          "trial_expires_at",
          "logo"
        ],
        "type": "object"
      },
      "Pipeline": {
        "description": "An object containing the details of a Pipeline.",
        "required": [
          "id",
          "etag",
          "org_id",
          "app_id",
          "name",
          "status",
          "version",
          "created_at",
          "trigger_types"
        ],
        "properties": {
          "id": {
            "description": "The id of the Pipeline.",
            "example": "sample-pipeline",
            "type": "string"
          },
          "etag": {
            "description": "The current entity tag value for this Pipeline.",
            "example": "1234567890abcdef",
            "type": "string"
          },
          "org_id": {
            "description": "The id of the Organization containing this Pipeline.",
            "example": "sample-org",
            "type": "string"
          },
          "app_id": {
            "description": "The id of the Application containing this Pipeline.",
            "example": "sample-app",
            "type": "string"
          },
          "name": {
            "description": "The name of the Pipeline.",
            "example": "Sample Pipeline",
            "type": "string"
          },
          "status": {
            "description": "The current status of the Pipeline.",
            "example": "active",
            "type": "string"
          },
          "version": {
            "description": "The unique id of the current Pipeline Version.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when the Pipeline was created.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "trigger_types": {
            "description": "The list of trigger types in the current schema.",
            "example": [
              "pipeline_call"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "description": "The map of key value pipeline additional information",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PipelineVersion": {
        "description": "An object containing the details of a Pipeline.",
        "required": [
          "id",
          "org_id",
          "app_id",
          "pipeline_id",
          "created_by",
          "created_at"
        ],
        "properties": {
          "id": {
            "description": "The unique id of the current Pipeline Version.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "org_id": {
            "description": "The id of the Organization containing this Run.",
            "example": "sample-org",
            "type": "string"
          },
          "app_id": {
            "description": "The id of the Application containing this Run.",
            "example": "sample-app",
            "type": "string"
          },
          "pipeline_id": {
            "description": "The id of the Pipeline associated with the Run.",
            "example": "sample-pipeline",
            "type": "string"
          },
          "created_by": {
            "description": "User id of the pipeline version.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when the specific pipeline version was created.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PipelineCriteriaCreateBody": {
        "required": [
          "trigger"
        ],
        "properties": {
          "trigger": {
            "description": "The trigger to call",
            "type": "string",
            "example": "deployment_request"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/PipelineDeploymentRequestCriteriaCreateBody"
          }
        ],
        "discriminator": {
          "propertyName": "trigger",
          "mapping": {
            "deployment_request": "#/components/schemas/PipelineDeploymentRequestCriteriaCreateBody"
          }
        }
      },
      "PipelineDeploymentRequestCriteriaCreateBody": {
        "description": "The details required to create a new deployment request matching criteria for a Pipeline.",
        "type": "object",
        "properties": {
          "env_type": {
            "description": "The Environment Type that this criteria will match. If defined, this criteria will only apply to Environments that have this type.\n",
            "type": "string",
            "example": "development"
          },
          "app_id": {
            "description": "The id of the Application for which this criteria matches. If this Pipeline is defined in an Application, then this value can only be null or the id of the Application.\n",
            "type": "string",
            "example": "my-application"
          },
          "env_id": {
            "description": "The exact id of the Environment which this criteria will match.\n",
            "type": "string",
            "example": "my-environment"
          },
          "deployment_type": {
            "description": "The type of deployment that this criteria will match. Valid values are \"deploy\" and \"redeploy\". \"redeploy\"  applies only to deployment request to redeploy a previous deployment id while \"deploy\" will apply to all other requests that include a Delta or Deployment Set. If not defined, all deployment types will match.\n",
            "type": "string",
            "example": "deploy"
          }
        }
      },
      "PipelineCriteria": {
        "required": [
          "trigger",
          "id",
          "pipeline_id",
          "pipeline_name"
        ],
        "properties": {
          "trigger": {
            "description": "The trigger to call",
            "type": "string",
            "example": "deployment_request"
          },
          "id": {
            "description": "The unique id of the criteria within this Pipeline.",
            "type": "string",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "pipeline_id": {
            "description": "The id of the Pipeline tied to this deployment request criteria.",
            "type": "string",
            "example": "sample-pipeline"
          },
          "pipeline_name": {
            "description": "The current display name of the Pipeline.",
            "type": "string",
            "example": "Sample Pipeline"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/PipelineDeploymentRequestCriteria"
          }
        ],
        "discriminator": {
          "propertyName": "trigger",
          "mapping": {
            "deployment_request": "#/components/schemas/PipelineDeploymentRequestCriteria"
          }
        }
      },
      "PipelineDeploymentRequestCriteria": {
        "description": "A deployment request matching criteria for a Pipeline.",
        "type": "object",
        "required": [
          "trigger",
          "id",
          "pipeline_id",
          "pipeline_name"
        ],
        "properties": {
          "trigger": {
            "description": "The trigger to call",
            "type": "string",
            "example": "deployment_request"
          },
          "id": {
            "description": "The unique id of the criteria within this Pipeline.",
            "type": "string",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "pipeline_id": {
            "description": "The id of the Pipeline tied to this deployment request criteria.",
            "type": "string",
            "example": "sample-pipeline"
          },
          "pipeline_name": {
            "description": "The current display name of the Pipeline.",
            "type": "string",
            "example": "Sample Pipeline"
          },
          "env_type": {
            "description": "The Environment Type that this criteria will match. If defined, this criteria will only apply to Environments that have this type.\n",
            "type": "string",
            "example": "development"
          },
          "app_id": {
            "description": "The id of the Application for which this criteria matches. If this Pipeline is defined in an Application, then this value can only be null or the id of the Application.\n",
            "type": "string",
            "example": "my-application"
          },
          "env_id": {
            "description": "The exact id of the Environment which this criteria will match.\n",
            "type": "string",
            "example": "my-environment"
          },
          "deployment_type": {
            "description": "The type of deployment that this criteria will match. Valid values are \"deploy\" and \"redeploy\". \"redeploy\"  applies only to deployment request to redeploy a previous deployment id while \"deploy\" will apply to all other requests that include a Delta or Deployment Set. If not defined, all deployment types will match.\n",
            "type": "string",
            "example": "deploy"
          }
        }
      },
      "PipelineRun": {
        "description": "Details of a Run within the Pipeline.",
        "required": [
          "id",
          "etag",
          "org_id",
          "app_id",
          "env_ids",
          "pipeline_id",
          "pipeline_version",
          "status",
          "status_message",
          "created_at",
          "created_by",
          "timeout_seconds",
          "trigger",
          "inputs",
          "run_as",
          "waiting_for"
        ],
        "properties": {
          "id": {
            "description": "The unique id of the Run.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "etag": {
            "description": "The current entity tag value for this Run.",
            "example": "1234567890abcdef",
            "type": "string"
          },
          "org_id": {
            "description": "The id of the Organization containing this Run.",
            "example": "sample-org",
            "type": "string"
          },
          "app_id": {
            "description": "The id of the Application containing this Run.",
            "example": "sample-app",
            "type": "string"
          },
          "env_ids": {
            "description": "Environments linked to this Pipeline Run through input parameters or step executions.",
            "example": [
              "development"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pipeline_id": {
            "description": "The id of the Pipeline associated with the Run.",
            "example": "sample-pipeline",
            "type": "string"
          },
          "pipeline_version": {
            "description": "The id of the Pipeline Version associated with the Run.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "status": {
            "description": "The current status of this Run.",
            "example": "executing",
            "type": "string"
          },
          "status_message": {
            "description": "A human-readable message indicating the reason for the status.",
            "example": "Example text",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when this Run was first created.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "description": "User id that created or triggered the Run.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "executing_at": {
            "description": "The date and time when this Run entered executing status.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "cancellation_requested_at": {
            "description": "The date and time when cancellation of this Run was requested.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "description": "The date and time when this Run entered a successful, failed, or cancelled status.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "timeout_seconds": {
            "description": "The timeout for this Run.",
            "example": 3600,
            "type": "integer"
          },
          "trigger": {
            "description": "The trigger type that was triggered this Run to start.",
            "example": "pipeline_call",
            "type": "string"
          },
          "inputs": {
            "description": "The inputs that were provided for this Run.",
            "example": {
              "fizz": "buzz"
            },
            "type": "object",
            "additionalProperties": true
          },
          "run_as": {
            "description": "The user id that the pipeline run is executing as when it calls Humanitec APIs.",
            "type": "string",
            "example": "s-01234567-89ab-cdef-0123-456789abcdef"
          },
          "concurrency_group": {
            "description": "The optional concurrency group for this run within the application",
            "type": "string",
            "example": "my-group"
          },
          "waiting_for": {
            "description": "Aggregated events on which run's jobs are waiting for",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PipelineRunCreateBody": {
        "description": "The parameters for creating a new Run for the Pipeline.",
        "required": [
          "inputs"
        ],
        "properties": {
          "inputs": {
            "description": "The inputs provided for this Run.",
            "example": {
              "fizz": "buzz"
            },
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PipelineRunCreateByTriggerCriteriaBody": {
        "description": "The parameters for creating a new Run based on trigger and inputs.",
        "required": [
          "trigger"
        ],
        "properties": {
          "trigger": {
            "description": "The trigger to call",
            "type": "string",
            "example": "deployment_request"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/PipelineRunCreateByDeploymentRequestCriteriaBody"
          }
        ],
        "discriminator": {
          "propertyName": "trigger",
          "mapping": {
            "deployment_request": "#/components/schemas/PipelineRunCreateByDeploymentRequestCriteriaBody"
          }
        }
      },
      "PipelineRunCreateByDeploymentRequestCriteriaBody": {
        "description": "Trigger the pipeline that has a deployment_request trigger and criteria that match this target environment. If \"delta_id\" or \"set_id\" is provided, the matching criteria must support deployment type \"deploy\". If \"deployment_id\" is provided, the matching criteria must support deployment type \"re-deploy\".\nWhen \"delta_id\" is provided, the inputs to the Pipeline Run will be \"env_id\", \"comment\", \"delta_id\" and \"value_set_version_id\" if provided. When \"deployment_id\" is provided, the inputs to the Pipeline Run will be \"env_id\", \"comment\", \"deployment_id\", with \"set_id\", \"value_set_version_id\" being retrieved from the deployment itself. When \"set_id\" is provided, the inputs to the Pipeline Run will be \"env_id\", \"comment\", \"set_id\", and \"value_set_version_id\" if provided. \"mode\" is included as an input whenever it is provided.\n",
        "properties": {
          "env_id": {
            "description": "The target environment within the Application to deploy to.",
            "type": "string"
          },
          "environment": {
            "description": "The target environment within the Application to deploy to.",
            "type": "string",
            "deprecated": true
          },
          "delta_id": {
            "description": "A deployment delta to apply to the target environment. This delta must already exist. This field is mutually exclusive with \"deployment_id\" and \"set_id\".",
            "type": "string"
          },
          "deployment_id": {
            "description": "An existing deployment to redeploy into the target environment. The deployment set and value set will be copied. This field is mutually exclusive with \"delta_id\" and \"set_id\".",
            "type": "string"
          },
          "set_id": {
            "description": "A direct deployment set to apply to the target environment. This deployment set must already exist. This field is mutually exclusive with \"delta_id\" and \"set_id\".",
            "type": "string"
          },
          "value_set_version_id": {
            "description": "The exact value set version to use when deploying to the target environment. This value set version must exist. This field can only be used when \"delta_id\" or \"set_id\" is specified.",
            "type": "string"
          },
          "comment": {
            "description": "An optional comment to apply to the Deployment.",
            "type": "string"
          },
          "mode": {
            "description": "An optional deployment mode to apply to the Deployment. The set of allowed values is defined and validated by the deployment API.",
            "type": "string"
          }
        },
        "example": {
          "trigger": "deployment_request",
          "env_id": "development",
          "delta_id": "0123456789abcdef0123456789abcdef01234567",
          "comment": "My deployment"
        }
      },
      "PipelineJobPartial": {
        "description": "Partial details of a Job within the Run. The full details, including steps, can be retrieved using the GetPipelineJob operation.",
        "required": [
          "id",
          "name",
          "etag",
          "org_id",
          "app_id",
          "pipeline_id",
          "pipeline_version",
          "run_id",
          "status",
          "status_message",
          "created_at",
          "updated_at",
          "timeout_seconds"
        ],
        "properties": {
          "id": {
            "description": "The id of the Job within the Run.",
            "example": "my-job",
            "type": "string"
          },
          "etag": {
            "description": "The current entity tag value for this Job.",
            "example": "1234567890abcdef",
            "type": "string"
          },
          "org_id": {
            "description": "The id of the Organization containing this Job.",
            "example": "sample-org",
            "type": "string"
          },
          "app_id": {
            "description": "The id of the Application containing this Job.",
            "example": "sample-app",
            "type": "string"
          },
          "pipeline_id": {
            "description": "The id of the Pipeline.",
            "example": "sample-pipeline",
            "type": "string"
          },
          "pipeline_version": {
            "description": "The id of the Pipeline Version associated with the Run.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "run_id": {
            "description": "The id of the Run containing this Job.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "status": {
            "description": "The current status of this Job.",
            "example": "executing",
            "type": "string"
          },
          "waiting_for": {
            "description": "An event on which job is waiting",
            "type": "string",
            "example": "application.environment.deployment(test-deployment-id)"
          },
          "status_message": {
            "description": "A human-readable message indicating the reason for the status.",
            "example": "Example text",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when this Job was first created within the Run.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "description": "The date and time when this Job was updated while executing.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "cancellation_requested_at": {
            "description": "The date and time when cancellation of this Job was requested.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "description": "The date and time when this Job entered a successful, failed, or cancelled status.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "timeout_seconds": {
            "description": "The timeout for this Job.",
            "example": 3600,
            "type": "integer"
          }
        }
      },
      "PipelineJob": {
        "description": "A response containing all of the details of an executing or completed Job including Step information.",
        "allOf": [
          {
            "$ref": "#/components/schemas/PipelineJobPartial"
          },
          {
            "required": [
              "steps"
            ],
            "properties": {
              "steps": {
                "description": "The collection of Steps that completed along with the current Step being executed.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PipelineStep"
                }
              }
            }
          }
        ]
      },
      "PipelineStep": {
        "description": "A Step within a Job.",
        "required": [
          "index",
          "name",
          "uses",
          "status",
          "status_message",
          "created_at",
          "timeout_seconds",
          "related_entities"
        ],
        "properties": {
          "index": {
            "description": "The index of the Step within the Pipeline Schema.",
            "type": "integer"
          },
          "name": {
            "description": "The name of the step or a generated default.",
            "type": "string"
          },
          "uses": {
            "description": "The action used by this step.",
            "type": "string"
          },
          "status": {
            "description": "The current status of this Step within the Job.",
            "example": "executing",
            "type": "string"
          },
          "status_message": {
            "description": "A human-readable message indicating the reason for the status.",
            "example": "Example text",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when this Step was first created within the Job.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "description": "The date and time when this Step entered a successful, failed, or cancelled status.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "timeout_seconds": {
            "description": "The timeout for this Step.",
            "example": 3600,
            "type": "integer"
          },
          "related_entities": {
            "description": "A map of related object ids that this step created or interacted with.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "example": {
              "env_id": "my-environment",
              "deployment_id": "0123456789abcdef"
            }
          }
        }
      },
      "PipelineStepLog": {
        "description": "An item from the logs of a Step.",
        "required": [
          "at",
          "level",
          "message"
        ],
        "properties": {
          "at": {
            "description": "The date and time when this message was emitted or captured.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "level": {
            "description": "The log level of the message.",
            "example": "INFO",
            "type": "string"
          },
          "message": {
            "description": "The content of the message.",
            "example": "Example message",
            "type": "string"
          }
        }
      },
      "PipelineApprovalRequest": {
        "description": "An approval object",
        "required": [
          "id",
          "org_id",
          "app_id",
          "pipeline_id",
          "run_id",
          "job_id",
          "env_id",
          "message",
          "created_at",
          "status"
        ],
        "properties": {
          "id": {
            "description": "The id of the approval object.",
            "type": "string"
          },
          "org_id": {
            "description": "The id of the Organization.",
            "example": "sample-org",
            "type": "string"
          },
          "app_id": {
            "description": "The id of the Application.",
            "example": "sample-app",
            "type": "string"
          },
          "pipeline_id": {
            "description": "The id of the Pipeline.",
            "example": "sample-pipeline",
            "type": "string"
          },
          "run_id": {
            "description": "The id of the Pipeline's Run.",
            "example": "01234567-89ab-cdef-0123-456789abcdef",
            "type": "string"
          },
          "job_id": {
            "description": "The id of the Run's Job.",
            "example": "deploy",
            "type": "string"
          },
          "env_id": {
            "description": "The environment for which the approver needs to have deploy permission to approve the job.",
            "example": "production",
            "type": "string"
          },
          "message": {
            "description": "A human-readable message indicating the reason for approval.",
            "example": "Promoting app to production",
            "type": "string"
          },
          "created_at": {
            "description": "The date and time when the approval request was created.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "The current status of the approval request.",
            "example": "waiting",
            "type": "string",
            "enum": [
              "waiting",
              "approved",
              "denied",
              "cancelled"
            ]
          },
          "approved_by": {
            "description": "The user who approved or denied the request.",
            "type": "string",
            "example": "0123456789ab-cdef-0123-456789abcdef"
          },
          "approved_at": {
            "description": "The date and time when the request was approved or denied.",
            "example": "2023-01-01T00:00:00Z",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Batch": {
        "description": "A batch of items that are being collected for a upcoming run.",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "description": "The list of item ids that are currently contained in this batch.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BatchItem"
            }
          },
          "scheduled_at": {
            "description": "The time at which this batch is scheduled to trigger the pipeline.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BatchItem": {
        "type": "object",
        "required": [
          "type",
          "ref"
        ],
        "properties": {
          "type": {
            "description": "The type of item in the batch",
            "type": "string"
          },
          "ref": {
            "description": "The reference id of the item",
            "type": "string"
          }
        }
      },
      "AccountCredsRequest": {
        "description": "AccountCreds represents an account credentials (either, username- or token-based).",
        "example": {
          "expires": "2020-05-22T14:53:27Z",
          "password": "",
          "username": ""
        },
        "properties": {
          "expires": {
            "description": "Account credentials expiration timestamp.",
            "example": "2020-06-22T09:37:23.523Z",
            "nullable": true,
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "password": {
            "description": "Account password or token secret.",
            "type": "string"
          },
          "username": {
            "description": "Security account login or token.",
            "type": "string"
          }
        },
        "required": [
          "username",
          "password"
        ],
        "type": "object"
      },
      "ClusterSecretRequest": {
        "description": "ClusterSecret represents Kubernetes secret reference.",
        "example": {
          "namespace": "dev-secrets",
          "secret": "custom-regcred"
        },
        "properties": {
          "namespace": {
            "description": "Namespace to look for the Kubernetes secret definition in.",
            "type": "string"
          },
          "secret": {
            "description": "Name that identifies the Kubernetes secret.",
            "type": "string"
          }
        },
        "required": [
          "namespace",
          "secret"
        ],
        "type": "object"
      },
      "ClusterSecretResponse": {
        "description": "ClusterSecret represents Kubernetes secret reference.",
        "example": {
          "namespace": "dev-secrets",
          "secret": "custom-regcred"
        },
        "properties": {
          "namespace": {
            "description": "Namespace to look for the Kubernetes secret definition in.",
            "type": "string"
          },
          "secret": {
            "description": "Name that identifies the Kubernetes secret.",
            "type": "string"
          }
        },
        "required": [
          "namespace",
          "secret"
        ],
        "type": "object"
      },
      "ClusterSecretsMapRequest": {
        "additionalProperties": {
          "$ref": "#/components/schemas/ClusterSecretRequest"
        },
        "description": "ClusterSecretsMap stores a list of Kuberenetes secret references for the target deployment clusters.",
        "example": {
          "*": {
            "namespace": "dev-secrets",
            "secret": "custom-regcred"
          },
          "cluster-A": {
            "namespace": "prod-secrets",
            "secret": "custom-regcred"
          }
        },
        "type": "object"
      },
      "ClusterSecretsMapResponse": {
        "additionalProperties": {
          "$ref": "#/components/schemas/ClusterSecretResponse"
        },
        "description": "ClusterSecretsMap stores a list of Kuberenetes secret references for the target deployment clusters.",
        "example": {
          "*": {
            "namespace": "dev-secrets",
            "secret": "custom-regcred"
          },
          "cluster-A": {
            "namespace": "prod-secrets",
            "secret": "custom-regcred"
          }
        },
        "type": "object"
      },
      "ErrorInfoResponse": {
        "description": "ErrorInfo is returned by a handler in case of an error.",
        "properties": {
          "error": {
            "description": "An error details",
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "ImagesRegistryCredsRequest": {
        "description": "ImagesRegistryCreds stores registry credentials details alongside with associated images.",
        "properties": {
          "images": {
            "description": "List of images associated with the registry.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "registry": {
            "description": "Registry name, usually in a \"{domain}\" or \"{domain}/{project}\" format.",
            "type": "string"
          },
          "secrets": {
            "$ref": "#/components/schemas/ClusterSecretsMapRequest",
            "description": "A list of Kuberenetes secret references for the target deployment clusters."
          }
        },
        "required": [
          "registry",
          "images"
        ],
        "type": "object"
      },
      "ImagesRegistryCredsResponse": {
        "description": "ImagesRegistryCreds stores registry credentials details alongside with associated images.",
        "properties": {
          "images": {
            "description": "List of images associated with the registry.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "registry": {
            "description": "Registry name, usually in a \"{domain}\" or \"{domain}/{project}\" format.",
            "type": "string"
          },
          "secrets": {
            "$ref": "#/components/schemas/ClusterSecretsMapResponse",
            "description": "A list of Kuberenetes secret references for the target deployment clusters."
          }
        },
        "required": [
          "registry",
          "secrets",
          "images"
        ],
        "type": "object"
      },
      "RegistryCredsResponse": {
        "description": "RegistryCreds represents current registry credentials (either, username- or token-based).",
        "example": {
          "expires": "2020-05-22T14:53:27Z",
          "password": "",
          "registry": "registry.io/project",
          "secrets": {
            "*": {
              "namespace": "dev-secrets",
              "secret": "custom-regcred"
            },
            "cluster-A": {
              "namespace": "prod-secrets",
              "secret": "custom-regcred"
            }
          },
          "username": ""
        },
        "properties": {
          "expires": {
            "description": "Account credentials expiration timestamp.",
            "example": "2020-06-22T09:37:23.523Z",
            "nullable": true,
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "password": {
            "description": "Account password or token secret.",
            "type": "string"
          },
          "registry": {
            "description": "Registry name, usually in a \"{domain}\" or \"{domain}/{project}\" format.",
            "type": "string"
          },
          "secrets": {
            "$ref": "#/components/schemas/ClusterSecretsMapResponse",
            "description": "A list of Kuberenetes secret references for the target deployment clusters."
          },
          "username": {
            "description": "Security account login or token.",
            "type": "string"
          }
        },
        "required": [
          "registry"
        ],
        "type": "object"
      },
      "RegistryRequest": {
        "description": "Humanitec can be used to manage registry credentials. The Registry object represents how to match credentials to a particular registry.\n\nHumanitec supports all Docker compatible registries as well as the custom authentication formats used by AWS Elastic Container Registry and Google Container Registry. It also supports the injection of a specific secret to be copied from an existing namespace in the cluster.",
        "example": {
          "created_at": "2020-05-22T14:53:27Z",
          "created_by": "a.user@example.com",
          "enable_ci": false,
          "id": "humanitec",
          "registry": "registry.humanitec.io",
          "secrets": {
            "*": {
              "namespace": "dev-secrets",
              "secret": "custom-regcred"
            },
            "cluster-A": {
              "namespace": "prod-secrets",
              "secret": "custom-regcred"
            }
          },
          "type": "basic"
        },
        "properties": {
          "creds": {
            "$ref": "#/components/schemas/AccountCredsRequest",
            "description": "Registry security account credentials."
          },
          "enable_ci": {
            "description": "Indicates if registry secrets and credentials should be exposed to CI agents.",
            "type": "boolean"
          },
          "id": {
            "description": "Registry ID, unique within the Organization.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "registry": {
            "description": "Registry name, usually in a \"{domain}\" or \"{domain}/{project}\" format.",
            "type": "string"
          },
          "secrets": {
            "$ref": "#/components/schemas/ClusterSecretsMapRequest",
            "description": "Secrets stores references to the Kubernetes secret objects to be copied to the target clusters, identified by the map key."
          },
          "type": {
            "description": "Registry type, describes the registry authentication method, and defines the schema for the credentials.\n\nSupported values:\n\n- `public`\n\n- `basic`\n\n- `google_gcr`\n\n- `amazon_ecr`\n\n- `secret_ref`",
            "type": "string"
          }
        },
        "required": [
          "id",
          "registry",
          "type"
        ],
        "type": "object"
      },
      "RegistryResponse": {
        "description": "Humanitec can be used to manage registry credentials. The Registry object represents how to match credentials to a particular registry.\n\nHumanitec supports all Docker compatible registries as well as the custom authentication formats used by AWS Elastic Container Registry and Google Container Registry. It also supports the injection of a specific secret to be copied from an existing namespace in the cluster.",
        "example": {
          "created_at": "2020-05-22T14:53:27Z",
          "created_by": "a.user@example.com",
          "enable_ci": false,
          "id": "humanitec",
          "registry": "registry.humanitec.io",
          "secrets": {
            "*": {
              "namespace": "dev-secrets",
              "secret": "custom-regcred"
            },
            "cluster-A": {
              "namespace": "prod-secrets",
              "secret": "custom-regcred"
            }
          },
          "type": "basic"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp of when this record was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "nullable": true,
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The user who created this record.",
            "type": "string"
          },
          "enable_ci": {
            "description": "Indicates if registry secrets and credentials should be exposed to CI agents.",
            "type": "boolean"
          },
          "id": {
            "description": "Registry ID, unique within the Organization.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "registry": {
            "description": "Registry name, usually in a \"{domain}\" or \"{domain}/{project}\" format.",
            "type": "string"
          },
          "secrets": {
            "$ref": "#/components/schemas/ClusterSecretsMapResponse",
            "description": "Secrets stores references to the Kubernetes secret objects to be copied to the target clusters, identified by the map key."
          },
          "type": {
            "description": "Registry type, describes the registry authentication method, and defines the schema for the credentials.\n\nSupported values:\n\n- `public`\n\n- `basic`\n\n- `google_gcr`\n\n- `amazon_ecr`\n\n- `secret_ref`",
            "type": "string"
          }
        },
        "required": [
          "id",
          "registry",
          "type",
          "enable_ci"
        ],
        "type": "object"
      },
      "AccountTypeRequest": {
        "description": "Resource Account Types define cloud providers or protocols to which a resource account can belong.",
        "example": {
          "name": "GCP",
          "type": "gcp"
        },
        "properties": {
          "name": {
            "description": "Display Name.",
            "type": "string"
          },
          "type": {
            "description": "Unique account type identifier (system-wide, across all organizations).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific parameters for the account credentials (input).",
            "type": "object"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific data of returned account credentials (output).",
            "type": "object"
          }
        },
        "type": "object",
        "required": [
          "type",
          "name"
        ],
        "additionalProperties": false
      },
      "AccountTypeResponse": {
        "description": "Resource Account Types define cloud providers or protocols to which a resource account can belong.",
        "example": {
          "name": "GCP",
          "type": "gcp"
        },
        "properties": {
          "name": {
            "description": "Display Name.",
            "type": "string"
          },
          "type": {
            "description": "Unique account type identifier (system-wide, across all organizations).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific parameters for the account credentials (input).",
            "type": "object"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific data of returned account credentials (output).",
            "type": "object"
          }
        },
        "required": [
          "type",
          "name"
        ],
        "type": "object"
      },
      "ActiveResourceRequest": {
        "description": "Active Resources represent the concrete resources provisioned for an Environment. They are provisioned on the first deployment after a dependency on a particular resource type is introduced into an Environment. In general, Active Resources are only deleted when their introductory Environment is deleted.\n\nActive Resources are provisioned based on a Resource Definition. The Resource Definition describes how to provision a concrete resource based on a Resource Type and metadata about the Environment (for example the Environment Type or the Application ID). The criteria for how to choose a Resource Definition is known as a Matching Criteria. If the Matching Criteria changes or the Resource Definition is deleted, the concrete resource represented by an Active Resource might be deleted and reprovisioned when a deployment occurs in the Environment.",
        "example": {
          "app_id": "test-app",
          "class": "default",
          "def_id": "gcp-dev-postgres",
          "def_version_id": "01234567-89ab-cdef-0123-4567890abcdef",
          "deploy_id": "172a1013b",
          "env_id": "gcp-dev",
          "env_type": "development",
          "gu_res_id": "7bd3966c9ff8eaa66c5cce855c03d715857c3440",
          "org_id": "test-org",
          "res_id": "modules.my-module.externals.my-db",
          "resource": {
            "host": "127.0.0.1",
            "name": "db_33c7ef9b_8d90-4c62_a1cf_0cdd30fd29a9",
            "port": 5432
          },
          "secret_refs": {
            "credentials": "orgs/test-org/resources/7bd3966c9ff8eaa66c5cce855c03d715857c3440/secrets/.credentials"
          },
          "type": "postgres",
          "updated_at": "2020-06-23T16:53:12Z"
        },
        "properties": {
          "app_id": {
            "description": "The ID of the App the resource is associated with.",
            "type": "string"
          },
          "class": {
            "description": "The Resource Class of the resource",
            "type": "string"
          },
          "criteria_id": {
            "description": "The Matching Criteria ID.",
            "type": "string"
          },
          "def_id": {
            "description": "The Resource Definition that this resource was provisioned from.",
            "type": "string"
          },
          "def_version_id": {
            "description": "The Resource Definition Version that this resource was provisioned from.",
            "type": "string"
          },
          "deploy_id": {
            "description": "The deployment that the resource was last provisioned in.",
            "type": "string"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "type": "string"
          },
          "driver_type": {
            "description": "The driver to be used to create the resource.",
            "type": "string"
          },
          "env_id": {
            "description": "The ID of the Environment the resource is associated with.",
            "type": "string"
          },
          "env_type": {
            "description": "The Environment Type of the Environment specified by env_id.",
            "type": "string"
          },
          "gu_res_id": {
            "description": "Globally unique resource id",
            "type": "string"
          },
          "org_id": {
            "description": "the ID of the Organization the Active Resource is associated with.",
            "type": "string"
          },
          "res_id": {
            "description": "The ID of the resource",
            "type": "string"
          },
          "resource": {
            "additionalProperties": true,
            "description": "The resource provisioning outputs ('values' only).",
            "type": "object"
          },
          "scheduled_deletion": {
            "description": "Deletion is scheduled for this resource.",
            "type": "boolean"
          },
          "secret_refs": {
            "additionalProperties": true,
            "description": "Secret references from the resource provisioning output.",
            "type": "object"
          },
          "status": {
            "description": "Current resource status: 'pending', 'active', or 'deleting'.",
            "type": "string"
          },
          "type": {
            "description": "The Resource Type of the resource",
            "type": "string"
          },
          "updated_at": {
            "description": "The time the resource was last provisioned as part of a deployment.",
            "example": "2020-06-22T09:37:23.523Z",
            "type": "string",
            "format": "date-time"
          },
          "provisioned_internally": {
            "description": "Indicates if a resource was provisioned internally (default to false)",
            "type": "boolean"
          }
        },
        "type": "object",
        "required": [
          "org_id",
          "app_id",
          "env_id",
          "env_type",
          "res_id",
          "def_id",
          "type",
          "driver_type",
          "class",
          "status",
          "resource",
          "updated_at",
          "deploy_id",
          "gu_res_id",
          "def_version_id"
        ]
      },
      "ActiveResourceResponse": {
        "description": "Active Resources represent the concrete resources provisioned for an Environment. They are provisioned on the first deployment after a dependency on a particular resource type is introduced into an Environment. In general, Active Resources are only deleted when their introductory Environment is deleted.\n\nActive Resources are provisioned based on a Resource Definition. The Resource Definition describes how to provision a concrete resource based on a Resource Type and metadata about the Environment (for example the Environment Type or the Application ID). The criteria for how to choose a Resource Definition is known as a Matching Criteria. If the Matching Criteria changes or the Resource Definition is deleted, the concrete resource represented by an Active Resource might be deleted and reprovisioned when a deployment occurs in the Environment.",
        "example": {
          "app_id": "test-app",
          "class": "default",
          "def_id": "gcp-dev-postgres",
          "def_version_id": "01234567-89ab-cdef-0123-4567890abcdef",
          "deploy_id": "172a1013b",
          "env_id": "gcp-dev",
          "env_type": "development",
          "gu_res_id": "7bd3966c9ff8eaa66c5cce855c03d715857c3440",
          "org_id": "test-org",
          "res_id": "modules.my-module.externals.my-db",
          "resource": {
            "host": "127.0.0.1",
            "name": "db_33c7ef9b_8d90-4c62_a1cf_0cdd30fd29a9",
            "port": 5432
          },
          "secret_refs": {
            "credentials": "orgs/test-org/resources/7bd3966c9ff8eaa66c5cce855c03d715857c3440/secrets/.credentials"
          },
          "type": "postgres",
          "updated_at": "2020-06-23T16:53:12Z"
        },
        "properties": {
          "app_id": {
            "description": "The ID of the App the resource is associated with.",
            "type": "string"
          },
          "class": {
            "description": "The Resource Class of the resource",
            "type": "string"
          },
          "criteria_id": {
            "description": "The Matching Criteria ID.",
            "type": "string"
          },
          "def_id": {
            "description": "The Resource Definition that this resource was provisioned from.",
            "type": "string"
          },
          "def_version_id": {
            "description": "The Resource Definition Version that this resource was provisioned from.",
            "type": "string"
          },
          "target_def_version_id": {
            "description": "The Resource Definition Version pinned to this resource to be provisioned from.",
            "type": "string"
          },
          "deploy_id": {
            "description": "The deployment that the resource was last provisioned in.",
            "type": "string"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "type": "string"
          },
          "driver_type": {
            "description": "The driver to be used to create the resource.",
            "type": "string"
          },
          "env_id": {
            "description": "The ID of the Environment the resource is associated with.",
            "type": "string"
          },
          "env_type": {
            "description": "The Environment Type of the Environment specified by env_id.",
            "type": "string"
          },
          "gu_res_id": {
            "description": "Globally unique resource id",
            "type": "string"
          },
          "org_id": {
            "description": "the ID of the Organization the Active Resource is associated with.",
            "type": "string"
          },
          "res_id": {
            "description": "The ID of the resource",
            "type": "string"
          },
          "resource": {
            "additionalProperties": true,
            "description": "The resource provisioning outputs ('values' only).",
            "type": "object"
          },
          "scheduled_deletion": {
            "description": "Deletion is scheduled for this resource.",
            "type": "boolean"
          },
          "secret_refs": {
            "additionalProperties": true,
            "description": "Secret references from the resource provisioning output.",
            "type": "object"
          },
          "status": {
            "description": "Current resource status: 'pending', 'active', or 'deleting'.",
            "type": "string"
          },
          "type": {
            "description": "The Resource Type of the resource",
            "type": "string"
          },
          "updated_at": {
            "description": "The time the resource was last provisioned as part of a deployment.",
            "example": "2020-06-22T09:37:23.523Z",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "org_id",
          "app_id",
          "env_id",
          "env_type",
          "res_id",
          "def_id",
          "def_version_id",
          "type",
          "driver_type",
          "class",
          "status",
          "resource",
          "secret_refs",
          "updated_at",
          "deploy_id",
          "gu_res_id",
          "scheduled_deletion"
        ],
        "type": "object"
      },
      "ActiveResourceTargetDefinitionRequest": {
        "description": "An active resource can be pinned to a certain version of the resource definition, then the resource is provisioned with this version.",
        "example": {
          "target_def_version_id": "01234567-89ab-cdef-0123-4567890abcdef"
        },
        "properties": {
          "target_def_version_id": {
            "description": "The Resource Definition Version pinned to this resource to be provisioned from.",
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "target_def_version_id"
        ]
      },
      "CreateDriverRequestRequest": {
        "description": "CreateDriverRequest describes the new resource driver registration request.",
        "example": {
          "account_types": [
            "gcp",
            "aws"
          ],
          "id": "route53",
          "inputs_schema": {},
          "is_public": false,
          "target": "https://drivers.example.com/route53/",
          "template": "",
          "type": "dns"
        },
        "properties": {
          "account_types": {
            "description": "List of resources accounts types supported by the driver",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID for this driver. Is used as `driver_type`.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the driver-specific input parameters.",
            "type": "object"
          },
          "target": {
            "description": "The prefix where the driver resides or, if the driver is a virtual driver, the reference to an existing driver using the `driver://` schema of the format `driver://{orgId}/{driverId}`. Only members of the organization the driver belongs to can see 'target'.",
            "type": "string"
          },
          "template": {
            "description": "If the driver is a virtual driver, template defines a Go template that converts the driver inputs supplied in the resource definition into the driver inputs for the target driver."
          },
          "type": {
            "description": "The type of resource produced by this driver",
            "type": "string"
          },
          "is_public": {
            "type": "boolean",
            "deprecated": true
          }
        },
        "required": [
          "id",
          "type",
          "target",
          "inputs_schema",
          "account_types"
        ],
        "type": "object"
      },
      "CreateResourceAccountRequestRequest": {
        "description": "CreateResourceAccountRequest describes the request to create a new security account.",
        "example": {
          "credentials": {
            "password": "***",
            "username": "***"
          },
          "id": "gcp-dev-postgres",
          "name": "GCP Dev Postgres",
          "type": "gcp-service-account"
        },
        "properties": {
          "credentials": {
            "additionalProperties": true,
            "description": "Credentials associated with the account.",
            "type": "object"
          },
          "id": {
            "description": "Unique identifier for the account (in scope of the organization it belongs to).",
            "type": "string"
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          },
          "type": {
            "description": "The type of the account",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "id",
          "type",
          "name",
          "credentials"
        ]
      },
      "CreateResourceDefinitionRequestRequest": {
        "description": "CreateResourceDefinitionRequest describes a new ResourceDefinition request.",
        "example": {
          "criteria": [],
          "driver_account": "gcp-dev-cloudsql",
          "driver_inputs": {
            "secrets": {
              "dbcredentials": {
                "password": "***",
                "username": "***"
              }
            },
            "values": {
              "instance": "my-dev-project:my-region:dev-db"
            }
          },
          "driver_type": "humanitec/cloudsql",
          "id": "dev-postgres",
          "name": "Dev Postgres Instance",
          "provision": {
            "aws-policy": {
              "is_dependent": false
            },
            "dns#my-dns": {}
          },
          "type": "postgres"
        },
        "properties": {
          "criteria": {
            "description": "(Optional) The criteria to use when looking for a Resource Definition during the deployment.",
            "items": {
              "$ref": "#/components/schemas/MatchingCriteriaRuleRequest"
            },
            "type": "array"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "driver_inputs": {
            "$ref": "#/components/schemas/ValuesSecretsRefsRequest",
            "description": "(Optional) Additional input data to be passed to the driver."
          },
          "driver_type": {
            "description": "The driver to be used to create the resource.",
            "type": "string"
          },
          "id": {
            "description": "The Resource Definition ID.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "name": {
            "description": "The display name.",
            "type": "string"
          },
          "provision": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ProvisionDependenciesRequest"
            },
            "description": "(Optional) A map where the keys are resType#resId (if resId is omitted, the same id of the current resource definition is used) of the resources that should be provisioned when the current resource is provisioned. This also specifies if the resources have a dependency on the current resource.",
            "type": "object"
          },
          "type": {
            "description": "The Resource Type.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "driver_type"
        ],
        "type": "object"
      },
      "DriverDefinitionResponse": {
        "description": "DriverDefinition describes the resource driver.\n\nResource Drivers are code that fulfils the Humanitec Resource Driver Interface. This interface allows for certain actions to be performed on resources such as creation and destruction. Humanitec provides numerous Resource Drivers “out of the box”. It is also possible to use 3rd party Resource Drivers or write your own.",
        "example": {
          "account_types": [
            "gcp",
            "aws"
          ],
          "id": "route53",
          "inputs_schema": {},
          "is_public": false,
          "org_id": "test-org",
          "target": "https://drivers.example.com/route53/",
          "template": "",
          "type": "dns"
        },
        "properties": {
          "account_types": {
            "description": "List of resources accounts types supported by the driver",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID for this driver. Is used as `driver_type`.",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the driver-specific input parameters.",
            "type": "object"
          },
          "org_id": {
            "description": "The Organization this driver exists under. Useful as public drivers are accessible to other orgs.",
            "type": "string"
          },
          "target": {
            "description": "The prefix where the driver resides or, if the driver is a virtual driver, the reference to an existing driver using the `driver://` schema of the format `driver://{orgId}/{driverId}`. Only members of the organization the driver belongs to can see `target`.",
            "type": "string"
          },
          "template": {
            "description": "If the driver is a virtual driver, template defines a Go template that converts the driver inputs supplied in the resource definition into the driver inputs for the target driver."
          },
          "type": {
            "description": "The type of resource produced by this driver",
            "type": "string"
          }
        },
        "required": [
          "org_id",
          "id",
          "type",
          "inputs_schema",
          "account_types"
        ],
        "type": "object"
      },
      "ConflictingResourcesErrorResponse": {
        "description": "Represents a standard Humanitec Error with additional details which describe why an action on a specific resource cannot be performed due to some other entities linked to it.\n",
        "properties": {
          "details": {
            "$ref": "#/components/schemas/ConflictingResourcesErrorResponseDetails"
          },
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "error",
          "message",
          "details"
        ],
        "type": "object"
      },
      "ConflictingResourcesErrorResponseDetails": {
        "description": "Object composed by the list of resources which prevent the deletion of the specified entity. The resources are indexed by their kind.",
        "type": "object",
        "properties": {
          "referencing_resources": {
            "$ref": "#/components/schemas/ConflictingResourcesErrorResponseDetailsResources"
          }
        },
        "required": [
          "referencing_resources"
        ],
        "additionalProperties": false
      },
      "ConflictingResourcesErrorResponseDetailsResources": {
        "type": "object",
        "properties": {
          "resource_definitions": {
            "description": "List of non-deleted Resource Definitions referencing the specified Resource Account.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceDefinitionResponse"
            }
          },
          "active_resources": {
            "description": "List of Active Resources referencing the specified Resource Account.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActiveResourceResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "ManifestResponse": {
        "description": "Manifest represents a complete or a partial Kubernetes manifest, and a location for its injection.",
        "properties": {
          "data": {
            "description": "Manifest data to inject."
          },
          "location": {
            "description": "Location to inject the Manifest at.",
            "type": "string"
          }
        },
        "required": [
          "location",
          "data"
        ],
        "type": "object"
      },
      "MatchingCriteriaResponse": {
        "description": "Matching Criteria are a set of rules used to choose which Resource Definition to use to provision a particular Resource Type.\n\nMatching criteria are made up in order of specificity with least specific first:\n\n- Environment Type (`env_type`)\n\n- Application (`app_id`)\n\n- Environment (`env_id`)\n\n- Resource (`res_id`)\n\nWhen selecting matching criteria, the most specific one is selected. In general, this means of all the Matching Criteria fully matching the context, the Matching Criteria Rule with the most specific element filled is chosen. If there is a tie, the next most specific elements are compared and so on until one is chosen.\n\n**NOTE:**\n\nHumanitec will reject the registration of matching criteria rules that duplicate rules already present for a Resource Type.",
        "properties": {
          "app_id": {
            "description": "(Optional) The ID of the Application that the Resources should belong to.",
            "type": "string"
          },
          "class": {
            "description": "(Optional) The class of the Resource in the Deployment Set. Can not be empty, if is not defined, set to `default`.",
            "type": "string"
          },
          "env_id": {
            "description": "(Optional) The ID of the Environment that the Resources should belong to. If `env_type` is also set, it must match the Type of the Environment for the Criteria to match.",
            "type": "string"
          },
          "env_type": {
            "description": "(Optional) The Type of the Environment that the Resources should belong to. If `env_id` is also set, it must have an Environment Type that matches this parameter for the Criteria to match.",
            "type": "string"
          },
          "id": {
            "description": "Matching Criteria ID",
            "type": "string"
          },
          "res_id": {
            "description": "(Optional) The ID of the Resource in the Deployment Set. The ID is normally a `.` separated path to the definition in the set, e.g. `modules.my-module.externals.my-database`.",
            "type": "string"
          }
        },
        "required": [
          "class",
          "id"
        ],
        "type": "object"
      },
      "MatchingCriteriaRuleRequest": {
        "description": "MatchingCriteriaRule describes Matching Criteria rules.",
        "properties": {
          "app_id": {
            "description": "(Optional) The ID of the Application that the Resources should belong to.",
            "type": "string"
          },
          "class": {
            "description": "(Optional) The class of the Resource in the Deployment Set. Can not be empty, if is not defined, set to `default`.",
            "type": "string"
          },
          "env_id": {
            "description": "(Optional) The ID of the Environment that the Resources should belong to. If `env_type` is also set, it must match the Type of the Environment for the Criteria to match.",
            "type": "string"
          },
          "env_type": {
            "description": "(Optional) The Type of the Environment that the Resources should belong to. If `env_id` is also set, it must have an Environment Type that matches this parameter for the Criteria to match.",
            "type": "string"
          },
          "res_id": {
            "description": "(Optional) The ID of the Resource in the Deployment Set. The ID is normally a `.` separated path to the definition in the set, e.g. `modules.my-module.externals.my-database`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DependencyGraphResponse": {
        "description": "The Dependency Graph which holds the list of objects which contain information to provision resources, sorted according to resources provisioning order.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Dependency Graph.",
            "example": "01234567-89ab-cdef-0123-4567890abcdef"
          },
          "hash": {
            "type": "string",
            "description": "The sha256 hash of the graph list of nodes. Two graphs with same hash cannot exist, unless they are exactly the same graph, so they contain the same sorted list of nodes."
          },
          "nodes": {
            "description": "A list of objects which hold information to provision resources, sorted according to resources provisioning order.",
            "items": {
              "$ref": "#/components/schemas/NodeBodyResponse"
            },
            "type": "array"
          },
          "created_at": {
            "description": "The timestamp of when the graph was generated for.",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "used_at": {
            "description": "The timestamp of when the graph was generated for the last time.",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "nodes",
          "hash",
          "created_at",
          "used_at"
        ]
      },
      "NodeBodyResponse": {
        "description": "NodeBody represents a node of a Resource Dependency Graph.",
        "example": {
          "class": "default",
          "criteria_id": "09876545321",
          "def_id": "dns-res-def",
          "def_version_id": "01234567-89ab-cdef-0123-4567890abcdef",
          "depends_on": [
            "ff09876545321"
          ],
          "driver": {
            "secrets": {},
            "values": {
              "domain": "my-domain"
            }
          },
          "driver_type": "humanitec/dns-aws-route53",
          "guresid": "1234567890ff",
          "id": "modules.sample-app.my-dns",
          "resource": null,
          "resource_schema": {
            "properties": {
              "host": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "dns"
        },
        "properties": {
          "class": {
            "type": "string"
          },
          "criteria_id": {
            "type": "string"
          },
          "def_id": {
            "type": "string"
          },
          "def_version_id": {
            "description": "The Resource Definition Version ID that was used to provision the resource.",
            "type": "string"
          },
          "depends_on": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "driver": {
            "additionalProperties": true,
            "type": "object"
          },
          "driver_account": {
            "type": "string"
          },
          "driver_type": {
            "type": "string"
          },
          "guresid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "resource": {
            "additionalProperties": true,
            "type": "object"
          },
          "resource_schema": {
            "additionalProperties": true,
            "type": "object"
          },
          "target": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "class",
          "id",
          "guresid",
          "resource",
          "driver",
          "def_id",
          "criteria_id",
          "driver_type",
          "resource_schema",
          "depends_on",
          "def_version_id"
        ],
        "type": "object"
      },
      "PatchResourceDefinitionRequestRequest": {
        "description": "PatchResourceDefinitionRequest describes a ResourceDefinition change request.",
        "example": {
          "driver_account": "gcp-dev-cloudsql",
          "driver_inputs": {
            "secret_refs": {
              "dbcredentials": {
                "password": {
                  "ref": "path--to--password",
                  "store": "my-store",
                  "version": "1"
                },
                "username": {
                  "value": "***"
                }
              }
            },
            "values": {
              "instance": "my-dev-project:my-region:dev-db"
            }
          },
          "provision": {
            "aws-policy": {
              "is_dependent": false
            },
            "dns#my-dns": {}
          }
        },
        "properties": {
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "driver_inputs": {
            "$ref": "#/components/schemas/ValuesSecretsRefsRequest",
            "description": "(Optional) Additional input data to be passed to the driver."
          },
          "name": {
            "description": "(Optional) Resource display name",
            "type": "string"
          },
          "provision": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ProvisionDependenciesRequest"
            },
            "description": "(Optional) A map where the keys are resType#resId (if resId is omitted, the same id of the current resource definition is used) of the resources that should be provisioned when the current resource is provisioned. This also specifies if the resources have a dependency on the current resource or if they have the same dependent resources.",
            "type": "object"
          },
          "proposed": {
            "description": "(Optional) If true, the new definition version should be created as \"proposed\" version (not active).",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ProvisionDependenciesRequest": {
        "description": "ProvisionDependencies defines resources which are needed to be co-provisioned with the current resource.",
        "properties": {
          "is_dependent": {
            "description": "If the co-provisioned resource is dependendent on the current one.",
            "type": "boolean"
          },
          "match_dependents": {
            "description": "If the resources dependant on the main resource, are also dependant on the co-provisioned one.",
            "type": "boolean"
          },
          "params": {
            "additionalProperties": true,
            "description": "(Optional) Additional parameters to be passed to the driver which will provision the resource.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "ProvisionDependenciesResponse": {
        "description": "ProvisionDependencies defines resources which are needed to be co-provisioned with the current resource.",
        "properties": {
          "is_dependent": {
            "description": "If the co-provisioned resource is dependendent on the current one.",
            "type": "boolean"
          },
          "match_dependents": {
            "description": "If the resources dependant on the main resource, are also dependant on the co-provisioned one.",
            "type": "boolean"
          },
          "params": {
            "additionalProperties": true,
            "description": "(Optional) Additional parameters to be passed to the driver which will provision the resource.",
            "type": "object"
          }
        },
        "required": [
          "is_dependent"
        ],
        "type": "object"
      },
      "ResourceAccountResponse": {
        "description": "ResourceAccount represents the account being used to access a resource.\n\nResource Accounts hold credentials that are required to provision and manage resources.",
        "example": {
          "created_at": "2020-05-22T14:58:07Z",
          "created_by": "test-user",
          "id": "gcp-dev-postgres",
          "is_default": false,
          "is_used": true,
          "name": "GCP Dev Postgres",
          "type": "gcp"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp of when the account was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The ID of the user who created the account.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the account (in scope of the organization it belongs to).",
            "type": "string"
          },
          "is_used": {
            "description": "Indicates if this account is being used (referenced) by any resource definition or active resource.",
            "type": "boolean"
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          },
          "type": {
            "description": "The type of the account",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "is_used",
          "created_by",
          "created_at"
        ],
        "type": "object"
      },
      "ResourceDefinitionChangeResponse": {
        "description": "ResourceDefinitionChange describes the effects of a Resource Definition or Matching Criteria update/deletion.",
        "properties": {
          "app_id": {
            "description": "The ID of the App the resource is associated with.",
            "type": "string"
          },
          "env_id": {
            "description": "The ID of the Environment the resource is associated with.",
            "type": "string"
          },
          "from_def": {
            "description": "The Resource Definition that this resource was provisioned from.",
            "type": "string"
          },
          "res_id": {
            "description": "The ID of the resource",
            "type": "string"
          },
          "to_def": {
            "description": "The Resource Definition that resource *will be* provisioned from if the change is applied.",
            "type": "string"
          }
        },
        "required": [
          "app_id",
          "env_id",
          "res_id",
          "from_def",
          "to_def"
        ],
        "type": "object"
      },
      "ResourceDefinitionResponse": {
        "description": "A Resource Definitions describes how and when a resource should be provisioned. It links a driver (the how) along with a Matching Criteria (the when) to a Resource Type. This allows Humanitec to invoke a particular driver for the required Resource Type in the context of a particular Application and Environment.\n\nThe schema for the `driver_inputs` is defined by the `input_schema` property on the DriverDefinition identified by the `driver_type` property.",
        "example": {
          "created_at": "2020-05-23T12:32:16Z",
          "created_by": "a.user@example.com",
          "criteria": [
            {
              "env_type": "development",
              "id": "123456"
            }
          ],
          "driver_account": "gcp-dev-cloudsql",
          "driver_inputs": {
            "secret_refs": {
              "credentials": {
                "password": {
                  "value": "<secret>"
                },
                "user": {
                  "ref": "vault/path/to/data/secrets/user",
                  "store": "my-external-vault",
                  "version": "1"
                }
              }
            },
            "values": {
              "instance": "my-dev-project:my-region:dev-db"
            }
          },
          "driver_type": "humanitec/postgres-cloudsql",
          "id": "dev-postgres",
          "is_default": false,
          "is_deleted": false,
          "name": "Dev Postgres Instance",
          "org_id": "test-org",
          "provision": {
            "aws-policy": {
              "is_dependent": false,
              "match_dependents": false
            },
            "dns#my-dns": {}
          },
          "type": "postgres"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp of when this record has been created.",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "description": "The user who created this record.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp of when this record has been updated.",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          },
          "updated_by": {
            "description": "The user who updated this record.",
            "type": "string"
          },
          "criteria": {
            "description": "(Optional) The criteria to use when looking for a Resource Definition during the deployment.",
            "items": {
              "$ref": "#/components/schemas/MatchingCriteriaResponse"
            },
            "type": "array"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "type": "string"
          },
          "driver_inputs": {
            "$ref": "#/components/schemas/ValuesSecretsRefsResponse",
            "description": "(Optional) Additional input data to be passed to the driver."
          },
          "driver_type": {
            "description": "The driver to be used to create the resource.",
            "type": "string"
          },
          "id": {
            "description": "The Resource Definition ID.",
            "type": "string"
          },
          "active_version_id": {
            "description": "The active Resource Definition Version ID.",
            "type": "string"
          },
          "is_default": {
            "description": "Indicates this definition is a built-in one (provided by Humanitec).",
            "type": "boolean"
          },
          "is_deleted": {
            "description": "Indicates if this record has been marked for deletion. The Resource Definition that has been marked for deletion cannot be used to provision new resources.",
            "type": "boolean"
          },
          "name": {
            "description": "The display name.",
            "type": "string"
          },
          "org_id": {
            "description": "The Organization ID.",
            "type": "string"
          },
          "provision": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ProvisionDependenciesResponse"
            },
            "description": "(Optional) A map where the keys are resType#resId (if resId is omitted, the same id of the current resource definition is used) of the resources that should be provisioned when the current resource is provisioned. This also specifies if the resources have a dependency on the current resource.",
            "type": "object"
          },
          "type": {
            "description": "The Resource Type.",
            "type": "string"
          }
        },
        "required": [
          "org_id",
          "id",
          "name",
          "type",
          "created_at",
          "created_by",
          "is_default",
          "is_deleted",
          "driver_type",
          "active_version_id"
        ],
        "type": "object"
      },
      "ResourceDefinitionVersion": {
        "description": "A Resource Definition Version represents a version of a Resource Definition.",
        "example": {
          "id": "01234567-89ab-cdef-0123-4567890abcdef",
          "org_id": "test-org",
          "def_id": "dev-postgres",
          "name": "Dev Postgres Instance",
          "type": "postgres",
          "driver_type": "humanitec/postgres-cloudsql",
          "driver_account": "gcp-dev-cloudsql",
          "driver_inputs": {
            "secret_refs": {
              "credentials": {
                "password": {
                  "value": "<secret>"
                },
                "user": {
                  "ref": "vault/path/to/data/secrets/user",
                  "store": "my-external-vault",
                  "version": "1"
                }
              }
            },
            "values": {
              "instance": "my-dev-project:my-region:dev-db"
            }
          },
          "provision": {
            "aws-policy": {
              "is_dependent": false,
              "match_dependents": false
            },
            "dns#my-dns": {}
          },
          "created_at": "2020-05-23T12:32:16Z",
          "created_by": "a.user@example.com",
          "action": "created",
          "archived": false,
          "active": true,
          "proposed": false
        },
        "properties": {
          "id": {
            "description": "The Resource Definition Version ID.",
            "type": "string"
          },
          "org_id": {
            "description": "The Organization ID.",
            "type": "string"
          },
          "def_id": {
            "description": "The Resource Definition ID.",
            "type": "string"
          },
          "name": {
            "description": "The display name.",
            "type": "string"
          },
          "type": {
            "description": "The Resource Type.",
            "type": "string"
          },
          "driver_type": {
            "description": "The driver to be used to create the resource.",
            "type": "string"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "type": "string"
          },
          "driver_inputs": {
            "$ref": "#/components/schemas/ValuesSecretsRefsResponse",
            "description": "(Optional) Additional input data to be passed to the driver."
          },
          "provision": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ProvisionDependenciesResponse"
            },
            "description": "(Optional) A map where the keys are resType#resId (if resId is omitted, the same id of the current resource definition is used) of the resources that should be provisioned when the current resource is provisioned. This also specifies if the resources have a dependency on the current resource.",
            "type": "object"
          },
          "action": {
            "type": "string",
            "description": "The action that generated the Resource Definition Version. Might be one of `created`, `updated` or `deleted`."
          },
          "archived": {
            "type": "boolean",
            "description": "Specifies if the version is archived (i.e. can't be used for a new resource)."
          },
          "active": {
            "type": "boolean",
            "description": "Specifies if the version is active (i.e. is being used if target version is not specified for a resource or a context)."
          },
          "proposed": {
            "type": "boolean",
            "description": "Specifies if the version is proposed (i.e. is newer than the active version)."
          },
          "created_at": {
            "description": "The timestamp of when this record has been created.",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "description": "The user who created this record.",
            "type": "string"
          }
        },
        "required": [
          "org_id",
          "id",
          "name",
          "def_id",
          "type",
          "driver_type",
          "driver_account",
          "driver_inputs",
          "provision",
          "action",
          "archived",
          "active",
          "proposed",
          "created_at",
          "created_by"
        ],
        "type": "object"
      },
      "ArchiveDefinitionVersionRequest": {
        "example": {
          "archive": true
        },
        "properties": {
          "archived": {
            "description": "Indicates whether to set this version archived or non-archived. Optional, true if not specified.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ResourceProvisionRequestRequest": {
        "description": "ResourceProvisionRequest is the payload passed to the resource provisioner, specifying the resources to be provisioned.",
        "example": {
          "class": "cloudsql",
          "id": "shared.postgres",
          "resource": {
            "host": "127.0.0.1",
            "name": "my-database"
          },
          "type": "postgres"
        },
        "properties": {
          "class": {
            "description": "(Optional) A resource class",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "resource": {
            "additionalProperties": true,
            "description": "(Optional) The input parameters for the resource passed from the deployment set.",
            "type": "object"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "ResourceTypeRequest": {
        "description": "Resources Types define the technology that Applications can have dependencies on.\n\nEach Resource Type also defines a set of input parameters (`inputs_schema`), and a set of output data (`outputs_schema`). When provisioning a resource, these are treated as inputs and outputs respectively.",
        "example": {
          "inputs_schema": {
            "values": {
              "properties": {
                "extensions": {
                  "additionalProperties": {
                    "properties": {
                      "schema": {
                        "type": "string"
                      },
                      "version": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                }
              },
              "type": "object"
            }
          },
          "name": "PostgreSQL",
          "outputs_schema": {
            "secrets": {
              "properties": {
                "password": {
                  "type": "string"
                },
                "username": {
                  "type": "string"
                }
              },
              "required": [
                "username",
                "password"
              ],
              "type": "object"
            },
            "values": {
              "properties": {
                "host": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "port": {
                  "maximum": 65535,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "name",
                "host",
                "port"
              ],
              "type": "object"
            }
          },
          "type": "my-org/postgres",
          "use": "direct"
        },
        "properties": {
          "category": {
            "description": "Category name (used to group similar resources on the UI).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific parameters for the driver (input).",
            "type": "object"
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific data passed to the deployment (output).",
            "type": "object"
          },
          "type": {
            "description": "Unique resource type identifier (system-wide, across all organizations). It should start with the Humanitec Organization ID followed by \"/\".",
            "type": "string",
            "example": "my-org/my-private-type"
          },
          "use": {
            "description": "Kind of dependency between resource of this type and a workload. It should be one of: `direct`, `indirect`, `implicit`.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "use"
        ],
        "type": "object"
      },
      "ResourceTypeResponse": {
        "description": "Resources Types define the technology that Applications can have dependencies on.\n\nEach Resource Type also defines a set of input parameters (`inputs_schema`), and a set of output data (`outputs_schema`). When provisioning a resource, these are treated as inputs and outputs respectively.",
        "example": {
          "inputs_schema": {
            "values": {
              "properties": {
                "extensions": {
                  "additionalProperties": {
                    "properties": {
                      "schema": {
                        "type": "string"
                      },
                      "version": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                }
              },
              "type": "object"
            }
          },
          "name": "PostgreSQL",
          "outputs_schema": {
            "secrets": {
              "properties": {
                "password": {
                  "type": "string"
                },
                "username": {
                  "type": "string"
                }
              },
              "required": [
                "username",
                "password"
              ],
              "type": "object"
            },
            "values": {
              "properties": {
                "host": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "port": {
                  "maximum": 65535,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "name",
                "host",
                "port"
              ],
              "type": "object"
            }
          },
          "type": "postgres",
          "use": "direct"
        },
        "properties": {
          "category": {
            "description": "Category name (used to group similar resources on the UI).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific parameters for the driver (input).",
            "type": "object"
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the type-specific data passed to the deployment (output).",
            "type": "object"
          },
          "type": {
            "description": "Unique resource type identifier (system-wide, across all organizations).",
            "type": "string"
          },
          "use": {
            "description": "Kind of dependency between resource of this type and a workload. It should be one of: `direct`, `indirect`, `implicit`.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "use",
          "name",
          "category",
          "inputs_schema",
          "outputs_schema"
        ],
        "type": "object"
      },
      "UpdateDriverRequestRequest": {
        "description": "UpdateDriverRequest describes the update driver details request.",
        "example": {
          "account_types": [
            "gcp",
            "aws"
          ],
          "inputs_schema": {},
          "is_public": false,
          "target": "https://drivers.example.com/route53/",
          "template": "{{ mustToRawJson .driver }}",
          "type": "dns"
        },
        "properties": {
          "account_types": {
            "description": "List of resources accounts types supported by the driver",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "A JSON Schema specifying the driver-specific input parameters.",
            "type": "object"
          },
          "target": {
            "description": "The prefix where the driver resides or, if the driver is a virtual driver, the reference to an existing driver using the `driver://` schema of the format `driver://{orgId}/{driverId}`. Only members of the organization the driver belongs to can see 'target'.",
            "type": "string"
          },
          "template": {
            "description": "If the driver is a virtual driver, template defines a Go template that converts the driver inputs supplied in the resource definition into the driver inputs for the target driver."
          },
          "type": {
            "description": "The type of resource produced by this driver",
            "type": "string"
          },
          "is_public": {
            "type": "boolean",
            "deprecated": true
          }
        },
        "required": [
          "type",
          "target",
          "inputs_schema",
          "account_types"
        ],
        "type": "object"
      },
      "ResourceClassRequest": {
        "description": "Resource Classes provide a way of specializing Resource Types.\nDevelopers can set the class of a Resource alongside the type in their Score File.\nPlatform teams can match the class of a Resource via Matching Criteria.",
        "type": "object",
        "required": [
          "id",
          "description"
        ],
        "properties": {
          "id": {
            "description": "ID of the resource class.",
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
            "minLength": 2,
            "maxLength": 63
          },
          "description": {
            "description": "A human readable description when this class should be used.",
            "type": "string",
            "minLength": 0,
            "maxLength": 1024
          }
        }
      },
      "ResourceClassResponse": {
        "description": "Resource Classes provide a way of specializing Resource Types.\nDevelopers can set the class of a Resource alongside the type in their Score File.\nPlatform teams can match the class of a Resource via Matching Criteria.",
        "type": "object",
        "required": [
          "id",
          "resource_type",
          "description",
          "created_by",
          "created_at"
        ],
        "properties": {
          "id": {
            "description": "ID of the resource class.",
            "type": "string"
          },
          "resource_type": {
            "description": "Defines the resource type this class is applicable for.",
            "type": "string"
          },
          "description": {
            "description": "A human readable description when this class should be used.",
            "type": "string"
          },
          "created_by": {
            "type": "string",
            "description": "usedID of the user who created the resource class"
          },
          "created_at": {
            "type": "string",
            "description": "UTC timestamp at which the resource class was created",
            "format": "date-time"
          }
        }
      },
      "UpdateResourceClassRequest": {
        "description": "UpdateResourceClassRequest describes the update class description request.",
        "type": "object",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "description": "New description for the resource class.",
            "type": "string",
            "minLength": 0,
            "maxLength": 1024
          }
        }
      },
      "UpdateResourceAccountRequestRequest": {
        "description": "UpdateResourceAccountRequest describes the request to update the security account details.",
        "example": {
          "credentials": {
            "password": "***",
            "username": "***"
          },
          "name": "GCP Dev Postgres"
        },
        "properties": {
          "credentials": {
            "additionalProperties": true,
            "description": "Credentials associated with the account.",
            "type": "object"
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateResourceDefinitionRequestRequest": {
        "description": "UpdateResourceDefinitionRequest describes a ResourceDefinition change request.",
        "example": {
          "driver_type": "humanitec/terraform",
          "driver_account": "gcp-dev-cloudsql",
          "driver_inputs": {
            "secret_refs": {
              "dbcredentials": {
                "password": {
                  "ref": "path--to--password",
                  "store": "my-store",
                  "version": "1"
                },
                "username": {
                  "value": "***"
                }
              }
            },
            "values": {
              "instance": "my-dev-project:my-region:dev-db"
            }
          },
          "name": "Dev Postgres Instance",
          "provision": {
            "aws-policy": {
              "is_dependent": false
            },
            "dns#my-dns": {}
          }
        },
        "properties": {
          "driver_type": {
            "description": "(Optional) The driver to be used to create the resource.",
            "type": "string"
          },
          "driver_account": {
            "description": "(Optional) Security account required by the driver.",
            "pattern": "^[a-z0-9][a-z0-9-]+[a-z0-9]$",
            "type": "string"
          },
          "driver_inputs": {
            "$ref": "#/components/schemas/ValuesSecretsRefsRequest",
            "description": "(Optional) Additional input data to be passed to the driver."
          },
          "name": {
            "description": "The display name.",
            "type": "string"
          },
          "provision": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ProvisionDependenciesRequest"
            },
            "description": "(Optional) A map where the keys are resType#resId (if resId is omitted, the same id of the current resource definition is used) of the resources that should be provisioned when the current resource is provisioned. This also specifies if the resources have a dependency on the current resource or if they have the same dependent resources.",
            "type": "object"
          },
          "proposed": {
            "description": "(Optional) If true, the new definition version should be created as \"proposed\" version (not active).",
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PatchResourceTypeRequestRequest": {
        "properties": {
          "category": {
            "description": "(Optional) Category name (used to group similar resources on the UI).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "(Optional) A JSON Schema specifying the type-specific parameters for the driver (input).",
            "type": "object"
          },
          "name": {
            "description": "(Optional) Resource display name.",
            "type": "string"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "(Optional) A JSON Schema specifying the type-specific data passed to the deployment (output).",
            "type": "object"
          },
          "use": {
            "description": "(Optional) Kind of dependency between resource of this type and a workload. It should be one of: `direct`, `indirect`, `implicit`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateResourceTypeRequestRequest": {
        "properties": {
          "category": {
            "description": "Category name (used to group similar resources on the UI).",
            "type": "string"
          },
          "inputs_schema": {
            "additionalProperties": true,
            "description": "(Optional) A JSON Schema specifying the type-specific parameters for the driver (input).",
            "type": "object"
          },
          "name": {
            "description": "(Optional) Resource display name.",
            "type": "string"
          },
          "outputs_schema": {
            "additionalProperties": true,
            "description": "(Optional) A JSON Schema specifying the type-specific data passed to the deployment (output).",
            "type": "object"
          },
          "use": {
            "description": "Kind of dependency between resource of this type and a workload. It should be one of: `direct`, `indirect`, `implicit`.",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "use"
        ]
      },
      "ValuesSecretsRefsRequest": {
        "description": "ValuesSecretsRefs stores data that should be passed around split by sensitivity.",
        "example": {
          "secret_refs": {
            "credentials": {
              "password": {
                "value": "<secret>"
              },
              "user": {
                "ref": "vault/path/to/data/secrets/user",
                "store": "my-external-vault",
                "version": "1"
              }
            }
          },
          "secrets": {
            "password": "vault/path/to/data/.secrets/password",
            "user": "vault/path/to/data/.secrets/user"
          },
          "values": {
            "host": "127.0.0.1",
            "name": "my-database"
          }
        },
        "properties": {
          "secret_refs": {
            "additionalProperties": true,
            "description": "Secrets section of the data set. They can hold sensitive information that will be stored in the primary organization secret store and replaced with the secret store paths when sent outside, or secret references stored in a defined secret store. Can't be used together with `secrets`.\n\nThey can hold a nested structure but leaf objects need to be of type SecretReference, where:\n\n- `store` is a Secret Store id. It can't be `humanitec`. It's mandatory if `ref` is defined and can't be used in request payloads if `value` is defined.\n\n- `ref` is the secret key in the format of the target store. It can't be used in request payloads if `value` is defined.\n\n- `version` is the version of the secret as defined in the target store. It can be defined only if `ref` is defined.\n\n- `value` is the value to store in the organizations primary secret store. It can't be used in request payloads if `ref` is defined.",
            "type": "object"
          },
          "secrets": {
            "additionalProperties": true,
            "description": "Secrets section of the data set. Sensitive information is stored in the primary organization secret store and replaced with the secret store paths when sent outside. Can't be used together with `secret_refs`.",
            "type": "object"
          },
          "values": {
            "additionalProperties": true,
            "description": "Values section of the data set. Passed around as-is.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "ValuesSecretsRefsResponse": {
        "description": "ValuesSecretsRefs stores data that should be passed around split by sensitivity.",
        "example": {
          "secret_refs": {
            "credentials": {
              "password": {
                "value": "<secret>"
              },
              "user": {
                "ref": "vault/path/to/data/secrets/user",
                "store": "my-external-vault",
                "version": "1"
              }
            }
          },
          "secrets": {
            "password": "vault/path/to/data/.secrets/password",
            "user": "vault/path/to/data/.secrets/user"
          },
          "values": {
            "host": "127.0.0.1",
            "name": "my-database"
          }
        },
        "properties": {
          "secret_refs": {
            "additionalProperties": true,
            "description": "Secrets section of the data set. They can hold sensitive information that will be stored in the primary organization secret store and replaced with the secret store paths when sent outside, or secret references stored in a defined secret store. Can't be used together with `secrets`.\n\nThey can hold a nested structure but leaf objects need to be of type SecretReference, where:\n\n- `store` is a Secret Store id. It can't be `humanitec`. It's mandatory if `ref` is defined and can't be used in request payloads if `value` is defined.\n\n- `ref` is the secret key in the format of the target store. It can't be used in request payloads if `value` is defined.\n\n- `version` is the version of the secret as defined in the target store. It can be defined only if `ref` is defined.\n\n- `value` is the value to store in the organizations primary secret store. It can't be used in request payloads if `ref` is defined.",
            "type": "object"
          },
          "secrets": {
            "additionalProperties": true,
            "description": "Secrets section of the data set. Sensitive information is stored in the primary organization secret store and replaced with the secret store paths when sent outside. Can't be used together with `secret_refs`.",
            "type": "object"
          },
          "values": {
            "additionalProperties": true,
            "description": "Values section of the data set. Passed around as-is.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "CheckResourceAccountField": {
        "description": "An identity field or property resulting from the account check.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "description",
          "value"
        ]
      },
      "CheckResourceAccountData": {
        "description": "The successful check response details.",
        "type": "object",
        "properties": {
          "identity_fields": {
            "description": "A set of identity fields and properties resulting from the account check.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckResourceAccountField"
            }
          },
          "warnings": {
            "description": "A list of warnings related to this account.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "identity_fields"
        ]
      },
      "ControllerResponse": {
        "description": "Controller represents deployment, stateful set etc",
        "properties": {
          "kind": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "pods": {
            "items": {
              "$ref": "#/components/schemas/PodStateResponse"
            },
            "type": "array"
          },
          "replicas": {
            "type": "integer"
          },
          "revision": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "kind",
          "replicas",
          "status",
          "message",
          "pods",
          "revision"
        ],
        "type": "object"
      },
      "EnvironmentRuntimeInfoResponse": {
        "description": "EnvironmentRuntimeInfo",
        "properties": {
          "error": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "paused": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "paused"
        ],
        "type": "object"
      },
      "PodStateResponse": {
        "description": "PodState represents single pod status",
        "properties": {
          "containerStatuses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "phase": {
            "type": "string"
          },
          "podName": {
            "type": "string"
          },
          "revision": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "podName",
          "revision",
          "phase",
          "status",
          "containerStatuses"
        ],
        "type": "object"
      },
      "RuntimeInfoResponseV1": {
        "description": "RuntimeInfo object returned by the runtime endpoint. Represents a list post statuses grouped by modules and controllers (deployments and stateful sets).",
        "properties": {
          "modules": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ModuleResponse"
            },
            "type": "object"
          },
          "namespace": {
            "type": "string"
          }
        },
        "required": [
          "namespace",
          "modules"
        ],
        "type": "object"
      },
      "RuntimeInfoResponseV2": {
        "description": "RuntimeInfo object returned by the runtime endpoint. Represents a list post statuses grouped by modules and controllers (deployments and stateful sets).",
        "properties": {
          "modules": {
            "description": "Modules represent a collection of workloads for the application.",
            "additionalProperties": {
              "$ref": "#/components/schemas/RuntimeInfoModule"
            },
            "type": "object"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace where the application runs."
          }
        },
        "required": [
          "namespace",
          "modules"
        ],
        "type": "object"
      },
      "RuntimeInfoStatus": {
        "type": "string",
        "description": "Workload status.",
        "enum": [
          "Running",
          "Succeeded",
          "Starting",
          "Partially Succeeded",
          "Failed",
          "Stopped",
          "Unknown"
        ]
      },
      "RuntimeInfoStatusClass": {
        "type": "string",
        "description": "Status class, statuses are aggregated into classes",
        "enum": [
          "Success",
          "Failure",
          "Warning",
          "Stopped",
          "Unknown"
        ]
      },
      "RuntimeInfoModule": {
        "description": "Module represents a collection of workload controllers (deployments/statefulsets/etc) for the module.",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/RuntimeInfoStatus"
          },
          "status_class": {
            "$ref": "#/components/schemas/RuntimeInfoStatusClass"
          },
          "controllers": {
            "description": "A collection of workload controllers.",
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/RuntimeInfoModuleController"
            }
          }
        },
        "required": [
          "status",
          "status_class",
          "controllers"
        ]
      },
      "RuntimeInfoModuleController": {
        "description": "K8s controller.",
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "Controller kind."
          },
          "replicas": {
            "type": "integer",
            "description": "The most recently observed number of replicas."
          },
          "status": {
            "$ref": "#/components/schemas/RuntimeInfoStatus"
          },
          "message": {
            "type": "string",
            "description": "If a controller is not in a successful status, the reason from its condition."
          },
          "pods": {
            "description": "List of pods which belong to the controller.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuntimeInfoPod"
            }
          },
          "revision": {
            "type": "integer",
            "description": "Revision of the controller."
          }
        },
        "required": [
          "kind",
          "status"
        ]
      },
      "RuntimeInfoPod": {
        "description": "k8s pod.",
        "type": "object",
        "properties": {
          "podName": {
            "type": "string",
            "description": "Pod name."
          },
          "revision": {
            "type": "integer",
            "description": "Revision of the pod."
          },
          "phase": {
            "description": "A simple, high-level summary of where the Pod is in its lifecycle.",
            "type": "string",
            "enum": [
              "Pending",
              "Running",
              "Succeeded",
              "Failed",
              "Unknown"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "Failure",
              "Success",
              "Pending",
              "Unknown"
            ]
          },
          "containerStatuses": {
            "description": "The list has one entry per container in the manifest.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuntimeInfoContainerStatus"
            }
          }
        },
        "required": [
          "podName",
          "phase",
          "status",
          "containerStatuses"
        ]
      },
      "RuntimeInfoContainerStatus": {
        "description": "Container status.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Container name.",
            "type": "string"
          },
          "ready": {
            "description": "If a container is ready to start accept traffic.",
            "type": "boolean"
          },
          "restart_count": {
            "description": "The number of times the container has been restarted.",
            "type": "integer"
          },
          "status": {
            "description": "Container status derived from its state and readiness.",
            "type": "string",
            "enum": [
              "Failure",
              "Success",
              "Pending",
              "Unknown"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/RuntimeInfoContainerState"
          }
        },
        "required": [
          "name",
          "ready",
          "restartCount",
          "status",
          "state"
        ]
      },
      "RuntimeInfoContainerState": {
        "description": "Details about the container's current condition.",
        "type": "object",
        "properties": {
          "waiting": {
            "$ref": "#/components/schemas/RuntimeInfoControllerStateWaiting"
          },
          "running": {
            "$ref": "#/components/schemas/RuntimeInfoContainerStateRunning"
          },
          "terminated": {
            "$ref": "#/components/schemas/RuntimeInfoContainerStateTerminated"
          }
        }
      },
      "RuntimeInfoControllerStateWaiting": {
        "description": "Details about a waiting container",
        "type": "object",
        "properties": {
          "reason": {
            "description": "Reason the container is not yet running.",
            "type": "string"
          },
          "message": {
            "description": "Message regarding why the container is not yet running.",
            "type": "string"
          }
        }
      },
      "RuntimeInfoContainerStateRunning": {
        "description": "Details about a running container.",
        "type": "object",
        "properties": {
          "started_at": {
            "description": "Time at which the container was last (re-)started.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "RuntimeInfoContainerStateTerminated": {
        "description": "Details about a terminated container.",
        "type": "object",
        "properties": {
          "exit_code": {
            "description": "Exit status from the last termination of the container.",
            "type": "integer"
          },
          "signal": {
            "description": "Signal from the last termination of the container.",
            "type": "integer"
          },
          "reason": {
            "description": "Reason from the last termination of the container.",
            "type": "string"
          },
          "message": {
            "description": "Message regarding the last termination of the container.",
            "type": "string"
          },
          "started_at": {
            "description": "Time at which previous execution of the container started.",
            "type": "string",
            "format": "date-time"
          },
          "finished_at": {
            "description": "Time at which the container last terminated.",
            "type": "string",
            "format": "date-time"
          },
          "container_id": {
            "description": "Container's ID in the format '<type>://<container_id>'.",
            "type": "string"
          }
        }
      },
      "ClusterConnectionCheckRequest": {
        "description": "Detailed needed to test a Kubernetes cluster connection",
        "type": "object",
        "required": [
          "app_id",
          "env_id",
          "env_type"
        ],
        "properties": {
          "app_id": {
            "description": "The application Id to test",
            "type": "string",
            "example": "sample-app"
          },
          "env_id": {
            "description": "The environment Id to test",
            "type": "string",
            "example": "sample-env"
          },
          "env_type": {
            "description": "The environment type to test",
            "type": "string",
            "example": "development"
          },
          "expected_definitions": {
            "description": "List of the definitions with their type that should be used by the resource graph nodes generated based on the context.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceDefinitions"
            }
          }
        }
      },
      "ResourceDefinitions": {
        "description": "Object that contains definition id and resource type",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the resource provisioned by the definition"
          },
          "id": {
            "type": "string",
            "description": "The definition id"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "ClusterConnectionCheckResult": {
        "description": "The result of testing the Kubernetes cluster connection",
        "type": "object",
        "required": [
          "success",
          "conditions",
          "resource_summaries"
        ],
        "properties": {
          "success": {
            "description": "Whether the test completed successfully",
            "type": "boolean",
            "example": true
          },
          "resource_summaries": {
            "description": "A list of resources provisioned for the test",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClusterConnectionCheckResourceSummary"
            }
          },
          "conditions": {
            "description": "A list of success or failure conditions contributing to the result",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClusterConnectionCheckResultCondition"
            }
          }
        }
      },
      "ClusterConnectionCheckResourceSummary": {
        "type": "object",
        "required": [
          "type",
          "class",
          "res_id",
          "gu_res_id",
          "def_id",
          "def_version_id",
          "driver_type",
          "depends_on"
        ],
        "properties": {
          "type": {
            "description": "The resource type that was provisioned",
            "type": "string",
            "example": "k8s-cluster"
          },
          "class": {
            "description": "The resource class that was provisioned",
            "type": "string",
            "example": "default"
          },
          "res_id": {
            "description": "The resource id that was provisioned",
            "type": "string",
            "example": "k8s-cluster"
          },
          "gu_res_id": {
            "description": "The globally unique resource identifier for the resource",
            "type": "string",
            "example": "0123456789abcdef0123456789abcdef"
          },
          "depends_on": {
            "description": "The list of globally unique resource identifiers that must be provisioned before this resource",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "0123456789abcdef0123456789abcdee",
              "0123456789abcdef0123456789abcded"
            ]
          },
          "def_id": {
            "description": "The resource definition that was used to provision the resource",
            "type": "string",
            "example": "sample-definition"
          },
          "def_version_id": {
            "description": "The resource definition version that was used to provision the resource",
            "type": "string",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "driver_type": {
            "description": "The driver type used by the resource definition, some driver types cannot be checked.",
            "type": "string",
            "example": "humanitec/echo"
          }
        }
      },
      "ClusterConnectionCheckResultCondition": {
        "description": "A condition associated with a test result. The condition",
        "type": "object",
        "required": [
          "type",
          "status",
          "message"
        ],
        "properties": {
          "type": {
            "description": "The enum-name for the condition.",
            "type": "string",
            "example": "GraphCanProvision"
          },
          "status": {
            "description": "The status of the condition. True is the nominal value, False contributes to a failed result, Unknown is  rare but indicates that a retry may be necessary or the condition could not be checked.",
            "type": "string",
            "enum": [
              "True",
              "False",
              "Unknown"
            ],
            "example": "True"
          },
          "message": {
            "description": "A message explaining the cause of this condition.",
            "type": "string",
            "example": "A sample message."
          }
        }
      },
      "AWSAuthRequest": {
        "description": "Credentials to authenticate AWS Secret Manager.",
        "properties": {
          "access_key_id": {
            "type": "string"
          },
          "secret_access_key": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AWSSMRequest": {
        "description": "AWS Secret Manager specification.",
        "properties": {
          "auth": {
            "$ref": "#/components/schemas/AWSAuthRequest"
          },
          "endpoint": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AWSSMResponse": {
        "description": "AWS Secret Manager specification.",
        "properties": {
          "endpoint": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureAuthRequest": {
        "description": "Credentials to authenticate Azure Key Vault.",
        "properties": {
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureKVRequest": {
        "description": "Azure Key Vault specification.",
        "properties": {
          "auth": {
            "$ref": "#/components/schemas/AzureAuthRequest"
          },
          "tenant_id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureKVResponse": {
        "description": "Azure Key Vault specification.",
        "properties": {
          "tenant_id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreateSecretStorePayloadRequest": {
        "description": "Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec. It must contain exactly one of the following elements to define Secret Store specification: `awssm` (AWS Secret Manager), `azurekv` (Azure Key Vault), `gcpsm` (GCP Secret Manager), `vault` (HashiCorp Vault).",
        "example": {
          "awssm": {
            "auth": {
              "access_key_id": "...",
              "secret_access_key": "..."
            },
            "region": "us-east-1"
          },
          "id": "my-aws-secret-manager",
          "primary": true
        },
        "properties": {
          "awssm": {
            "$ref": "#/components/schemas/AWSSMRequest",
            "description": "AWS Secret Manager specification."
          },
          "azurekv": {
            "$ref": "#/components/schemas/AzureKVRequest",
            "description": "Azure Key Vault specification."
          },
          "gcpsm": {
            "$ref": "#/components/schemas/GCPSMRequest",
            "description": "GCP Secret Manager specification."
          },
          "id": {
            "description": "The Secret Store ID.",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$",
            "type": "string"
          },
          "primary": {
            "description": "Defines whether the Secret Store is the primary secret management system for the organization.",
            "type": "boolean"
          },
          "vault": {
            "$ref": "#/components/schemas/VaultRequest",
            "description": "Vault specification."
          }
        },
        "required": [
          "id",
          "primary"
        ],
        "type": "object"
      },
      "GCPAuthRequest": {
        "description": "Credentials to authenticate GCP Secret Manager.",
        "properties": {
          "secret_access_key": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "GCPSMRequest": {
        "description": "GCP Secret Manager specification.",
        "properties": {
          "auth": {
            "$ref": "#/components/schemas/GCPAuthRequest"
          },
          "project_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "GCPSMResponse": {
        "description": "GCP Secret Manager specification.",
        "properties": {
          "project_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "HumanitecRequest": {
        "description": "Humanitec built-in Secret Store specification.",
        "properties": {},
        "type": "object"
      },
      "HumanitecResponse": {
        "description": "Humanitec built-in Secret Store specification.",
        "properties": {},
        "type": "object"
      },
      "SecretStoreRequest": {
        "description": "Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec.",
        "properties": {
          "awssm": {
            "$ref": "#/components/schemas/AWSSMRequest"
          },
          "azurekv": {
            "$ref": "#/components/schemas/AzureKVRequest"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "gcpsm": {
            "$ref": "#/components/schemas/GCPSMRequest"
          },
          "humanitec": {
            "$ref": "#/components/schemas/HumanitecRequest"
          },
          "id": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "updated_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "updated_by": {
            "type": "string"
          },
          "vault": {
            "$ref": "#/components/schemas/VaultRequest"
          }
        },
        "type": "object"
      },
      "SecretStoreResponse": {
        "description": "Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec.",
        "properties": {
          "awssm": {
            "$ref": "#/components/schemas/AWSSMResponse"
          },
          "azurekv": {
            "$ref": "#/components/schemas/AzureKVResponse"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "gcpsm": {
            "$ref": "#/components/schemas/GCPSMResponse"
          },
          "humanitec": {
            "$ref": "#/components/schemas/HumanitecResponse"
          },
          "id": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "updated_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "updated_by": {
            "type": "string"
          },
          "vault": {
            "$ref": "#/components/schemas/VaultResponse"
          }
        },
        "required": [
          "id",
          "primary",
          "created_at",
          "created_by",
          "updated_at",
          "updated_by"
        ],
        "type": "object"
      },
      "UpdateSecretStorePayloadRequest": {
        "description": "Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec.",
        "example": {
          "awssm": {
            "auth": {
              "secret_access_key": "s0mE_te$t_wrIte_kee"
            },
            "region": "us-east-1"
          },
          "primary": true
        },
        "properties": {
          "awssm": {
            "$ref": "#/components/schemas/AWSSMRequest",
            "description": "AWS Secret Manager specification."
          },
          "azurekv": {
            "$ref": "#/components/schemas/AzureKVRequest",
            "description": "Azure Key Vault specification."
          },
          "gcpsm": {
            "$ref": "#/components/schemas/GCPSMRequest",
            "description": "GCP Secret Manager specification."
          },
          "primary": {
            "description": "Defines whether the Secret Store is the primary secret management system for the organization.",
            "nullable": true,
            "type": "boolean"
          },
          "vault": {
            "$ref": "#/components/schemas/VaultRequest",
            "description": "Vault specification."
          }
        },
        "type": "object"
      },
      "VaultAuthRequest": {
        "description": "Credentials to authenticate Vault.",
        "properties": {
          "role": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VaultRequest": {
        "description": "Vault specification.",
        "properties": {
          "agent_id": {
            "type": "string"
          },
          "auth": {
            "$ref": "#/components/schemas/VaultAuthRequest"
          },
          "path": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VaultResponse": {
        "description": "Vault specification.",
        "properties": {
          "agent_id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "NewServiceUserRequest": {
        "description": "NewServiceUser holds the definition of a new service user.",
        "example": {
          "email": "ci-service-notifications@awesomecorp.com",
          "name": "CI Robot",
          "role": "artefactContributer"
        },
        "properties": {
          "email": {
            "description": "The email address that should get notifications about this service user. (Optional)",
            "type": "string"
          },
          "name": {
            "description": "The name that should be shown for this service user.",
            "type": "string"
          },
          "role": {
            "description": "The role that the service user should have on the organization it is created in",
            "type": "string"
          }
        },
        "required": [
          "name",
          "role"
        ],
        "type": "object"
      },
      "RoleRequest": {
        "description": "Role defines the role that will be used in request",
        "example": {
          "role": "user"
        },
        "properties": {
          "role": {
            "type": "string"
          }
        },
        "required": [
          "role"
        ],
        "type": "object"
      },
      "TokenDefinitionRequest": {
        "description": "Defines the token to be created.",
        "example": {
          "description": "Humanitec API Calls from CircleCI Pipelines",
          "expires_at": "2022-04-30T19:47:01Z",
          "id": "circle-ci-token",
          "type": "static"
        },
        "properties": {
          "description": {
            "description": "A description of the token. (Optional)",
            "type": "string"
          },
          "expires_at": {
            "description": "The time the token expires. If not set, the token will not expire. (Optional)",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the token. Must be unique for the user.",
            "type": "string"
          },
          "type": {
            "description": "The type of the token. Can only be \"static\".",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "TokenInfoResponse": {
        "description": "Holds metadata about a token. `expires_at` is excluded if token does not expire.",
        "example": {
          "created_at": "2021-04-30T19:47:01Z",
          "description": "Humanitec API Calls from CircleCI Pipelines",
          "expires_at": "2022-04-30T19:47:01Z",
          "id": "circle-ci-token",
          "type": "static",
          "user_id": "a7a04740ae985f12af58545e4edbac6a"
        },
        "properties": {
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "expires_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "created_by",
          "created_at",
          "type",
          "id",
          "description"
        ],
        "type": "object"
      },
      "TokenResponse": {
        "description": "Token holds the token and its type.",
        "example": {
          "token": "a7a04740ae985f12af58545e4edbac6a",
          "type": "jwt"
        },
        "properties": {
          "token": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "UserInviteRequestRequest": {
        "description": "UserInviteRequest describes a new user invitation.",
        "example": {
          "email": "jo.trigg@awesomecorp.com",
          "role": "manager"
        },
        "properties": {
          "email": {
            "description": "The email address of the user from the profile.",
            "type": "string"
          },
          "role": {
            "description": "The role that this user would hold.",
            "type": "string"
          }
        },
        "required": [
          "email",
          "role"
        ],
        "type": "object"
      },
      "UserInviteResponse": {
        "description": "UserInvite stores the invitation details.",
        "example": {
          "created_at": "2020-12-19T09:32:46Z",
          "created_by": "admin-user-id",
          "email": "jo.trigg@awesomecorp.com",
          "expires_at": "2020-12-30T09:32:46Z",
          "user_id": "new-user-id"
        },
        "properties": {
          "created_at": {
            "description": "The timestamp this invitation was created.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "The ID of the user who created this invitation.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the user from the profile.",
            "type": "string"
          },
          "expires_at": {
            "description": "The timestamp this invitation would expire.",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "user_id": {
            "description": "The User ID for this user.",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "expires_at",
          "created_by",
          "created_at"
        ],
        "type": "object"
      },
      "UserProfileExtendedRequest": {
        "description": "UserProfileExtended holds the profile information of a user including properties only accessible to the user.",
        "example": {
          "created_at": "2020-12-19T09:32:46Z",
          "email": "jo.trigg@awesomecorp.com",
          "id": "d510224a-4641-48fd-8054-68efd3537ee2",
          "name": "Jo Trigg",
          "properties": {
            "dont_show_welcome_screen": true
          }
        },
        "properties": {
          "created_at": {
            "description": "The time the user was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the user from the profile",
            "type": "string"
          },
          "id": {
            "description": "The User ID for this user",
            "type": "string"
          },
          "name": {
            "description": "The name the user goes by",
            "type": "string"
          },
          "properties": {
            "additionalProperties": true,
            "type": "object"
          },
          "roles": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "type": {
            "description": "The type of the account. Could be user, service or system",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RolesResponse": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "UserProfileExtendedResponse": {
        "description": "UserProfileExtended holds the profile information of a user including properties only accessible to the user.",
        "example": {
          "created_at": "2020-12-19T09:32:46Z",
          "email": "jo.trigg@awesomecorp.com",
          "id": "d510224a-4641-48fd-8054-68efd3537ee2",
          "name": "Jo Trigg",
          "properties": {
            "dont_show_welcome_screen": true
          }
        },
        "properties": {
          "created_at": {
            "description": "The time the user was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the user from the profile",
            "type": "string"
          },
          "id": {
            "description": "The User ID for this user",
            "type": "string"
          },
          "name": {
            "description": "The name the user goes by",
            "type": "string"
          },
          "properties": {
            "additionalProperties": true,
            "type": "object"
          },
          "roles": {
            "$ref": "#/components/schemas/RolesResponse"
          },
          "type": {
            "description": "The type of the account. Could be user, service or system",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "created_at",
          "type",
          "properties",
          "roles"
        ],
        "type": "object"
      },
      "UserProfileResponse": {
        "description": "UserProfile holds the profile information of a user",
        "example": {
          "created_at": "2020-12-19T09:32:46Z",
          "email": "jo.trigg@awesomecorp.com",
          "id": "d510224a-4641-48fd-8054-68efd3537ee2",
          "name": "Jo Trigg",
          "type": "user"
        },
        "properties": {
          "created_at": {
            "description": "The time the user was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the user from the profile",
            "type": "string"
          },
          "id": {
            "description": "The User ID for this user",
            "type": "string"
          },
          "name": {
            "description": "The name the user goes by",
            "type": "string"
          },
          "type": {
            "description": "The type of the account. Could be user, service or system",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "created_at",
          "type"
        ],
        "type": "object"
      },
      "GroupRequest": {
        "description": "GroupRequest holds the definition of a new group.",
        "example": {
          "group_id": "my-idp-group",
          "idp_id": "my-idp",
          "role": "manager"
        },
        "additionalProperties": false,
        "properties": {
          "group_id": {
            "description": "The name of the group in the IdP.",
            "type": "string"
          },
          "idp_id": {
            "description": "The IdP id.",
            "type": "string",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
          },
          "role": {
            "description": "The organization role to be assigned to the group.",
            "$ref": "#/components/schemas/OrganizationRole"
          }
        },
        "required": [
          "group_id",
          "idp_id",
          "role"
        ],
        "type": "object"
      },
      "GroupWithRole": {
        "description": "GroupWithRole holds the metadata of a new group with its role in the organization.",
        "example": {
          "id": "g-d510224a-4641-48fd-8054-68efd3537ee2",
          "group_id": "my-idp-group",
          "idp_id": "my-idp",
          "role": "manager"
        },
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The id used in Humanitec to identify the group.",
            "type": "string"
          },
          "group_id": {
            "description": "The name of the group in the IdP",
            "type": "string"
          },
          "idp_id": {
            "description": "The IdP id.",
            "type": "string",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
          },
          "role": {
            "description": "The organization role to be assigned to the group.",
            "$ref": "#/components/schemas/OrganizationRole"
          },
          "created_at": {
            "description": "The time the user was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "group_id",
          "idp_id",
          "role"
        ],
        "type": "object"
      },
      "UserRoleRequest": {
        "description": "Holds the mapping of role for a subject on a particular object.",
        "example": {
          "id": "730c1f96-8ee5-4bff-8c22-898e0530b924",
          "role": "manager"
        },
        "properties": {
          "id": {
            "description": "The User or Group Id",
            "type": "string",
            "pattern": "^[a-z0-9](?:-?[a-z0-9]+)+$"
          },
          "role": {
            "description": "The role that this User or Group holds",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "id",
          "role"
        ]
      },
      "UserRoleResponse": {
        "description": "UserRole holds the mapping of role to user or group for a particular object.",
        "example": {
          "created_at": "2020-12-19T09:32:46Z",
          "email": "jo.trigg@awesomecorp.com",
          "id": "730c1f96-8ee5-4bff-8c22-898e0530b924",
          "invite": "accepted",
          "name": "Jo Trigg",
          "role": "manager",
          "type": "user"
        },
        "properties": {
          "created_at": {
            "description": "The time the user or the group was first registered with Humanitec",
            "example": "2020-06-22T09:37:23.523Z",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{3})?Z$",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the user from the profile",
            "type": "string"
          },
          "id": {
            "description": "The User or Group Id",
            "type": "string"
          },
          "invite": {
            "description": "The status of an invitation (If applicable)",
            "type": "string"
          },
          "name": {
            "description": "The name the User or Group goes by",
            "type": "string"
          },
          "role": {
            "description": "The role that this User or Group holds",
            "type": "string"
          },
          "type": {
            "description": "The type of the account. Could be user, service, group or system",
            "type": "string"
          },
          "idp_id": {
            "description": "The IdP id the group is registered for. Empty if user is not a group.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "created_at",
          "type",
          "role"
        ],
        "type": "object"
      },
      "OrganizationRole": {
        "description": "Roles that can be assumed by an entity on an organization.",
        "type": "string",
        "enum": [
          "administrator",
          "manager",
          "member",
          "artefactContributor",
          "orgViewer"
        ]
      },
      "SubjectPermissions": {
        "description": "Maps of objects and permissions the subject holds on them.",
        "type": "object",
        "properties": {
          "objects": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Permissions"
            }
          }
        },
        "required": [
          "objects"
        ],
        "additionalProperties": false
      },
      "Permissions": {
        "description": "List of permissions.",
        "properties": {
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "permissions"
        ]
      },
      "JSONPatchRequest": {
        "properties": {
          "op": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "value": {}
        },
        "type": "object"
      },
      "JSONPatchResponse": {
        "properties": {
          "op": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "op",
          "path"
        ],
        "type": "object"
      },
      "JSONPatchesResponse": {
        "items": {
          "$ref": "#/components/schemas/JSONPatchResponse"
        },
        "type": "array"
      },
      "ValueCreatePayloadRequest": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "is_secret": {
            "type": "boolean"
          },
          "key": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_.-]+$"
          },
          "value": {
            "nullable": true,
            "type": "string"
          },
          "secret_ref": {
            "nullable": true,
            "description": "A sensitive value to store or a reference to an already stored sensitive value.",
            "$ref": "#/components/schemas/SecretReference"
          }
        },
        "required": [
          "key",
          "description"
        ],
        "type": "object"
      },
      "ValueEditPayloadRequest": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "value": {
            "nullable": true,
            "type": "string"
          },
          "is_secret": {
            "type": "boolean"
          },
          "key": {
            "pattern": "^[A-Za-z0-9_.-]+$",
            "type": "string"
          },
          "secret_ref": {
            "nullable": true,
            "description": "A sensitive value to store or a reference to an already stored sensitive value.",
            "$ref": "#/components/schemas/SecretReference"
          }
        },
        "required": [
          "description"
        ],
        "type": "object"
      },
      "ValuePatchPayloadRequest": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "value": {
            "nullable": true,
            "type": "string"
          },
          "secret_ref": {
            "description": "A sensitive value to store or a reference to an already stored sensitive value.",
            "nullable": true,
            "$ref": "#/components/schemas/SecretReference"
          }
        },
        "type": "object"
      },
      "ValueRequest": {
        "description": "Shared Values can be used to manage variables and configuration that might vary between environments. They are also the way that secrets can be stored securely.\n\nShared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis.\n\nFor example: There might be 2 API keys that are used in an application. One development key used in the development and staging environments and another used for production. The development API key would be set at the Application level. The value would then be overridden at the Environment level for the production Environment.",
        "example": {
          "description": "The message to show me.",
          "is_secret": false,
          "key": "MY_MSG",
          "value": "Hello World"
        },
        "properties": {
          "description": {
            "description": "A Human friendly description of what the Shared Value is.",
            "type": "string"
          },
          "is_secret": {
            "description": "Specified that the Shared Value contains a secret.",
            "type": "boolean"
          },
          "key": {
            "description": "The unique key by which the Shared Value can be referenced. pattern: ^[a-zA-Z0-9._-]+$.",
            "type": "string"
          },
          "value": {
            "description": "The value that will be stored. (Will be always empty for secrets.)",
            "type": "string"
          },
          "secret_ref": {
            "description": "A sensitive value to store or a reference to an already stored sensitive value.",
            "$ref": "#/components/schemas/SecretReference"
          }
        },
        "type": "object"
      },
      "ValueResponse": {
        "description": "Shared Values can be used to manage variables and configuration that might vary between environments. They are also the way that secrets can be stored securely.\n\nShared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis.\n\nFor example: There might be 2 API keys that are used in an application. One development key used in the development and staging environments and another used for production. The development API key would be set at the Application level. The value would then be overridden at the Environment level for the production Environment.",
        "example": {
          "description": "The message to show me.",
          "is_secret": false,
          "key": "MY_MSG",
          "value": "Hello World"
        },
        "properties": {
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "description": {
            "description": "A Human friendly description of what the Shared Value is.",
            "type": "string"
          },
          "is_secret": {
            "description": "Specified that the Shared Value contains a secret.",
            "type": "boolean"
          },
          "key": {
            "description": "The unique key by which the Shared Value can be referenced. pattern: ^[a-zA-Z0-9._-]+$.",
            "type": "string"
          },
          "secret_key": {
            "description": "Location of the secret value in the secret store.",
            "nullable": true,
            "type": "string"
          },
          "secret_store_id": {
            "nullable": true,
            "type": "string"
          },
          "secret_version": {
            "description": "Version of the current secret value as returned by the secret store.",
            "nullable": true,
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ValueSource"
          },
          "updated_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "value": {
            "description": "The value that will be stored. (Will be always empty for secrets.)",
            "type": "string"
          }
        },
        "required": [
          "key",
          "value",
          "is_secret",
          "description",
          "created_at",
          "updated_at",
          "source",
          "secret_key",
          "secret_version",
          "secret_store_id"
        ],
        "type": "object"
      },
      "ValueSetActionPayloadRequest": {
        "properties": {
          "comment": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ValueSetResponse": {
        "additionalProperties": {
          "$ref": "#/components/schemas/ValueResponse"
        },
        "type": "object"
      },
      "ValueSetVersionResponse": {
        "description": "A Value Set Version can be used as a track record of Shared Values changes, to restore a previous version of a Shared Value or Value Set, or to purge a Shared Value if it shouldn't be accessible anymore.",
        "properties": {
          "change": {
            "$ref": "#/components/schemas/JSONPatchesResponse"
          },
          "comment": {
            "type": "string"
          },
          "created_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "result_of": {
            "$ref": "#/components/schemas/ValueSetVersionResultOf"
          },
          "source_value_set_version_id": {
            "nullable": true,
            "type": "string"
          },
          "updated_at": {
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "values": {
            "$ref": "#/components/schemas/ValueSetResponse"
          }
        },
        "required": [
          "id",
          "values",
          "change",
          "created_at",
          "created_by",
          "updated_at",
          "result_of",
          "comment",
          "source_value_set_version_id"
        ],
        "type": "object"
      },
      "ValueSource": {
        "description": "Source of the value, \"app\" for app level, \"env\" for app env level.",
        "type": "string",
        "enum": [
          "app",
          "env"
        ]
      },
      "ValueSetVersionResultOf": {
        "type": "string",
        "nullable": true,
        "enum": [
          "app_value_create",
          "app_value_update",
          "app_value_delete",
          "app_values_delete",
          "app_value_set_version_restore",
          "app_value_set_version_purge",
          "env_value_create",
          "env_value_update",
          "env_value_delete",
          "env_values_delete",
          "env_value_set_version_restore",
          "env_value_set_version_purge"
        ]
      },
      "SecretReference": {
        "type": "object",
        "nullable": true,
        "description": "It stores sensitive value in the organization primary store or a reference to a sensitive value stored in a store registered under the organization.",
        "properties": {
          "store": {
            "description": "Secret Store id. This can't be `humanitec` (our internal Secret Store). It's mandatory if `ref` is defined and can't be used if `value` is defined.",
            "type": "string"
          },
          "ref": {
            "description": "Secret reference in the format of the target store. It can't be defined if `value` is defined.",
            "type": "string"
          },
          "version": {
            "description": "Optional, only valid if `ref` is defined. It's the version of the secret as defined in the target store.",
            "type": "string"
          },
          "value": {
            "description": "Value to store in the secret store. It can't be defined if `ref` is defined.",
            "type": "string"
          }
        }
      },
      "WorkloadProfileFeatureResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "org_id": {
            "type": "string"
          },
          "schema": {
            "additionalProperties": true,
            "type": "object"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "org_id",
          "id",
          "schema",
          "version"
        ],
        "type": "object"
      },
      "WorkloadProfileRequest": {
        "description": "Workload Profiles provide the baseline configuration for Workloads in Applications in Humanitec. Developers can configure various features of a workload profile to suit their needs. Examples of features might be `schedules` used in Kubernetes CronJobs or `ingress` which might be used to expose Pods controlled by a Kubernetes Deployment.\n\nWorkloads in Humanitec are implemented as Helm Charts which must implement a specific schema.",
        "properties": {
          "id": {
            "description": "Workload Profile ID",
            "type": "string"
          },
          "description": {
            "description": "Describes the workload profile",
            "type": "string"
          },
          "deprecation_message": {
            "description": "A not-empty string indicates that the workload profile is deprecated.",
            "type": "string"
          },
          "spec_definition": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinition"
          },
          "version": {
            "description": "Version identifier. The version must be unique, but the API doesn't not enforce any ordering. Currently workloads will always use the latest update.\n\nIf no identifier is provided, the each update will generate a random version identifier.",
            "type": "string"
          },
          "workload_profile_chart": {
            "$ref": "#/components/schemas/WorkloadProfileChartReference"
          }
        },
        "required": [
          "id",
          "spec_definition",
          "workload_profile_chart"
        ],
        "type": "object"
      },
      "WorkloadProfileUpdateRequest": {
        "description": "The proposed properties to update a workload profile.",
        "properties": {
          "description": {
            "description": "Describes the workload profile",
            "type": "string"
          },
          "deprecation_message": {
            "description": "A not-empty string indicates that the workload profile is deprecated.",
            "type": "string"
          },
          "spec_definition": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinition"
          },
          "version": {
            "description": "Version identifier. The version must be unique, but the API doesn't not enforce any ordering. Currently workloads will always use the latest update.\n\nIf no identifier is provided, the each update will generate a random version identifier.",
            "type": "string"
          },
          "workload_profile_chart": {
            "$ref": "#/components/schemas/WorkloadProfileChartReference"
          }
        },
        "required": [
          "spec_definition",
          "workload_profile_chart"
        ],
        "type": "object"
      },
      "WorkloadProfileResponse": {
        "description": "Workload Profiles provide the baseline configuration for Workloads in Applications in Humanitec. Developers can configure various features of a workload profile to suit their needs. Examples of features might be `schedules` used in Kubernetes CronJobs or `ingress` which might be used to expose Pods controlled by a Kubernetes Deployment.\n\nWorkloads in Humanitec are implemented as Helm Charts which must implement a specific schema.",
        "properties": {
          "created_at": {
            "description": "Creation date",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "User created the profile",
            "type": "string"
          },
          "description": {
            "description": "Describes the workload profile",
            "type": "string"
          },
          "deprecation_message": {
            "description": "A not-empty string indicates that the workload profile is deprecated.",
            "type": "string"
          },
          "id": {
            "description": "Workload Profile ID",
            "type": "string"
          },
          "org_id": {
            "description": "Organization ID",
            "type": "string"
          },
          "spec_definition": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinition"
          },
          "spec_schema": {
            "description": "OpenAPI schema used to validate the spec."
          },
          "updated_at": {
            "description": "Timestamp when the entity was last updated.",
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "description": "User who last updated the entity.",
            "type": "string"
          },
          "version": {
            "description": "Version identifier.",
            "type": "string"
          },
          "workload_profile_chart": {
            "$ref": "#/components/schemas/WorkloadProfileChartReference"
          }
        },
        "required": [
          "created_at",
          "created_by",
          "description",
          "id",
          "org_id",
          "spec_definition",
          "spec_schema",
          "updated_at",
          "updated_by",
          "version",
          "workload_profile_chart"
        ],
        "type": "object"
      },
      "WorkloadProfileVersionResponse": {
        "description": "A version of a workload profile.",
        "properties": {
          "created_at": {
            "description": "Creation date",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "User created the profile",
            "type": "string"
          },
          "description": {
            "description": "Describes the workload profile",
            "type": "string"
          },
          "deprecation_message": {
            "description": "A not-empty string indicates that the workload profile is deprecated.",
            "type": "string"
          },
          "id": {
            "description": "ID",
            "type": "string"
          },
          "org_id": {
            "description": "Organization ID",
            "type": "string"
          },
          "spec_definition": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinition"
          },
          "spec_schema": {
            "description": "OpenAPI schema used to validate the spec."
          },
          "workload_profile_chart": {
            "$ref": "#/components/schemas/WorkloadProfileChartReference"
          },
          "workload_profile_id": {
            "description": "Workload Profile ID",
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "created_by",
          "description",
          "id",
          "org_id",
          "spec_definition",
          "spec_schema",
          "version",
          "workload_profile_chart",
          "workload_profile_id"
        ],
        "type": "object"
      },
      "WorkloadProfileSpecDefinition": {
        "description": "Workload spec definition",
        "type": "object",
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionProperties"
          },
          "runtime_properties": {
            "items": {
              "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionRuntimeProperty"
            },
            "type": "array"
          }
        }
      },
      "WorkloadProfileSpecDefinitionProperties": {
        "type": "object",
        "description": "Workload spec definition",
        "additionalProperties": {
          "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionProperty"
        }
      },
      "WorkloadProfileSpecDefinitionProperty": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionPropertyType"
          },
          "feature_name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "ui_hints": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionPropertyUIHints"
          },
          "schema": {
            "additionalProperties": true,
            "type": "object"
          },
          "runtime_properties": {
            "items": {
              "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionRuntimeProperty"
            },
            "type": "array"
          },
          "properties": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionProperties"
          }
        },
        "required": [
          "type"
        ]
      },
      "WorkloadProfileSpecDefinitionRuntimeProperty": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionRuntimePropertyType"
          },
          "feature_name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "ui_hints": {
            "$ref": "#/components/schemas/WorkloadProfileSpecDefinitionPropertyUIHints"
          }
        },
        "required": [
          "type"
        ]
      },
      "WorkloadProfileSpecDefinitionPropertyType": {
        "type": "string",
        "enum": [
          "feature",
          "collection",
          "schema"
        ]
      },
      "WorkloadProfileSpecDefinitionRuntimePropertyType": {
        "type": "string",
        "enum": [
          "feature",
          "collection"
        ]
      },
      "WorkloadProfileSpecDefinitionPropertyUIHints": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "order": {
            "type": "integer"
          },
          "hidden": {
            "type": "boolean"
          }
        }
      },
      "WorkloadProfileChartVersionResponse": {
        "description": "Each Workload Profile Chart has one or more Versions associated with it.",
        "properties": {
          "created_at": {
            "description": "Creation date",
            "example": "2020-06-22T09:37:23.523Z",
            "format": "date-time",
            "title": "Simplified extended ISO format date/time string.",
            "type": "string"
          },
          "created_by": {
            "description": "User created the profile",
            "type": "string"
          },
          "org_id": {
            "description": "Organization ID",
            "type": "string"
          },
          "id": {
            "description": "Workload Profile Chart Version ID",
            "type": "string"
          },
          "version": {
            "description": "Version",
            "type": "string"
          }
        },
        "required": [
          "org_id",
          "id",
          "version",
          "created_at",
          "created_by"
        ],
        "type": "object"
      },
      "WorkloadProfileChartReference": {
        "description": "References a workload profile chart.",
        "properties": {
          "id": {
            "description": "Workload Profile Chart ID",
            "type": "string",
            "minLength": 1
          },
          "version": {
            "description": "Version",
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id",
          "version"
        ],
        "type": "object"
      }
    },
    "headers": {
      "Etag": {
        "description": "The Etag of the resource",
        "example": "1234567890abcdef",
        "schema": {
          "type": "string"
        }
      },
      "Link": {
        "schema": {
          "type": "string"
        },
        "description": "A list of request links, optionally including a \"next\" page link for pagination."
      }
    }
  },
  "servers": [
    {
      "url": "https://api.humanitec.io/"
    }
  ],
  "externalDocs": {
    "description": "Find out more about how to use Humanitec in your every-day development work.",
    "url": "https://developer.humanitec.com/"
  },
  "x-tagGroups": [
    {
      "name": "Core",
      "tags": [
        "Agents",
        "Application",
        "Artefact",
        "ArtefactVersion",
        "AuditLogs",
        "Logs",
        "Deployment",
        "EnvironmentType",
        "Environment",
        "Image",
        "PublicKeys",
        "Organization",
        "Registry",
        "RuntimeInfo",
        "SecretStore",
        "Value",
        "ValueSetVersion"
      ]
    },
    {
      "name": "App Configuration",
      "tags": [
        "Delta",
        "Set",
        "WorkloadProfile"
      ]
    },
    {
      "name": "Resources",
      "tags": [
        "ActiveResource",
        "DriverDefinition",
        "MatchingCriteria",
        "ResourceDefinition",
        "ResourceDefinitionVersion",
        "ResourceProvision",
        "AccountType",
        "ResourceAccount",
        "ResourceType",
        "ResourceClass"
      ]
    },
    {
      "name": "Automation",
      "tags": [
        "AutomationRule",
        "Event",
        "Pipelines",
        "PipelineRuns",
        "PipelineApprovals"
      ]
    },
    {
      "name": "Users",
      "tags": [
        "UserProfile",
        "UserRole",
        "Group",
        "TokenInfo"
      ]
    }
  ],
  "tags": [
    {
      "name": "AccountType",
      "x-displayName": "Resource Account Types",
      "description": "Resource Account Types define cloud providers or protocols to which a resource account can belong.\n<SchemaDefinition schemaRef=\"#/components/schemas/AccountTypeRequest\" />\n"
    },
    {
      "name": "ActiveResource",
      "x-displayName": "Active Resources",
      "description": "Active Resources represent the concrete resources provisioned for an Environment. They are provisioned on the first deployment after a dependency on a particular resource type is introduced into an Environment. In general, Active Resources are only deleted when their introductory Environment is deleted.\n\nActive Resources are provisioned based on a Resource Definition. The Resource Definition describes how to provision a concrete resource based on a Resource Type and metadata about the Environment (for example the Environment Type or the Application ID). The criteria for how to choose a Resource Definition is known as a Matching Criteria. If the Matching Criteria changes or the Resource Definition is deleted, the concrete resource represented by an Active Resource might be deleted and reprovisioned when a deployment occurs in the Environment.\n<SchemaDefinition schemaRef=\"#/components/schemas/ActiveResourceRequest\" />\n"
    },
    {
      "name": "Agents",
      "x-displayName": "Agents",
      "description": "An object containing the details of an Agent.\n<SchemaDefinition schemaRef=\"#/components/schemas/Agent\" />\n"
    },
    {
      "name": "Application",
      "x-displayName": "Applications",
      "description": "An Application is a collection of Workloads that work together. When deployed, all Workloads in an Application are deployed to the same namespace.\n\nApps are the root of the configuration tree holding Environments, Deployments, Shared Values, and Secrets.\n<SchemaDefinition schemaRef=\"#/components/schemas/ApplicationRequest\" />\n"
    },
    {
      "name": "Artefact",
      "x-displayName": "Artefact",
      "description": "Artefacts can be registered with Humanitec. Continuous Integration (CI) pipelines notify Humanitec when a new version of an Artefact becomes available. Humanitec tracks the Artefact along with metadata about how it was built.\n<SchemaDefinition schemaRef=\"#/components/schemas/ArtefactResponse\" />\n"
    },
    {
      "name": "ArtefactVersion",
      "x-displayName": "Artefact Version",
      "description": "Details of a Container Artefact Version\n<SchemaDefinition schemaRef=\"#/components/schemas/ContainerArtefactVersion\" />\n"
    },
    {
      "name": "AuditLogs",
      "x-displayName": "Audit Logs",
      "description": "An entry in the audit log\n<SchemaDefinition schemaRef=\"#/components/schemas/AuditLogEntry\" />\n"
    },
    {
      "name": "AutomationRule",
      "x-displayName": "Automation Rules",
      "description": "An Automation Rule defining how and when artefacts in an environment should be updated.\n<SchemaDefinition schemaRef=\"#/components/schemas/AutomationRuleRequest\" />\n"
    },
    {
      "name": "Delta",
      "x-displayName": "Deployment Deltas",
      "description": "A Deployment Delta (or just \"Delta\") describes the changes that must be applied to one Deployment Set to generate another Deployment Set. Deployment Deltas are the only way to create new Deployment Sets.\n\nDeployment Deltas can be created fully formed or combined together via PATCHing. They can also be generated from the difference between two Deployment Sets.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Delta.>,\n   \"metadata\": {\n     <Properties such as who created the Delta, which Environment it is associated to and a Human-friendly name>\n   }\n   \"modules\" : {\n     \"add\" : {\n       <ID of Module to add to the Deployment Set> : {\n         <An entire Modules object>\n       }\n     },\n     \"remove\": [\n       <An array of Module IDs that should be removed from the Deployment Set>\n     ],\n    \"update\": {\n       <ID of Module already in the Set to be updated> : [\n         <An array of JSON Patch (Search Results (RFC 6902) objects scoped to the module>\n       ]\n     }\n   }\n }\n```\n<SchemaDefinition schemaRef=\"#/components/schemas/DeltaRequest\" />\n"
    },
    {
      "name": "Deployment",
      "x-displayName": "Deployments",
      "description": "Deployments represent updates to the running state of an Environment.\n\nDeployments are made by applying _Deltas_ to a state defined by an existing Deployment. The Environment’s from_deploy property defines the Deployment. This Deployment is usually but not always in the current Environment. If the Deployment is from another Environment, the state of that Environment will be \"cloned\" into the current Environment with the option to apply a Delta.\n<SchemaDefinition schemaRef=\"#/components/schemas/DeploymentRequest\" />\n"
    },
    {
      "name": "DriverDefinition",
      "x-displayName": "Resource Drivers",
      "description": "DriverDefinition describes the resource driver.\n\nResource Drivers are code that fulfils the Humanitec Resource Driver Interface. This interface allows for certain actions to be performed on resources such as creation and destruction. Humanitec provides numerous Resource Drivers “out of the box”. It is also possible to use 3rd party Resource Drivers or write your own.\n<SchemaDefinition schemaRef=\"#/components/schemas/DriverDefinitionResponse\" />\n"
    },
    {
      "name": "Environment",
      "x-displayName": "Environments",
      "description": "Environments are independent spaces where Applications can run. An Application is always deployed into an Environment.\n<SchemaDefinition schemaRef=\"#/components/schemas/EnvironmentResponse\" />\n"
    },
    {
      "name": "EnvironmentType",
      "x-displayName": "Environment Types",
      "description": "Environment Types are a way of grouping and managing Environments. Every Environment has exactly 1 Environment Type.\n\nEnvironment Types can be used with External Resources to manage where resources such as databases are provisioned or even which cluster to deploy to.\n<SchemaDefinition schemaRef=\"#/components/schemas/EnvironmentTypeRequest\" />\n"
    },
    {
      "name": "Group",
      "x-displayName": "User Groups",
      "description": "GroupRequest holds the definition of a new group.\n<SchemaDefinition schemaRef=\"#/components/schemas/GroupRequest\" />\n"
    },
    {
      "name": "Image",
      "x-displayName": "Image",
      "description": "DEPRECATED: This type exists for historical compatibility and should not be used. Please use the [Artefact API](https://api-docs.humanitec.com/#tag/Artefact) instead.\n\nContainer Images (known simply as Images) can be registered with Humanitec. Continuous Integration (CI) pipelines can then notify Humanitec when a new build of a Container Image becomes available. Humanitec tracks the Image along with metadata about how it was built.\n<SchemaDefinition schemaRef=\"#/components/schemas/ImageRequest\" />\n"
    },
    {
      "name": "PublicKeys",
      "x-displayName": "Keys",
      "description": "PublicKey stores a Public Key an organization shares with Humanitec.\n<SchemaDefinition schemaRef=\"#/components/schemas/PublicKey\" />\n"
    },
    {
      "name": "Logs",
      "x-displayName": "Container Logs",
      "description": "A container log entry.\n<SchemaDefinition schemaRef=\"#/components/schemas/OutputEntryResponse\" />\n"
    },
    {
      "name": "MatchingCriteria",
      "x-displayName": "MatchingCriteria",
      "description": "Matching Criteria are a set of rules used to choose which Resource Definition to use to provision a particular Resource Type.\n\nMatching criteria are made up in order of specificity with least specific first:\n\n- Environment Type (`env_type`)\n\n- Application (`app_id`)\n\n- Environment (`env_id`)\n\n- Resource (`res_id`)\n\nWhen selecting matching criteria, the most specific one is selected. In general, this means of all the Matching Criteria fully matching the context, the Matching Criteria Rule with the most specific element filled is chosen. If there is a tie, the next most specific elements are compared and so on until one is chosen.\n\n**NOTE:**\n\nHumanitec will reject the registration of matching criteria rules that duplicate rules already present for a Resource Type.\n<SchemaDefinition schemaRef=\"#/components/schemas/MatchingCriteriaResponse\" />\n"
    },
    {
      "name": "Organization",
      "x-displayName": "Organization",
      "description": "An Organization is the top level object in Humanitec. All other objects belong to an Organization.\n<SchemaDefinition schemaRef=\"#/components/schemas/OrganizationResponse\" />\n"
    },
    {
      "name": "PipelineApprovals",
      "x-displayName": "Pipeline Approvals",
      "description": "An approval object\n<SchemaDefinition schemaRef=\"#/components/schemas/PipelineApprovalRequest\" />\n"
    },
    {
      "name": "PipelineRuns",
      "x-displayName": "Pipeline Runs",
      "description": "Details of a Run within the Pipeline.\n<SchemaDefinition schemaRef=\"#/components/schemas/PipelineRun\" />\n"
    },
    {
      "name": "Pipelines",
      "x-displayName": "Pipelines",
      "description": "An object containing the details of a Pipeline.\n<SchemaDefinition schemaRef=\"#/components/schemas/Pipeline\" />\n"
    },
    {
      "name": "Registry",
      "x-displayName": "Registry",
      "description": "Humanitec can be used to manage registry credentials. The Registry object represents how to match credentials to a particular registry.\n\nHumanitec supports all Docker compatible registries as well as the custom authentication formats used by AWS Elastic Container Registry and Google Container Registry. It also supports the injection of a specific secret to be copied from an existing namespace in the cluster.\n<SchemaDefinition schemaRef=\"#/components/schemas/RegistryRequest\" />\n"
    },
    {
      "name": "Replicas",
      "x-displayName": "Replicas",
      "description": "null\n<SchemaDefinition schemaRef=\"#/components/schemas/ReplicasRequest\" />\n"
    },
    {
      "name": "ResourceAccount",
      "x-displayName": "Resource Accounts",
      "description": "ResourceAccount represents the account being used to access a resource.\n\nResource Accounts hold credentials that are required to provision and manage resources.\n<SchemaDefinition schemaRef=\"#/components/schemas/ResourceAccountResponse\" />\n"
    },
    {
      "name": "ResourceDefinition",
      "x-displayName": "Definitions",
      "description": "A Resource Definitions describes how and when a resource should be provisioned. It links a driver (the how) along with a Matching Criteria (the when) to a Resource Type. This allows Humanitec to invoke a particular driver for the required Resource Type in the context of a particular Application and Environment.\n\nThe schema for the `driver_inputs` is defined by the `input_schema` property on the DriverDefinition identified by the `driver_type` property.\n<SchemaDefinition schemaRef=\"#/components/schemas/ResourceDefinitionResponse\" />\n"
    },
    {
      "name": "ResourceDefinitionVersion",
      "x-displayName": "Definition Versions",
      "description": "A Resource Definition Version represents a version of a Resource Definition.\n<SchemaDefinition schemaRef=\"#/components/schemas/ResourceDefinitionVersion\" />\n"
    },
    {
      "name": "ResourceProvision",
      "x-displayName": "Resources Dependency",
      "description": "ResourceProvisionRequest is the payload passed to the resource provisioner, specifying the resources to be provisioned.\n<SchemaDefinition schemaRef=\"#/components/schemas/ResourceProvisionRequestRequest\" />\n"
    },
    {
      "name": "ResourceType",
      "x-displayName": "Resources Types",
      "description": "Resources Types define the technology that Applications can have dependencies on.\n\nEach Resource Type also defines a set of input parameters (`inputs_schema`), and a set of output data (`outputs_schema`). When provisioning a resource, these are treated as inputs and outputs respectively.\n<SchemaDefinition schemaRef=\"#/components/schemas/ResourceTypeRequest\" />\n"
    },
    {
      "name": "RuntimeInfo",
      "x-displayName": "Runtime Information",
      "description": "RuntimeInfo object returned by the runtime endpoint. Represents a list post statuses grouped by modules and controllers (deployments and stateful sets).\n<SchemaDefinition schemaRef=\"#/components/schemas/RuntimeInfoResponseV2\" />\n"
    },
    {
      "name": "SecretStore",
      "x-displayName": "Secret Store",
      "description": "Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec.\n<SchemaDefinition schemaRef=\"#/components/schemas/SecretStoreRequest\" />\n"
    },
    {
      "name": "Set",
      "x-displayName": "Deployment Sets",
      "description": "A Deployment Set (or just \"Set\") defines all of the non-Environment specific configuration for Modules and External Resources. Each of these Modules or External Resources has a unique name.\n\nDeployment Sets are immutable and their ID is a cryptographic hash of their content. This means that a Deployment Set can be globally identified based on its ID. It also means that referencing a Deployment Set by ID will always return the same Deployment Set.\n\nDeployment Sets cannot be created directly, instead they are created by applying a Deployment Delta to an existing Deployment Set.\n\n**Basic Structure**\n\n```\n {\n   \"id\": <ID of the Deployment Set>,\n   \"modules\" : {\n     <ID of Module> : {\n       \"profile\": <Defines how the optional \"spec\" property is interpreted>\n       \"spec\": {\n         <Properties that depend on the \"profile\" property.>\n       }\n       \"externals\": {\n         <External Resource Name> : {\n           \"type\": <Resource Type>,\n           \"params\": {\n             <Properties which parametrize the resource depending on the Resource Type.>\n           }\n         }\n       }\n     }\n   }\n }\n```\n\nFor details about how the Humanitec provided profiles work, see (Deployment Set Profiles)[].\n<SchemaDefinition schemaRef=\"#/components/schemas/SetRequest\" />\n"
    },
    {
      "name": "TokenInfo",
      "x-displayName": "Token Info",
      "description": "Holds metadata about a token. `expires_at` is excluded if token does not expire.\n<SchemaDefinition schemaRef=\"#/components/schemas/TokenInfoResponse\" />\n"
    },
    {
      "name": "UserProfile",
      "x-displayName": "User Profiles",
      "description": "UserProfile holds the profile information of a user\n<SchemaDefinition schemaRef=\"#/components/schemas/UserProfileResponse\" />\n"
    },
    {
      "name": "UserRole",
      "x-displayName": "User Roles",
      "description": "Holds the mapping of role for a subject on a particular object.\n<SchemaDefinition schemaRef=\"#/components/schemas/UserRoleRequest\" />\n"
    },
    {
      "name": "Value",
      "x-displayName": "Shared Values",
      "description": "Shared Values can be used to manage variables and configuration that might vary between environments. They are also the way that secrets can be stored securely.\n\nShared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis.\n\nFor example: There might be 2 API keys that are used in an application. One development key used in the development and staging environments and another used for production. The development API key would be set at the Application level. The value would then be overridden at the Environment level for the production Environment.\n<SchemaDefinition schemaRef=\"#/components/schemas/ValueRequest\" />\n"
    },
    {
      "name": "ValueSetVersion",
      "x-displayName": "Shared Value Set Version",
      "description": "A Value Set Version can be used as a track record of Shared Values changes, to restore a previous version of a Shared Value or Value Set, or to purge a Shared Value if it shouldn't be accessible anymore.\n<SchemaDefinition schemaRef=\"#/components/schemas/ValueSetVersionResponse\" />\n"
    },
    {
      "name": "Event",
      "x-displayName": "Webhooks",
      "description": "Webhook is a special type of a Job. It performs an HTTPS request to a specified URL with specified headers.\n<SchemaDefinition schemaRef=\"#/components/schemas/WebhookRequest\" />\n"
    },
    {
      "name": "WorkloadProfile",
      "x-displayName": "Workload Profiles",
      "description": "Workload Profiles provide the baseline configuration for Workloads in Applications in Humanitec. Developers can configure various features of a workload profile to suit their needs. Examples of features might be `schedules` used in Kubernetes CronJobs or `ingress` which might be used to expose Pods controlled by a Kubernetes Deployment.\n\nWorkloads in Humanitec are implemented as Helm Charts which must implement a specific schema.\n<SchemaDefinition schemaRef=\"#/components/schemas/WorkloadProfileRequest\" />\n"
    }
  ]
}
