openapi: 3.0.0 info: title: Humanitec API version: 0.28.24 description: '# Introduction The *Humanitec API* allows you to automate and integrate Humanitec into your developer and operational workflows. The API is a REST based API. It is based around a set of concepts: * Core * External Resources * Sets and Deltas ## Authentication Almost 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. ## Content Types The Humanitec API, unless explicitly specified, only accepts content types of `application/json` and will always return valid `application/json` or an empty response. ## Response Codes ### Success Any response code in the `2xx` range should be regarded as success. | **Code** | **Meaning** | |----------|-------------------------------------| | `200` | Success | | `201` | Success, a new resource was created | | `204` | Success, but no content in response | _Note: We plan to simplify the interface by replacing 201 with 200 status codes._ ### Failure Any 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. | **Code** | **Meaning** | |----------|-----------------------------------------------------------------------------------------------------------------------| | `400` | General error. (Body will contain details) | | `401` | Attempt to access protected resource without `Authorization` Header. | | `403` | The `Bearer` or `JWT` does not grant access to the requested resource. | | `404` | Resource not found. | | `405` | Method not allowed | | `409` | Conflict. Usually indicated a resource with that ID already exists. | | `422` | Unprocessable Entity. The body was not valid JSON, was empty or contained an object different from what was expected. | | `429` | Too many requests - request rate limit has been reached. | | `500` | Internal Error. If it occurs repeatedly, contact support. | ' 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. ' 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. ' required: true schema: type: string requestBody: description: 'The request ID, Human-friendly name and environment of the Application. ' required: true content: application/json: schema: $ref: '#/components/schemas/ApplicationCreationRequest' responses: '201': description: 'The Application requested. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '401': description: 'The Authorization header was not present or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'The supplied `id` clashes with an existing Application. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '200': description: 'The Application requested. ' 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' 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. _Deletions are currently irreversible._' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '204': description: 'Application Successfully deleted. ' '202': description: 'Application deletion is in progress. ' '401': description: 'The Authorization header was not present or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Application with `id` in Organization. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '200': description: 'A list of Environments associated with an Application. ' 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`. The 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.) The Type of the Environment must be already defined in the Organization.' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string requestBody: description: 'The ID, Name, Type, and Deployment the Environment will be derived from. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentResponse' example: {} '400': description: 'The supplied `id` is an invalid ID or a required field is missing. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Application with `id` in Organization. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'The supplied `id` clashes with an existing Environment. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string responses: '200': description: 'The Environment requested. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentResponse' example: {} '404': description: 'No Environment with `id` in Application. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/EnvironmentBaseUpdateRequest' responses: '200': description: 'The updated Environment. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentResponse' example: {} '404': description: 'No Environment with `id` in Application. ' 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. Deleting an Environment will also delete the Deployment history of the Environment. _Deletions are currently irreversible._' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string responses: '204': description: 'Environment successfully deleted. ' '202': description: 'Environment deletion is in progress. ' '400': description: 'Attempt to delete the last Environment in an Application. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Environment with `envId` in Application. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: pipelineRunId in: query description: 'An optional filter by the Pipeline and Pipeline Run ID separated by a comma. ' example: default,01234567-89ab-cdef-0123-456789abcdef schema: type: string responses: '200': description: 'A possibly empty list of Deployments. ' content: application/json: schema: items: $ref: '#/components/schemas/DeploymentResponse' type: array example: - {} '404': description: 'No Environment with `id` in Application. ' 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. When specifying a Delta, a Delta ID must be used. That Delta must have been committed to the Delta store prior to the Deployment. A 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. **NOTE:** Directly 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string requestBody: description: 'The Delta describing the change to the Environment and a comment. ' 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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Environment with `id` in Application. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'There is already an active deployment in the Environment. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: deployId in: path description: 'The Deployment ID. ' required: true schema: type: string responses: '200': description: 'The Deployment requested. ' content: application/json: schema: $ref: '#/components/schemas/DeploymentResponse' example: {} '404': description: 'No Deployment with `deployId` in Application and Environment. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: deployId in: path description: 'The Deployment ID. ' required: true schema: type: string responses: '200': description: 'A List of deployment errors, could be empty. ' 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. _Running code will only be affected on the next Deployment to the Environment._ Common use cases for rebasing an Environment: * _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. * _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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string requestBody: description: 'The Deployment ID to rebase to. ' required: true content: application/json: schema: type: string responses: '204': description: 'Rebase successful. ' '400': description: 'No Deployment with ID found in Application. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Environment with ID found in Application and Organization. ' 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. ' required: true schema: type: string responses: '200': description: 'A list of Environment Types. ' 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. ' required: true schema: type: string requestBody: description: 'New Environment Type. ' required: true content: application/json: schema: $ref: '#/components/schemas/EnvironmentTypeRequest' responses: '201': description: 'The Environment Type requested. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentTypeResponse' '400': description: 'The supplied `id` is not a valid ID or a required field is missing. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '401': description: 'The Authorization header was not present or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'The supplied `id` clashes with an existing Environment Type. ' 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. ' required: true schema: type: string - name: envTypeId in: path description: 'ID of the Environment Type. ' required: true schema: type: string responses: '200': description: 'The Environment Type requested. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentTypeResponse' '404': description: 'No Environment Type with `id` in Organization. ' 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. ' required: true schema: type: string - name: envTypeId in: path description: 'ID of the Environment Type. ' required: true schema: type: string responses: '204': description: 'The Environment Type requested. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentTypeResponse' '401': description: 'The Authorization header was not present or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Environment Type with ID `envTypeId` in Organization. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'There are 1 or more Environments with this Type. To 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. ' required: true schema: type: string - name: envTypeId in: path description: 'ID of the Environment Type. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateEnvironmentTypePayloadRequest' responses: '200': description: 'The Environment Type updated. ' content: application/json: schema: $ref: '#/components/schemas/EnvironmentTypeResponse' '401': description: 'The Authorization header was not present or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Environment Type with provided ID exists. ' 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 returned if it is not. ' 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 returned if it is not. ' 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. Lists 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. The response includes a list of Image Builds as well as some metadata about the Image such as its Image Source. Note, `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. The 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. This endpoint is used by Continuous Integration (CI) pipelines to notify Humanitec that a new Image Build is available. If 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. This API requires administrator permissions in the Organization. ' 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. ' schema: type: boolean - name: env in: query description: 'Only return Deltas associated with the specified Environment. ' schema: type: string pattern: ^[a-z0-9](?:-?[a-z0-9]+)+$ responses: '200': description: 'A possibly empty list of Deployment Deltas. ' 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. The Deployment Delta will be added with the provided content of `modules` and the ''env_id'' and ''name'' properties of the ''metadata'' property. NOTE: 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. ' content: application/json: schema: oneOf: - type: string - $ref: '#/components/schemas/DeltaResponse' '400': description: 'The request was invalid. ' 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. ' 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. ' 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. ' required: true schema: type: string requestBody: description: 'An array of Deltas. The 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. * 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. * All IDs listed in `modules.remove` are combined. Any ID in `modules.remove` and also in `modules.add` are removed from `modules.add` * The lists of JSON Patches in `modules.update` are concatenated or created in `modules.updates`. Simplification involves: * Applying any entries in `modules.updates` that have matching IDs in `modules.add` to the `modules.add` entry and removing the `modules.update` entry. * Reducing the number of JSON Patches in each `modules.update` entry to the smallest set that has the same effect. **Extension to JSON Patch** If 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. If 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. _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. ' content: application/json: schema: $ref: '#/components/schemas/DeltaResponse' '400': description: 'The request was invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Delta with ID `deltaId` found in Application. ' 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. ' required: true schema: type: string requestBody: description: 'An array of Deltas. The 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. * 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. * All IDs listed in `modules.remove` are combined. Any ID in `modules.remove` and also in `modules.add` are removed from `modules.add` * The lists of JSON Patches in `modules.update` are concatenated or created in `modules.updates`. Simplification involves: * Applying any entries in `modules.updates` that have matching IDs in `modules.add` to the `modules.add` entry and removing the `modules.update` entry. * Reducing the number of JSON Patches in each `modules.update` entry to the smallest set that has the same effect. **Extension to JSON Patch** If 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. If 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. _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. ' '400': description: 'The request was invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Delta with ID `deltaId` found in Application. ' 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. ' required: true schema: type: string requestBody: description: 'Either `true` or `false`. ' required: true content: application/json: schema: type: boolean example: true responses: '204': description: 'Archived state successfully updated. ' '400': description: 'The request was invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Delta with ID `deltaId` found in Application. ' 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. ' required: true schema: type: string requestBody: description: 'The new Environment ID. (NOTE: The string must still be JSON encoded.) ' required: true content: application/json: schema: $ref: '#/components/schemas/EnvironmentID' example: new-env responses: '204': description: 'Environment ID successfully updated. ' '400': description: 'The request was invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Delta with ID `deltaId` found in Application. ' 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. ' required: true schema: type: string requestBody: description: 'The new name.(NOTE: The string must still be JSON encoded.) ' required: true content: application/json: schema: type: string example: 'Update for ticket #s 2568 & 2572' responses: '204': description: 'Name successfully updated. ' '400': description: 'The request was invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Delta with ID `deltaId` found in Application. ' 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. ' content: application/json: schema: items: $ref: '#/components/schemas/SetResponse' type: array '404': description: 'No Deployment Set with ID `setId` found in Application. ' 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. ' 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. ' content: application/json: schema: oneOf: - $ref: '#/components/schemas/SetResponse' - $ref: '#/components/schemas/PlainDeltaResponse' '404': description: 'No Deployment Set with ID `setId` found in Application. ' 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. ' required: true schema: type: string requestBody: description: 'The Delta to apply to the Set. NOTE: 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`. ' content: application/json: schema: type: string '400': description: 'Deployment Delta is incompatible with the Deployment Set specified by `setId`. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No Deployment Set with ID `setId` found in Application. ' 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. ' required: true schema: type: string - name: sourceSetId in: path description: 'ID of the Deployment Set to diff against. ' 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`. ' content: application/json: schema: $ref: '#/components/schemas/PlainDeltaResponse' '404': description: 'No Deployment Set with ID `setId` or `sourceSetId` found in Application. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '204': description: 'Deleted successfully. ' /orgs/{orgId}/apps/{appId}/webhooks: get: tags: - public - Event summary: List Webhooks parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '200': description: 'A list of Webhooks. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookRequest' responses: '201': description: 'A created webhook. ' content: application/json: schema: $ref: '#/components/schemas/WebhookResponse' '400': description: 'Some of the values supplied are invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'The supplied `id` clashes with an existing Job. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: jobId in: path description: 'The Webhook ID. ' required: true schema: type: string responses: '200': description: 'The requested webhook. ' content: application/json: schema: $ref: '#/components/schemas/WebhookResponse' '404': description: 'The requested webhook not found. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: jobId in: path description: 'The Webhook ID. ' required: true schema: type: string responses: '204': description: 'Deleted successfully ' '404': description: 'The requested webhook not found. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: jobId in: path description: 'The Webhook ID. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookRequest' responses: '200': description: 'Updated successfully, return the webhook ' content: application/json: schema: $ref: '#/components/schemas/WebhookUpdateResponse' '400': description: 'Bad request ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'The requested webhook not found. ' 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. ' required: true schema: type: string responses: '200': description: 'A list of Events. ' 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 ' required: true schema: type: string - name: appId in: path description: 'The Application ID ' required: true schema: type: string - name: envId in: path description: 'The Environment ID ' required: true schema: type: string - name: workload_id in: query description: 'filter by workload ID ' schema: type: string - name: container_id in: query description: 'filter by container ID ' schema: type: string - name: deployment_id in: query description: 'filter by deployment ID ' schema: type: string - name: timestamp_from in: query description: 'filter by min time, RFC 3339 format, e.g. "2021-10-02T15:01:23.045Z" ' schema: type: string - name: timestamp_to in: query description: 'filter by max time, RFC 3330 format, e.g. "2021-10-02T15:01:23.045Z" ' schema: type: string - name: limit in: query description: 'limit log entries returned ' schema: type: string - name: asc in: query description: 'if true request results in ascending order, default order is descending ' schema: type: boolean - name: invert in: query description: 'if true reverse the order of the log entries in the output ' schema: type: boolean responses: '200': description: 'List of log entries returned. ' content: application/json: schema: items: $ref: '#/components/schemas/OutputEntryResponse' type: array '400': description: 'The request is invalid. ' '404': description: 'The environment is not found. ' '429': description: 'Too Many Requests. ' /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). ' 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. ' 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. ' 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. ' 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 immediately. If the Run is executing, the cancellation will be stored and will be resolved by the next Job or Step that supports in-flight cancellation. Runs that are in any other state, are not cancellable. ' 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. ' 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. ' 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. ' required: true schema: type: string responses: '200': description: 'A Possibly empty list of Registries. ' content: application/json: schema: items: $ref: '#/components/schemas/RegistryResponse' type: array '400': description: 'Request parameters are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' does not match any record. ' 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. ' required: true schema: type: string requestBody: description: 'A new record details. ' required: true content: application/json: schema: $ref: '#/components/schemas/RegistryRequest' responses: '201': description: 'A newly created record details. ' content: application/json: schema: $ref: '#/components/schemas/RegistryResponse' '400': description: 'Request parameters or payload are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '401': description: 'Authentication token is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' does not match any record. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '409': description: 'The record with the same ID or name (prefix) already exists within the organization. ' 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. ' required: true schema: type: string - name: regId in: path description: 'Unique (alpha-numerical) registry identifier. ' required: true schema: type: string responses: '200': description: 'A registry details. ' content: application/json: schema: $ref: '#/components/schemas/RegistryResponse' '400': description: 'Request parameters are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' or ''regId'' do not match any record. ' 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. ' required: true schema: type: string - name: regId in: path description: 'Unique (alpha-numerical) registry identifier. ' required: true schema: type: string responses: '204': description: 'Deleted successfully. ' '400': description: 'Request parameters are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '403': description: 'Built-in ''humanitec'' registry can''t be deleted. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' or ''regId'' do not match any record. ' 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. ' required: true schema: type: string - name: regId in: path description: 'Unique (alpha-numerical) registry identifier. ' required: true schema: type: string requestBody: description: 'Record details to update. ' required: true content: application/json: schema: $ref: '#/components/schemas/RegistryRequest' responses: '200': description: 'Updated record details. ' content: application/json: schema: $ref: '#/components/schemas/RegistryResponse' '400': description: 'Request parameters or payload are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '403': description: 'Built-in ''humanitec'' registry can''t be changed. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' or ''regId'' do not match any record. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '409': description: 'The record with the same name (prefix) already exists within the organization. ' 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. ' required: true schema: type: string - name: regId in: path description: 'Unique (alpha-numerical) registry identifier. ' required: true schema: type: string responses: '200': description: 'Current account credentials or secret details for the registry. ' content: application/json: schema: $ref: '#/components/schemas/RegistryCredsResponse' '400': description: 'Request parameters are incomplete or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '401': description: 'Authentication token is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/ErrorInfoResponse' '404': description: 'Specified ''orgId'' or ''regId'' do not match any record. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' 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. ' schema: type: boolean responses: '200': description: 'A possibly empty list of Active Resources. ' content: application/json: schema: items: $ref: '#/components/schemas/ActiveResourceResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string requestBody: description: 'Resources to provision. ' 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. ' content: application/json: schema: items: $ref: '#/components/schemas/NodeBodyResponse' type: array '400': description: 'Request payload is not provided or is malformed. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/DependencyGraphResponse' '400': description: 'Request payload is not provided or is malformed. ' 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. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: type in: path description: 'The Resource Type, may include a resource class: {type}.{class}. ' required: true schema: type: string - name: resId in: path description: 'The Resource ID. ' 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.\n\ Detaching 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. ' '204': description: 'The resource deleted. ' '400': description: 'The driver associated to the request resource could not be found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'The requested resource could not be found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'Conflict when deleting resource. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'The requested resource could not be found. ' 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. ' 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. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Resources Accounts. ' content: application/json: schema: items: $ref: '#/components/schemas/ResourceAccountResponse' type: array '500': description: 'Internal application error. ' 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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '401': description: 'Authentication token is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Resources Account already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: accId in: path description: 'The Resource Account ID. ' required: true schema: type: string responses: '200': description: 'The requested Resources Account. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. Resource Definition Versions which reference the deleted Resource Account cannot be used in deployments. ' operationId: deleteResourceAccount 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: '204': description: 'The account was successfully deleted. ' '400': description: 'The Resource Account cannot be deleted as at least one non-deleted Resource Definition or one Active Resource still referencing it. In the error the coordinates of the referencing resources are provided. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: accId in: path description: 'The Resource Account 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/UpdateResourceAccountRequestRequest' responses: '200': description: 'The updated Resource Account details. ' 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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: app in: query description: '(Optional) Filter Resource Definitions that may match a specific Application. ' schema: type: string - name: env in: query description: '(Optional) Filter Resource Definitions that may match a specific Environment. ' schema: type: string - name: env_type in: query description: '(Optional) Filter Resource Definitions that may match a specific Environment Type. ' schema: type: string - name: res in: query description: '(Optional) Filter Resource Definitions that may match a specific Resource. ' schema: type: string - name: res_type in: query description: '(Optional) Filter Resource Definitions that may match a specific Resource Type. ' schema: type: string - name: class in: query description: '(Optional) Filter Resource Definitions that may match a specific Class. ' 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. ' content: application/json: schema: items: $ref: '#/components/schemas/ResourceDefinitionResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string requestBody: description: 'The Resource Definition details. ' required: true content: application/json: schema: $ref: '#/components/schemas/CreateResourceDefinitionRequestRequest' responses: '200': description: 'The newly created Resources Definition details. ' content: application/json: schema: $ref: '#/components/schemas/ResourceDefinitionResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Resources Definition already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceDefinitionResponse' '404': description: 'A Resource Definition with the ''defId'' ID is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string requestBody: description: 'The Resource Definition record details. The PUT operation updates a resource definition using the provided payload. An empty driver_account or driver_inputs property will unset the existing values. If 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. As driver_type can''t be empty, an empty driver_type means existing value will be used. Currently the resource can''t be changed.' required: true content: application/json: schema: $ref: '#/components/schemas/UpdateResourceDefinitionRequestRequest' responses: '200': description: 'The updated Resource Definition. ' content: application/json: schema: $ref: '#/components/schemas/ResourceDefinitionResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resource Definition with the ''defId'' ID is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' 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. ' schema: type: boolean responses: '204': description: 'Resource Definition has been marked as deleted. ' '404': description: 'A Resource Driver with the ''driverId'' ID is not found or is not accessible by the organization. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'List of Active Resources that still reference this Resource Definition. ' content: application/json: schema: items: $ref: '#/components/schemas/ResourceDefinitionChangeResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string requestBody: description: 'The Resource Definition record details. The 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. For the map properties, such as PatchResourceDefinitionRequest.DriverInputs, the merge operation is applied. Merge rules are as follows: - If a map property has a value, it is replaced (or added). - If a map property is set to `null`, it is removed. - 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceDefinitionResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resource Definition with the ''defId'' ID is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string requestBody: description: 'Matching Criteria rules. ' 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. ' content: application/json: schema: items: $ref: '#/components/schemas/MatchingCriteriaResponse' type: array '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'The Resource Definition is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Matching Criteria already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string requestBody: description: 'Matching Criteria rules. ' required: true content: application/json: schema: $ref: '#/components/schemas/MatchingCriteriaRuleRequest' example: env_id: production responses: '200': description: 'The newly added Matching Criteria details. ' content: application/json: schema: $ref: '#/components/schemas/MatchingCriteriaResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'The Resource Definition is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Matching Criteria already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. If 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. The 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string - name: criteriaId in: path description: 'The Matching Criteria ID. ' 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. ' schema: type: boolean responses: '204': description: 'Record deleted. ' '404': description: 'The Resource Definition is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'One or more Active Resources reference the Resource Definition through this Matching Criteria. ' content: application/json: schema: items: $ref: '#/components/schemas/ResourceDefinitionChangeResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: defId in: path description: 'The Resource Definition ID. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Active Resources. ' content: application/json: schema: items: $ref: '#/components/schemas/ActiveResourceResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Resources Drivers. ' content: application/json: schema: items: $ref: '#/components/schemas/DriverDefinitionResponse' type: array '500': description: 'Internal application error. ' 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. ' required: true schema: type: string requestBody: description: 'Resources Driver details. ' required: true content: application/json: schema: $ref: '#/components/schemas/CreateDriverRequestRequest' responses: '200': description: 'The newly registered Resources Driver details. ' content: application/json: schema: $ref: '#/components/schemas/DriverDefinitionResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Resources Driver already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: driverId in: path description: 'The Resource Driver ID. ' required: true schema: type: string responses: '200': description: 'The requested Resources Driver details. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: driverId in: path description: 'The Resource Driver ID. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDriverRequestRequest' responses: '200': description: 'The updated Resources Driver details. ' content: application/json: schema: $ref: '#/components/schemas/DriverDefinitionResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resources Driver with the ''driverId'' ID is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: driverId in: path description: 'The Resources Driver ID to delete. ' required: true schema: type: string responses: '204': description: 'Record deleted. ' '409': description: 'Resource driver is used by some active resources. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Resources Types. ' content: application/json: schema: items: $ref: '#/components/schemas/ResourceTypeResponse' type: array '500': description: 'Internal application error. ' 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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceTypeResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'This operation is forbidden. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A Resources Type already exists. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: typeId in: path description: 'The Resource Type id. The type id should be provided as url encoded string. ' example: my-org%2Fmy-type required: true schema: type: string responses: '204': description: 'Record deleted. ' '400': description: 'Some resources is related to the Resource Type with ''typeId'' as id. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'This operation is forbidden. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resource Type with the ''typeId'' id is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: typeId in: path description: 'The Resource Type id. The type id should be provided as url encoded string. ' example: my-org%2Fmy-type required: true schema: type: string requestBody: description: 'The Resource Type record details. The 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceTypeResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'This operation is forbidden. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resource Type with the ''typeId'' id is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' required: true schema: type: string - name: typeId in: path description: 'The Resource Type id. The type id should be provided as url encoded string. ' example: my-org%2Fmy-type required: true schema: type: string requestBody: description: 'The Resource Type record details. The 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceTypeResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'This operation is forbidden. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'A Resource Type with the ''typeId'' id is not found. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '500': description: 'Internal application error. ' 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. ' 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. ' 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. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: typeId in: path description: 'The resource type. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceClassResponse' '400': description: 'One or more request parameters is missing or invalid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'A resources class of this ID already exists in this resource type. ' 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. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: typeId in: path description: 'The resource type. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: classId in: path description: 'The resource class ID. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ responses: '200': description: 'Requested resource class details ' content: application/json: schema: $ref: '#/components/schemas/ResourceClassResponse' '404': description: 'A resource class with the ''classId'' id is not found in resource type typeId. ' 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. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: typeId in: path description: 'The resource type ID. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: classId in: path description: 'The resource class ID. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/ResourceClassResponse' '404': description: 'A resource class with the ''classId'' id is not found in resource type ''typeId''. ' 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. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: typeId in: path description: 'The resource type. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ - name: classId in: path description: 'The resource class id. ' required: true schema: type: string pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$ responses: '204': description: 'Resource class deleted successfully. ' '404': description: 'A resource class with the ''classId'' id is not found in resource type ''typeId''. ' 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. ' required: true schema: type: string responses: '200': description: 'List of Secret Stores. ' 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. ' required: true schema: type: string requestBody: description: 'Secret Store data. ' required: true content: application/json: schema: $ref: '#/components/schemas/CreateSecretStorePayloadRequest' responses: '201': description: 'Secret Store successfully added. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '401': description: 'Request unauthorised. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'Conflict. ' 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. ' required: true schema: type: string - name: storeId in: path description: 'The Secret Store ID. ' required: true schema: type: string responses: '200': description: 'Returns Secret Stores. ' content: application/json: schema: $ref: '#/components/schemas/SecretStoreResponse' '404': description: 'Secret Store not found. ' 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. ' required: true schema: type: string - name: storeId in: path description: 'The Secret Store ID. ' required: true schema: type: string responses: '204': description: 'Secret Store successfully deleted. ' '404': description: 'Secret Store not found. ' 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. ' required: true schema: type: string - name: storeId in: path description: 'The Secret Store ID. ' required: true schema: type: string requestBody: description: 'Secret Store data. ' required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSecretStorePayloadRequest' responses: '200': description: 'Secret Store successfully updated. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Secret Store not found. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/UserProfileExtendedResponse' '401': description: 'No token supplied. ' '403': description: 'Token is not valid for a user. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/UserProfileExtendedResponse' '400': description: 'The request was invalid or the payload malformed. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '401': description: 'No token supplied. ' '403': description: 'Token is not valid for a user. ' /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. ' 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 ' 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. ' 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. ' 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. ' '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 ' required: true content: application/json: schema: $ref: '#/components/schemas/RoleRequest' responses: '200': description: 'The information about the User or the Group. ' 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. ' 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 ' 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. ' 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. ' 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. ' '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 ' required: true content: application/json: schema: $ref: '#/components/schemas/RoleRequest' responses: '200': description: 'The information about the User or the Group. ' 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. ' 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 ' 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. ' content: application/json: schema: items: $ref: '#/components/schemas/UserRoleResponse' type: array '400': description: 'The request was invalid or the payload malformed. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Object does not exist. ' /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. ' 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. ' content: application/json: schema: $ref: '#/components/schemas/UserProfileResponse' '400': description: 'The request was invalid or the payload malformed. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'Token is not valid for a user. ' /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. ' 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. ' '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 ' required: true content: application/json: schema: $ref: '#/components/schemas/RoleRequest' responses: '200': description: 'The information about the User or the Group. ' 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. ' 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. ' 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. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of tokens. ' 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. ' 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. ' required: true schema: type: string requestBody: description: 'The definition of the token. ' required: true content: application/json: schema: $ref: '#/components/schemas/TokenDefinitionRequest' responses: '200': description: 'The issued static token. ' content: application/json: schema: $ref: '#/components/schemas/TokenResponse' '400': description: 'The request was invalid or the payload malformed. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '403': description: 'Calling user does not have permission to list tokens for this user. ' '409': description: 'There is already a token with the given ID. ' /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. ' required: true schema: type: string - name: tokenId in: path description: 'The token ID. ' required: true schema: type: string responses: '200': description: 'Metadata about the token. ' content: application/json: schema: $ref: '#/components/schemas/TokenInfoResponse' '403': description: 'Calling user does not have permission to list tokens for this user. ' '404': description: 'This token ID is not available for the user. ' 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. ' required: true schema: type: string - name: tokenId in: path description: 'The token ID. ' required: true schema: type: string responses: '204': description: 'The token was successfully deleted. ' '400': description: 'The request is invalid. ' '403': description: 'The calling user does not have permission to delete the token. ' '404': description: 'This token id is not available for the user or the user does not exist. ' /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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: key_changed in: query description: '(Optional) Return only value set version where the specified key changed ' schema: type: string responses: '200': description: 'A possibly empty list of ValueSetVersion. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid responses: '200': description: 'The requested ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '404': description: 'ValueSetVersion with `valueSetVersionId` in Environment. ' 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 by deployments referencing a Value Set Version where the value was present. Learn more about purging in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#purge). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid - name: key in: path description: 'Key of the value to be purged. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '204': description: 'key successfully purged ' '400': description: 'The specified key can''t be purged in this version. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App Environment. ' 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. Learn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '200': description: 'The resulting ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App Environment. ' 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. Learn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid - name: key in: path description: 'Key of the value to be restored. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '200': description: 'The resulting ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '400': description: 'Invalid request ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App Environment. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Values. ' 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. If 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string requestBody: description: 'Definition of the new Shared Value. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValueCreatePayloadRequest' responses: '201': description: 'Shared Value successfully created. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'Shared Value already exists. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string responses: '204': description: 'Shared Value successfully deleted. ' /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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string requestBody: description: 'Both `value` and `description` must be supplied. All other fields will be ignored. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValueEditPayloadRequest' responses: '200': description: 'Shared Value successfully updated. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string responses: '204': description: 'Shared Value successfully deleted. ' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: envId in: path description: 'The Environment ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string requestBody: description: 'At least `value` or `description` must be supplied. All other fields will be ignored. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValuePatchPayloadRequest' responses: '200': description: 'Shared Value successfully updated. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: key_changed in: query description: '(Optional) Return only value set version where the specified key changed ' schema: type: string responses: '200': description: 'A possibly empty list of ValueSetVersion. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid responses: '200': description: 'The requested ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '404': description: 'ValueSetVersion with `valueSetVersionId` in App. ' 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 by deployments referencing a Value Set Version where the value was present. Learn more about purging in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#purge). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid - name: key in: path description: 'Key of the value to be purged. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '204': description: 'key successfully purged ' '400': description: 'The specified key can''t be purged in this version. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App. ' 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. Learn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '200': description: 'The resulting ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App. ' 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. Learn more about reverting in our [docs](https://docs.humanitec.com/reference/concepts/app-config/shared-app-values#revert). ' parameters: - name: orgId in: path description: 'The Organization ID. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: valueSetVersionId in: path description: 'The ValueSetVersion ID. ' required: true schema: type: string format: uuid - name: key in: path description: 'Key of the value to be restored. ' required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValueSetActionPayloadRequest' responses: '200': description: 'The resulting ValueSetVersion ' content: application/json: schema: $ref: '#/components/schemas/ValueSetVersionResponse' '400': description: 'Invalid request ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'No ValueSetVersion with `valueSetVersionId` in App. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '200': description: 'A possibly empty list of Values. ' 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. If 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string requestBody: description: 'Definition of the new Shared Value. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValueCreatePayloadRequest' responses: '201': description: 'Shared Value successfully created. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '409': description: 'Shared Value already exists. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string responses: '204': description: 'Shared Values successfully deleted. ' /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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string requestBody: description: 'Both `value` and `description` must be supplied. All other fields will be ignored. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValueEditPayloadRequest' responses: '200': description: 'Shared Value successfully updated. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string responses: '204': description: 'Shared Value successfully deleted. ' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' required: true schema: type: string - name: appId in: path description: 'The Application ID. ' required: true schema: type: string - name: key in: path description: 'The key to update. ' required: true schema: type: string requestBody: description: 'At least `value` or `description` must be supplied. All other fields will be ignored. ' required: true content: application/json: schema: $ref: '#/components/schemas/ValuePatchPayloadRequest' responses: '200': description: 'Shared Value successfully updated. ' content: application/json: schema: $ref: '#/components/schemas/ValueResponse' '400': description: 'Input not valid. ' content: application/json: schema: $ref: '#/components/schemas/HumanitecErrorResponse' '404': description: 'Shared Value does not exist. ' 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. ' 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. ' required: true content: application/json: schema: $ref: '#/components/schemas/WorkloadProfileRequest' responses: '201': description: 'The newly created Workload Profile. ' 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. ' 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. ' required: true content: application/json: schema: $ref: '#/components/schemas/WorkloadProfileUpdateRequest' responses: '200': description: 'The resulting WorkloadProfile. ' 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. It 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. ' '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 ' 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 \t\ Content-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. ' 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. ' 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}. ' 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. More detail can be found in the error body. ' 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. ' 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 ' 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 find appropriate troubleshooting documentation. ' 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----- ...-----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----- ...-----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----- ...-----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. Apps 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. Apps 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. Deployments 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. 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. Deployments 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. The 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. 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. This 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. Environment 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. Environment 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. Holds 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. Holds 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. Container 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. Container 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\": ,\n \"\ metadata\": {\n \n }\n \"modules\" : {\n \"add\" : {\n : {\n \ \ \n }\n },\n \"remove\": [\n \n ],\n \"update\": {\n \ \ : [\n \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\": ,\n \"\ metadata\": {\n \n }\n \"modules\" : {\n \"add\" : {\n : {\n \ \ \n }\n },\n \"remove\": [\n \n ],\n \"update\": {\n \ \ : [\n \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 : {\n \n }\n },\n \"remove\": [\n \n ],\n \"update\": {\n : [\n \ \ \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 Possible values for "when" are: - "before", deployed before other workloads - "deploy", deployed in-parallel with other workloads (default) - "after", deployed after other workloads Possible 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 Possible values for "when" are: - "before", deployed before other workloads - "deploy", deployed in-parallel with other workloads (default) - "after", deployed after other workloads Possible 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\": ,\n \"modules\" : {\n\ \ : {\n \"profile\": \n \ \ \"spec\": {\n \n }\n \"externals\": {\n\ \ : {\n \"type\": ,\n \"params\": {\n \ \ \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\": ,\n \"modules\" : {\n\ \ : {\n \"profile\": \n \ \ \"spec\": {\n \n }\n \"externals\": {\n\ \ : {\n \"type\": ,\n \"params\": {\n \ \ \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: * Only `add`, `remove` and `replace` are supported * `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: * Only `add`, `remove` and `replace` are supported * `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. ' 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. ' type: string example: my-application env_id: description: 'The exact id of the Environment which this criteria will match. ' 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. ' 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. ' 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. ' type: string example: my-application env_id: description: 'The exact id of the Environment which this criteria will match. ' 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. ' 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". When "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. ' 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 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. Humanitec 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. Supported values: - `public` - `basic` - `google_gcr` - `amazon_ecr` - `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. Humanitec 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. Supported values: - `public` - `basic` - `google_gcr` - `amazon_ecr` - `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. Active 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. Active 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. Resource 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. ' 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. Matching criteria are made up in order of specificity with least specific first: - Environment Type (`env_type`) - Application (`app_id`) - Environment (`env_id`) - Resource (`res_id`) When 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. **NOTE:** Humanitec 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. Resource 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. The 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: 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: 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. Each 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. Each 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. Developers can set the class of a Resource alongside the type in their Score File. Platform 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. Developers can set the class of a Resource alongside the type in their Score File. Platform 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: 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`. They can hold a nested structure but leaf objects need to be of type SecretReference, where: - `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. - `ref` is the secret key in the format of the target store. It can''t be used in request payloads if `value` is defined. - `version` is the version of the secret as defined in the target store. It can be defined only if `ref` is defined. - `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: 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`. They can hold a nested structure but leaf objects need to be of type SecretReference, where: - `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. - `ref` is the secret key in the format of the target store. It can''t be used in request payloads if `value` is defined. - `version` is the version of the secret as defined in the target store. It can be defined only if `ref` is defined. - `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: 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. Shared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis. For 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. Shared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis. For 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. Workloads 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. If 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. If 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. Workloads 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: Group x-displayName: User Groups description: 'GroupRequest holds the definition of a new group. ' - 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. Matching criteria are made up in order of specificity with least specific first: - Environment Type (`env_type`) - Application (`app_id`) - Environment (`env_id`) - Resource (`res_id`) When 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. **NOTE:** Humanitec will reject the registration of matching criteria rules that duplicate rules already present for a Resource Type. ' - name: Organization x-displayName: Organization description: 'An Organization is the top level object in Humanitec. All other objects belong to an Organization. ' - name: PipelineApprovals x-displayName: Pipeline Approvals description: 'An approval object ' - name: PipelineRuns x-displayName: Pipeline Runs description: 'Details of a Run within the Pipeline. ' - name: Pipelines x-displayName: Pipelines description: 'An object containing the details of a Pipeline. ' - 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. The schema for the `driver_inputs` is defined by the `input_schema` property on the DriverDefinition identified by the `driver_type` property. ' - name: ResourceDefinitionVersion x-displayName: Definition Versions description: 'A Resource Definition Version represents a version of a Resource Definition. ' - name: ResourceProvision x-displayName: Resources Dependency description: 'ResourceProvisionRequest is the payload passed to the resource provisioner, specifying the resources to be provisioned. ' - name: TokenInfo x-displayName: Token Info description: 'Holds metadata about a token. `expires_at` is excluded if token does not expire. ' - name: UserProfile x-displayName: User Profiles description: 'UserProfile holds the profile information of a user ' - name: UserRole x-displayName: User Roles description: 'Holds the mapping of role for a subject on a particular object. ' - 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. Workloads in Humanitec are implemented as Helm Charts which must implement a specific schema. ' - name: AccountType x-displayName: Resource Account Types description: 'Resource Account Types define cloud providers or protocols to which a resource account can belong. ' - 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. Active 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. ' - name: Agents x-displayName: Agents description: 'An object containing the details of an Agent. ' - 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. Apps are the root of the configuration tree holding Environments, Deployments, Shared Values, and Secrets. ' - 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. ' - name: ArtefactVersion x-displayName: Artefact Version description: 'Details of a Container Artefact Version ' - name: AuditLogs x-displayName: Audit Logs description: 'An entry in the audit log ' - name: AutomationRule x-displayName: Automation Rules description: 'An Automation Rule defining how and when artefacts in an environment should be updated. ' - 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\": ,\n \"metadata\":\ \ {\n \n\ \ }\n \"modules\" : {\n \"add\" : {\n : {\n \n }\n },\n \"remove\": [\n \n ],\n \"update\": {\n : [\n \n ]\n }\n }\n }\n```\n\n" - name: Deployment x-displayName: Deployments description: 'Deployments represent updates to the running state of an Environment. Deployments 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. ' - name: DriverDefinition x-displayName: Resource Drivers description: 'DriverDefinition describes the resource driver. Resource 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. ' - name: Environment x-displayName: Environments description: 'Environments are independent spaces where Applications can run. An Application is always deployed into an Environment. ' - name: EnvironmentType x-displayName: Environment Types description: 'Environment Types are a way of grouping and managing Environments. Every Environment has exactly 1 Environment Type. Environment Types can be used with External Resources to manage where resources such as databases are provisioned or even which cluster to deploy to. ' - 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. Container 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. ' - name: PublicKeys x-displayName: Keys description: 'PublicKey stores a Public Key an organization shares with Humanitec. ' - name: Logs x-displayName: Container Logs description: 'A container log entry. ' - 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. Humanitec 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. ' - name: Replicas x-displayName: Replicas description: 'null ' - name: ResourceAccount x-displayName: Resource Accounts description: 'ResourceAccount represents the account being used to access a resource. Resource Accounts hold credentials that are required to provision and manage resources. ' - name: ResourceType x-displayName: Resources Types description: 'Resources Types define the technology that Applications can have dependencies on. Each 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. ' - 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). ' - name: SecretStore x-displayName: Secret Store description: 'Secret Store represents external secret management system used by an organization to store secrets referenced in Humanitec. ' - 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\": ,\n \"modules\" : {\n : {\n\ \ \"profile\": \n \"spec\": {\n \n }\n \"externals\": {\n : {\n\ \ \"type\": ,\n \"params\": {\n \n }\n }\n }\n }\n }\n }\n```\n\nFor details about how\ \ the Humanitec provided profiles work, see (Deployment Set Profiles)[].\n\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. Shared Values are by default shared across all environments in an application. However, they can be overridden on an Environment by Environment basis. For 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. ' - 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. ' - 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. '