> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/api-reference/iacm/workspaces.md).

# Workspaces

Workspaces Service handles the API for managing workspaces and triggering workflows against them.

## List all workspace tags

> List all tags

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/tags":{"get":{"tags":["workspaces"],"summary":"List all workspace tags","description":"List all tags","operationId":"workspaces#list-all-workspace-tags","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show workspace metrics

> Show metrics for workspaces

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspace-metrics":{"get":{"tags":["workspaces"],"summary":"Show workspace metrics","description":"Show metrics for workspaces","operationId":"workspaces#show-workspace-metrics","parameters":[{"name":"start_time","in":"query","description":"Start time filter (Unix timestamp)","allowEmptyValue":true,"schema":{"type":"integer","description":"Start time filter (Unix timestamp)","format":"int64"}},{"name":"end_time","in":"query","description":"End time filter (Unix timestamp)","allowEmptyValue":true,"schema":{"type":"integer","description":"End time filter (Unix timestamp)","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowWorkspaceMetricsRequest"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ShowWorkspaceMetricsRequest":{"type":"object","properties":{"status_counts":{"type":"object","description":"Counts by status","additionalProperties":{"type":"integer","format":"int64"}}}},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List workspaces

> List all workspaces.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces":{"get":{"tags":["workspaces"],"summary":"List workspaces","description":"List all workspaces.","operationId":"workspaces#list-workspaces","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"status","in":"query","description":"Status of the execution","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Status of the execution"}},{"name":"tags","in":"query","description":"Comma separated list of tags to filter by","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Comma separated list of tags to filter by"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceResourceSummaryCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"WorkspaceResourceSummaryCollection":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceResourceSummary"},"description":"WorkspaceResourceCollection is the result type for an array of WorkspaceResource (summary view)"},"WorkspaceResourceSummary":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"description":{"type":"string","description":"Description provides long-form text about the resource."},"identifier":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128},"name":{"type":"string","description":"Name is the human readable name for the resource.","minLength":1,"maxLength":128},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"status":{"type":"string","description":"The status of the workspace","enum":["active","inactive","provisioning","destroying","failed","unknown","rollback_applied"]},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"}},"description":"WorkspaceResource is the representation for a single workspace definition. (summary view)","required":["account","org","project","identifier","name","created","updated","status"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create workspace

> Create a new workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces":{"post":{"tags":["workspaces"],"summary":"Create workspace","description":"Create a new workspace.","operationId":"workspaces#create-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkspaceRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacesCreateWorkspaceResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/PolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"CreateWorkspaceRequest":{"type":"object","properties":{"associated_template":{"$ref":"#/components/schemas/AssociatedTemplate"},"budget":{"type":"number","description":"define the budget for a specific workspace","format":"float"},"ccm_cost_enabled":{"type":"boolean","description":"define if CCM cost integration is enabled for this workspace","default":false},"cost_breakdown_json":{"type":"string","description":"cost_breakdown_json is the identifier to the breakdown cost file from the current execution that was applied successfully"},"cost_diff_json":{"type":"string","description":"cost_diff_json is the identifier to the diff cost file between the previous and current successful executions"},"cost_estimation_enabled":{"type":"boolean","description":"define if cost estimation operations will be performed in this workspace","default":false},"create_default_pipelines":{"type":"boolean","description":"if true, auto-generate default pipelines for the workspace provisioner at creation time","default":true},"default_pipelines":{"type":"object","description":"List of default pipelines associated with this workspace and any per-workspace overrides.","additionalProperties":{"$ref":"#/components/schemas/DefaultPipelineOverride"}},"description":{"type":"string","description":"Description provides long-form text about the resource."},"environment_variables":{"type":"object","description":"list of environment variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/Variable"}},"id":{"type":"integer","description":"ID PK for internal uses","format":"int64"},"identifier":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128},"modules_json":{"type":"string","description":"modules_json is the identifier of any modules metadata associated with this workspace"},"name":{"type":"string","description":"Name is the human readable name for the resource.","minLength":1,"maxLength":128},"provider_connector":{"type":"string","description":"Provider Connector is the reference to the connector for the infrastructure provider."},"provider_connectors":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceProviderConnector"},"description":"define an array of provider connectors that belong to Workspace"},"providers_json":{"type":"string","description":"providers_json is the identifier of any modules metadata associated with this workspace"},"provisioner":{"type":"string","description":"Provisioner defines the provisioning tool to use."},"provisioner_configuration":{"type":"string","description":"Provisioner configuration metadata (key value pair provisioner specific configuration)."},"provisioner_version":{"type":"string","description":"Provisioner Version defines the tool version to use.","default":"latest"},"prune_sensitive_data":{"type":"boolean","description":"prune_sensitive_data is a flag to enable or disable pruning of sensitive data","default":false},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."},"repository_submodules":{"type":"string","description":"repository_submodules is the instruction about whether to clone submodules in the pipeline step","default":"false","enum":["false","true","recursive"]},"run_all":{"type":"boolean","description":"Run-All terragrunt modules."},"sparse_checkout":{"type":"string","description":"List of patterens that will be used for sparse checkout option of git clone"},"state_checksum":{"type":"string","description":"state_checksum is the sha-256 checksum of terraform state file"},"tags":{"type":"object","description":"Tags associated with the workspace.","additionalProperties":{"type":"string"}},"terraform_plan_json":{"type":"string","description":"terraform_plan_json is the identifier to the current state file only in JSON format."},"terraform_state":{"type":"string","description":"terraform_state is the identifier to the plan file used to create the latest state."},"terraform_state_json":{"type":"string","description":"terraform_state_json is the identifier to the plan file used to create the latest state only in JSON format."},"terraform_variable_files":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceTerraformVariableFiles"},"description":"define an array of terraform variables files that belong to a different repository"},"terraform_variables":{"type":"object","description":"list of terraform variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/Variable"}},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"terragrunt_version":{"type":"string","description":"Terragrunt Version to use when provisioner is terragrunt."},"variable_sets":{"type":"array","items":{"type":"string"},"description":"Attached Variable Sets references"}},"required":["identifier","name","provider_connector","provisioner","terraform_variables","environment_variables"]},"AssociatedTemplate":{"type":"object","properties":{"template_id":{"type":"string","description":"Template ID of the template associated to the Workspace.","minLength":1,"maxLength":128},"version":{"type":"string","description":"Version of the template associated to the Workspace.","minLength":1,"maxLength":64}},"description":"AssociatedTemplate defines the template details with template_id and version."},"DefaultPipelineOverride":{"type":"object","properties":{"project_pipeline":{"type":"string","description":"Default pipeline assigned as the project-level"},"workspace_pipeline":{"type":"string","description":"Default pipeline assigned as the workspace-level"}},"description":"Per-workspace override to the assigned default pipelines."},"Variable":{"type":"object","properties":{"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[A-Za-z_][A-Za-z0-9_-]*$","minLength":1,"maxLength":128},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indicates the value type of the variable. In the case of secret this is a\nreference to an item in the secret store. Boolean values must be \"true\" or \"false\". JSON values must be valid JSON.","enum":["string","secret","boolean","json","number"]}},"description":"Variable is the representation for a single variable associated with a workspace.","required":["key","value","value_type","kind"]},"WorkspaceProviderConnector":{"type":"object","properties":{"connector_ref":{"type":"string","description":"Connector reference in harness platform.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the connector was created.","format":"int64"},"id":{"type":"integer","description":"ID PK for internal uses","format":"int64"},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"type":{"type":"string","description":"Type indicates the connector type.","enum":["aws","azure","gcp","vault"]},"updated":{"type":"integer","description":"Timestamp when the connector was last updated.","format":"int64"},"workspace_id":{"type":"integer","description":"Workspace ID FK for internal uses","format":"int64"}},"description":"Workspace provider connector","required":["connector_ref","type"]},"WorkspaceTerraformVariableFiles":{"type":"object","properties":{"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."}},"description":"WorkspaceTerraformVarFiles defines a variable file that lives in another repository than the workspace files.","required":["repository"]},"WorkspacesCreateWorkspaceResponseBody":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"}},"description":"Create-WorkspaceResponseBody result type (default view)"},"Evaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"EvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"EvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"PolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show workspace

> Show an individual workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}":{"get":{"tags":["workspaces"],"summary":"Show workspace","description":"Show an individual workspace.","operationId":"workspaces#show-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Identifier is the project identifier.","required":true,"schema":{"type":"string","description":"Identifier is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacesShowWorkspaceResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"WorkspacesShowWorkspaceResponseBody":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"associated_template":{"$ref":"#/components/schemas/AssociatedTemplate"},"backend_locked":{"type":"boolean","description":"Defines if the remote backend is locked or not","default":false},"budget":{"type":"number","description":"define the budget for a specific workspace","format":"float"},"ccm_cost_enabled":{"type":"boolean","description":"define if CCM cost integration is enabled for this workspace","default":false},"cost_breakdown_json":{"type":"string","description":"cost_breakdown_json is the identifier to the breakdown cost file from the current execution that was applied successfully"},"cost_diff_json":{"type":"string","description":"cost_diff_json is the identifier to the diff cost file between the previous and current successful executions"},"cost_estimation_enabled":{"type":"boolean","description":"define if cost estimation operations will be performed in this workspace","default":false},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"default_pipelines":{"type":"object","description":"List of default pipelines associated with this workspace and any per-workspace overrides.","additionalProperties":{"$ref":"#/components/schemas/DefaultPipelineOverride"}},"description":{"type":"string","description":"Description provides long-form text about the resource."},"environment_variables":{"type":"object","description":"list of environment variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/VariableResource"}},"identifier":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128},"lock":{"$ref":"#/components/schemas/WorkspaceLock"},"modules_json":{"type":"string","description":"modules_json is the identifier of any modules metadata associated with this workspace"},"name":{"type":"string","description":"Name is the human readable name for the resource.","minLength":1,"maxLength":128},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"provider_connector":{"type":"string","description":"Provider Connector is the reference to the connector for the infrastructure provider."},"provider_connectors":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceProviderConnector"},"description":"define an array of provider connectors that belong to Workspace"},"providers_json":{"type":"string","description":"providers_json is the identifier of any modules metadata associated with this workspace"},"provisioner":{"type":"string","description":"Provisioner defines the provisioning tool to use."},"provisioner_configuration":{"type":"string","description":"Provisioner configuration metadata (key value pair provisioner specific configuration)."},"provisioner_data":{"type":"string"},"provisioner_version":{"type":"string","description":"Provisioner Version defines the tool version to use.","default":"latest"},"prune_sensitive_data":{"type":"boolean","description":"prune_sensitive_data is a flag to enable or disable pruning of sensitive data","default":false},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."},"repository_submodules":{"type":"string","description":"repository_submodules is the instruction about whether to clone submodules in the pipeline step","default":"false","enum":["false","true","recursive"]},"run_all":{"type":"boolean","description":"Run-All terragrunt modules."},"sparse_checkout":{"type":"string","description":"List of patterens that will be used for sparse checkout option of git clone"},"state_checksum":{"type":"string","description":"state_checksum is the sha-256 checksum of terraform state file"},"status":{"type":"string","description":"The status of the workspace","enum":["active","inactive","provisioning","destroying","failed","unknown","rollback_applied"]},"tags":{"type":"object","description":"Tags associated with the workspace.","additionalProperties":{"type":"string"}},"terraform_plan_json":{"type":"string","description":"terraform_plan_json is the identifier to the current state file only in JSON format."},"terraform_state":{"type":"string","description":"terraform_state is the identifier to the plan file used to create the latest state."},"terraform_state_json":{"type":"string","description":"terraform_state_json is the identifier to the plan file used to create the latest state only in JSON format."},"terraform_variable_files":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceTerraformVariableFiles"},"description":"define an array of terraform variables files that belong to a different repository"},"terraform_variables":{"type":"object","description":"list of terraform variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/VariableResource"}},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"terragrunt_version":{"type":"string","description":"Terragrunt Version to use when provisioner is terragrunt."},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"variable_sets":{"type":"array","items":{"type":"string"},"description":"Attached Variable Sets references"}},"description":"Show-WorkspaceResponseBody result type (default view)","required":["account","org","project","identifier","name","provider_connector","provisioner","repository_connector","terraform_variables","environment_variables","created","updated","provisioner_data","status","tags"]},"AssociatedTemplate":{"type":"object","properties":{"template_id":{"type":"string","description":"Template ID of the template associated to the Workspace.","minLength":1,"maxLength":128},"version":{"type":"string","description":"Version of the template associated to the Workspace.","minLength":1,"maxLength":64}},"description":"AssociatedTemplate defines the template details with template_id and version."},"DefaultPipelineOverride":{"type":"object","properties":{"project_pipeline":{"type":"string","description":"Default pipeline assigned as the project-level"},"workspace_pipeline":{"type":"string","description":"Default pipeline assigned as the workspace-level"}},"description":"Per-workspace override to the assigned default pipelines."},"VariableResource":{"type":"object","properties":{"created":{"type":"integer","format":"int64"},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"updated":{"type":"integer","format":"int64"},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indicates the value type of the variable. In the case of secret this is a\nreference to an item in the secret store. Boolean values must be \"true\" or \"false\". JSON values must be valid JSON.","enum":["string","secret","boolean","json","number"]}},"description":"Variable is the representation for a single variable associated with a workspace.","required":["key","value","value_type","kind","created","updated"]},"WorkspaceLock":{"type":"object","properties":{"created_at":{"type":"integer","description":"Unix timestamp (milliseconds) when the lock was created.","format":"int64"},"id":{"type":"string","description":"Lock ID."},"locked_by_display_name":{"type":"string","description":"Display name of who locked the workspace."},"locked_by_principal_id":{"type":"string","description":"Principal ID who locked the workspace."},"locked_by_principal_type":{"type":"string","description":"Type of principal who locked the workspace."},"manual":{"type":"boolean","description":"Whether the lock is manual (user-initiated). true = manual lock, false = automatic lock."},"reason":{"type":"string","description":"Reason for the lock."}},"description":"workspaceLock holds the details of an active workspace lock. Fields are populated for manual (user-initiated) locks and left empty for automatic (Terraform CLI) locks."},"WorkspaceProviderConnector":{"type":"object","properties":{"connector_ref":{"type":"string","description":"Connector reference in harness platform.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the connector was created.","format":"int64"},"id":{"type":"integer","description":"ID PK for internal uses","format":"int64"},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"type":{"type":"string","description":"Type indicates the connector type.","enum":["aws","azure","gcp","vault"]},"updated":{"type":"integer","description":"Timestamp when the connector was last updated.","format":"int64"},"workspace_id":{"type":"integer","description":"Workspace ID FK for internal uses","format":"int64"}},"description":"Workspace provider connector","required":["connector_ref","type"]},"WorkspaceTerraformVariableFiles":{"type":"object","properties":{"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."}},"description":"WorkspaceTerraformVarFiles defines a variable file that lives in another repository than the workspace files.","required":["repository"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update workspace

> Updates the given workspace with new info.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}":{"put":{"tags":["workspaces"],"summary":"Update workspace","description":"Updates the given workspace with new info.","operationId":"workspaces#update-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Workspace identifier.","required":true,"schema":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/PolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UpdateWorkspaceRequest":{"type":"object","properties":{"budget":{"type":"number","description":"define the budget for a specific workspace","format":"float"},"ccm_cost_enabled":{"type":"boolean","description":"define if CCM cost integration is enabled for this workspace","default":false},"cost_estimation_enabled":{"type":"boolean","description":"define if cost estimation operations will be performed in this workspace","default":false},"default_pipelines":{"type":"object","description":"List of default pipelines associated with this workspace and any per-workspace overrides.","additionalProperties":{"$ref":"#/components/schemas/DefaultPipelineOverride"}},"description":{"type":"string","description":"Description provides long-form text about the resource."},"environment_variables":{"type":"object","description":"list of environment variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/Variable"}},"name":{"type":"string","description":"Name is the human readable name for the resource.","minLength":1,"maxLength":128},"provider_connector":{"type":"string","description":"Provider Connector is the reference to the connector for the infrastructure provider."},"provider_connectors":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceProviderConnector"},"description":"define an array of provider connectors that belong to Workspace"},"provisioner":{"type":"string","description":"Provisioner defines the provisioning tool to use."},"provisioner_configuration":{"type":"string","description":"Provisioner configuration metadata (key value pair provisioner specific configuration)."},"provisioner_version":{"type":"string","description":"Provisioner Version defines the tool version to use.","default":"latest"},"prune_sensitive_data":{"type":"boolean","description":"prune_sensitive_data is a flag to enable or disable pruning of sensitive data","default":false},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."},"repository_submodules":{"type":"string","description":"repository_submodules is the instruction about whether to clone submodules in the pipeline step","default":"false","enum":["false","true","recursive"]},"run_all":{"type":"boolean","description":"Run-All terragrunt modules."},"sparse_checkout":{"type":"string","description":"List of patterens that will be used for sparse checkout option of git clone"},"tags":{"type":"object","description":"Tags associated with the workspace.","additionalProperties":{"type":"string"}},"terraform_variable_files":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceTerraformVariableFiles"},"description":"define an array of terraform variables files that belong to a different repository"},"terraform_variables":{"type":"object","description":"list of terraform variables configured on the workspace.","additionalProperties":{"$ref":"#/components/schemas/Variable"}},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"terragrunt_version":{"type":"string","description":"Terragrunt Version to use when provisioner is terragrunt."},"variable_sets":{"type":"array","items":{"type":"string"},"description":"Attached Variable Sets references"}},"required":["terraform_variables","environment_variables","name","provider_connector","provisioner"]},"DefaultPipelineOverride":{"type":"object","properties":{"project_pipeline":{"type":"string","description":"Default pipeline assigned as the project-level"},"workspace_pipeline":{"type":"string","description":"Default pipeline assigned as the workspace-level"}},"description":"Per-workspace override to the assigned default pipelines."},"Variable":{"type":"object","properties":{"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[A-Za-z_][A-Za-z0-9_-]*$","minLength":1,"maxLength":128},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indicates the value type of the variable. In the case of secret this is a\nreference to an item in the secret store. Boolean values must be \"true\" or \"false\". JSON values must be valid JSON.","enum":["string","secret","boolean","json","number"]}},"description":"Variable is the representation for a single variable associated with a workspace.","required":["key","value","value_type","kind"]},"WorkspaceProviderConnector":{"type":"object","properties":{"connector_ref":{"type":"string","description":"Connector reference in harness platform.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the connector was created.","format":"int64"},"id":{"type":"integer","description":"ID PK for internal uses","format":"int64"},"terragrunt_provider":{"type":"boolean","description":"Whether this workspace uses terragrunt to provision infrastructure","default":false},"type":{"type":"string","description":"Type indicates the connector type.","enum":["aws","azure","gcp","vault"]},"updated":{"type":"integer","description":"Timestamp when the connector was last updated.","format":"int64"},"workspace_id":{"type":"integer","description":"Workspace ID FK for internal uses","format":"int64"}},"description":"Workspace provider connector","required":["connector_ref","type"]},"WorkspaceTerraformVariableFiles":{"type":"object","properties":{"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the code should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the code should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this code."},"repository_path":{"type":"string","description":"Repository Path is the path in which the infra code resides.","default":""},"repository_sha":{"type":"string","description":"Repository SHA in which the code should be accessed."}},"description":"WorkspaceTerraformVarFiles defines a variable file that lives in another repository than the workspace files.","required":["repository"]},"UpdateWorkspaceResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"}}},"Evaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"EvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"EvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"PolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Destroy workspace

> Deletes the given workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}":{"delete":{"tags":["workspaces"],"summary":"Destroy workspace","description":"Deletes the given workspace.","operationId":"workspaces#destroy-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Identifier is the project identifier.","required":true,"schema":{"type":"string","description":"Identifier is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"204":{"description":"No Content response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Unlock workspace

> Unlock a workspace, removing the lock regardless of its origin (manual or automatic). Idempotent.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/force-unlock":{"post":{"tags":["workspaces"],"summary":"Unlock workspace","description":"Unlock a workspace, removing the lock regardless of its origin (manual or automatic). Idempotent.","operationId":"workspaces#force-unlock-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Identifier is the project identifier.","required":true,"schema":{"type":"string","description":"Identifier is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Lock workspace

> Create a manual lock on a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/lock":{"post":{"tags":["workspaces"],"summary":"Lock workspace","description":"Create a manual lock on a workspace.","operationId":"workspaces#lock-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Identifier is the project identifier.","required":true,"schema":{"type":"string","description":"Identifier is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LockWorkspacePayload2"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LockWorkspaceResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"LockWorkspacePayload2":{"type":"object","properties":{"reason":{"type":"string","description":"Reason for locking the workspace (optional)","maxLength":1024}}},"LockWorkspaceResponse":{"type":"object","properties":{"id":{"type":"string","description":"Lock ID","format":"uuid"},"locked_by_display_name":{"type":"string","description":"Display name of who locked"},"locked_by_principal_id":{"type":"string","description":"Principal ID who locked"},"locked_by_principal_type":{"type":"string","description":"Type of principal"},"manual":{"type":"boolean","description":"Whether the lock is manual (user-initiated). true = manual lock, false = automatic lock"},"reason":{"type":"string","description":"Reason for lock"},"workspace":{"type":"string","description":"Workspace identifier"}},"required":["id","workspace","manual","reason","locked_by_principal_id","locked_by_principal_type","locked_by_display_name"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List modules

> List modules associated with this workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/modules":{"get":{"tags":["workspaces"],"summary":"List modules","description":"List modules associated with this workspace.","operationId":"workspaces#list-workspace-modules","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Identifier is the project identifier.","required":true,"schema":{"type":"string","description":"Identifier is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceModuleCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"WorkspaceModuleCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmWorkspacemodule"}},"HarnessIacmWorkspacemodule":{"type":"object","properties":{"invocations":{"type":"integer","description":"Number of times this module is invoked in the workspace","format":"int64"},"key":{"type":"string","description":"Module key"},"source":{"type":"string","description":"Module source"},"stack_path":{"type":"string","description":"Terragrunt stack path (empty for regular Terraform workspaces)"},"version":{"type":"string","description":"Module version"}},"description":"Represents an individual OpenTofu or Terraform module.","required":["key","source","version","invocations"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List resources

> List resources associated with this workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources":{"get":{"tags":["workspaces"],"summary":"List resources","description":"List resources associated with this workspace.","operationId":"workspaces#list-resources","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page. When omitted, all records are returned.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page. When omitted, all records are returned.","format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'. When omitted, all records are returned.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'. When omitted, all records are returned.","format":"int64","minimum":1}},{"name":"resource_types","in":"query","description":"Resource types to filter by.","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Resource types to filter by."}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Workspace identifier.","required":true,"schema":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResourcesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListResourcesResponse":{"type":"object","properties":{"data_sources":{"$ref":"#/components/schemas/ResourceCollection"},"outputs":{"$ref":"#/components/schemas/OutputCollection"},"resources":{"$ref":"#/components/schemas/ResourceCollection"},"stack_outputs":{"type":"object","description":"Outputs grouped by stack path for Terragrunt workspaces","additionalProperties":{"$ref":"#/components/schemas/OutputCollection"}},"total_resources":{"type":"integer","description":"Total number of resources managed by this workspace","default":0,"format":"int64"}},"required":["resources","data_sources","outputs","total_resources"]},"ResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmResource"}},"HarnessIacmResource":{"type":"object","properties":{"attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"createdAt":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"drift_attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"drift_status":{"type":"string","description":"Indicates if this resource is experiencing drift.","enum":["changed","deleted","unchanged"]},"lastSyncedAt":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"mode":{"type":"string","description":"Mode associated with the resource.","enum":["resource","data","output"]},"module":{"type":"string","description":"Module associated with the resource."},"monthly_cost":{"type":"number","description":"Current period cost from CCM (null if no cost data).","format":"double"},"monthly_saving":{"type":"number","description":"Monthly potential saving from CCM (null if no cost data).","format":"double"},"name":{"type":"string","description":"Name associated with the resource."},"path_id":{"type":"string","description":"Path associated with the resource. Could be namespace, environment or stack id."},"provider":{"type":"string","description":"Cloud provider associated with the resource."},"recommendation_count":{"type":"integer","description":"Number of CCM recommendations for this resource (null if no cost data).","format":"int64"},"resource_id":{"type":"string","description":"Unique identifier for the resource from the cloud provider."},"sensitive_attributes":{"type":"array","items":{},"description":"A list of the sensitive attribute keys "},"type":{"type":"string","description":"Type of the provisioned resource."}},"description":"Represents an individual provisioned resource.","required":["provider","type","name","module","mode","path_id","resource_id","attributes","drift_status","drift_attributes","sensitive_attributes"]},"OutputCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmOutput"}},"HarnessIacmOutput":{"type":"object","properties":{"expression":{"type":"string","description":"JEXL expression for dynamic output resolution"},"name":{"type":"string","description":"Name associated with the output."},"sensitive":{"type":"boolean","description":"Indicates whether this value is sensitive"},"stack_path":{"type":"string","description":"Stack path for Terragrunt workspaces"},"value":{"type":"string","description":"Value associated with the output."}},"description":"Represents an individual output variable.","required":["name","value","sensitive"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get resource

> Get a single provisioned resource by its IaCM resource ID (resources.id UUID). Returns the same Resource shape as list-resources.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources/{id}":{"get":{"tags":["workspaces"],"summary":"Get resource","description":"Get a single provisioned resource by its IaCM resource ID (resources.id UUID). Returns the same Resource shape as list-resources.","operationId":"workspaces#get-resource","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Workspace identifier.","required":true,"schema":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"IaCM resource ID (resources.id UUID).","required":true,"schema":{"type":"string","description":"IaCM resource ID (resources.id UUID).","minLength":1,"maxLength":36}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetResourceResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"GetResourceResponse":{"type":"object","properties":{"attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"createdAt":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"drift_attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"drift_status":{"type":"string","description":"Indicates if this resource is experiencing drift.","enum":["changed","deleted","unchanged"]},"lastSyncedAt":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"mode":{"type":"string","description":"Mode associated with the resource.","enum":["resource","data","output"]},"module":{"type":"string","description":"Module associated with the resource."},"monthly_cost":{"type":"number","description":"Current period cost from CCM (null if no cost data).","format":"double"},"monthly_saving":{"type":"number","description":"Monthly potential saving from CCM (null if no cost data).","format":"double"},"name":{"type":"string","description":"Name associated with the resource."},"path_id":{"type":"string","description":"Path associated with the resource. Could be namespace, environment or stack id."},"provider":{"type":"string","description":"Cloud provider associated with the resource."},"recommendation_count":{"type":"integer","description":"Number of CCM recommendations for this resource (null if no cost data).","format":"int64"},"resource_id":{"type":"string","description":"Unique identifier for the resource from the cloud provider."},"sensitive_attributes":{"type":"array","items":{},"description":"A list of the sensitive attribute keys "},"type":{"type":"string","description":"Type of the provisioned resource."}},"required":["provider","type","name","module","mode","path_id","resource_id","attributes","drift_status","drift_attributes","sensitive_attributes"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List resources using selectors

> List resources for a workspace using selectors. Pagination is optional: when limit and page are omitted (or zero), all matching resources are returned for backward compatibility.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources/search":{"post":{"tags":["workspaces"],"summary":"List resources using selectors","description":"List resources for a workspace using selectors. Pagination is optional: when limit and page are omitted (or zero), all matching resources are returned for backward compatibility.","operationId":"workspaces#search-resources","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResourcesRequest"}}}},"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResourcesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/SearchResourcesResponse"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"SearchResourcesRequest":{"type":"object","properties":{"limit":{"type":"integer","description":"Limit is the number of records to return for a page. When omitted, all records are returned.","format":"int64","minimum":1,"maximum":1000},"page":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'. When omitted, all records are returned.","format":"int64","minimum":1},"selectors":{"type":"array","items":{"$ref":"#/components/schemas/ResourcesSelector"}}}},"ResourcesSelector":{"type":"object","properties":{"include_conditions":{"type":"array","items":{"$ref":"#/components/schemas/ResourcesSelectorConditions"},"description":"The conditions to include the resource."},"path_id":{"type":"string","description":"Path identifier to filter resources by"},"provider":{"type":"string","description":"Provider Type to filter resources by"},"resource_type":{"type":"string","description":"Type is the type of resource to select."},"search_text":{"type":"string","description":"Search resources by text string"}}},"ResourcesSelectorConditions":{"type":"object","properties":{"attribute":{"type":"string","description":"Attribute is the attribute to select on."},"operator":{"type":"string","description":"Operator is the operator to use for the selector.","enum":["equals","not_equals","contains","not_contains","starts_with","ends_with"]},"value":{"type":"string","description":"Value is the value to check."}},"required":["attribute","operator","value"]},"SearchResourcesResponse":{"type":"object","properties":{"data_sources":{"$ref":"#/components/schemas/ResourceCollection"},"outputs":{"$ref":"#/components/schemas/OutputCollection"},"resources":{"$ref":"#/components/schemas/ResourceCollection"},"stack_outputs":{"type":"object","description":"Outputs grouped by stack path for Terragrunt workspaces","additionalProperties":{"$ref":"#/components/schemas/OutputCollection"}},"total_resources":{"type":"integer","description":"Total number of resources managed by this workspace","default":0,"format":"int64"}},"required":["resources","data_sources","outputs","total_resources"]},"ResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmResource"}},"HarnessIacmResource":{"type":"object","properties":{"attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"createdAt":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"drift_attributes":{"type":"object","description":"A map of values related to the resource","additionalProperties":true},"drift_status":{"type":"string","description":"Indicates if this resource is experiencing drift.","enum":["changed","deleted","unchanged"]},"lastSyncedAt":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"mode":{"type":"string","description":"Mode associated with the resource.","enum":["resource","data","output"]},"module":{"type":"string","description":"Module associated with the resource."},"monthly_cost":{"type":"number","description":"Current period cost from CCM (null if no cost data).","format":"double"},"monthly_saving":{"type":"number","description":"Monthly potential saving from CCM (null if no cost data).","format":"double"},"name":{"type":"string","description":"Name associated with the resource."},"path_id":{"type":"string","description":"Path associated with the resource. Could be namespace, environment or stack id."},"provider":{"type":"string","description":"Cloud provider associated with the resource."},"recommendation_count":{"type":"integer","description":"Number of CCM recommendations for this resource (null if no cost data).","format":"int64"},"resource_id":{"type":"string","description":"Unique identifier for the resource from the cloud provider."},"sensitive_attributes":{"type":"array","items":{},"description":"A list of the sensitive attribute keys "},"type":{"type":"string","description":"Type of the provisioned resource."}},"description":"Represents an individual provisioned resource.","required":["provider","type","name","module","mode","path_id","resource_id","attributes","drift_status","drift_attributes","sensitive_attributes"]},"OutputCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmOutput"}},"HarnessIacmOutput":{"type":"object","properties":{"expression":{"type":"string","description":"JEXL expression for dynamic output resolution"},"name":{"type":"string","description":"Name associated with the output."},"sensitive":{"type":"boolean","description":"Indicates whether this value is sensitive"},"stack_path":{"type":"string","description":"Stack path for Terragrunt workspaces"},"value":{"type":"string","description":"Value associated with the output."}},"description":"Represents an individual output variable.","required":["name","value","sensitive"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Clone workspace

> Clone the given workspace with new name.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/clone":{"post":{"tags":["workspaces"],"summary":"Clone workspace","description":"Clone the given workspace with new name.","operationId":"workspaces#clone-workspace","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloneWorkspaceRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacesCreateWorkspaceResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/PolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"CloneWorkspaceRequest":{"type":"object","properties":{"identifier":{"type":"string","description":"Workspace identifier.","pattern":"^[A-Za-z_][A-Za-z0-9_-]*$","minLength":1,"maxLength":128},"name":{"type":"string","description":"Name is the human readable name for the resource.","pattern":"^[A-Za-z_][A-Za-z0-9_ -]*$","minLength":1,"maxLength":128}},"required":["identifier","name"]},"WorkspacesCreateWorkspaceResponseBody":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"}},"description":"Create-WorkspaceResponseBody result type (default view)"},"Evaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"EvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/EvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"EvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"PolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/Evaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List data

> List all stored data for a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data":{"get":{"tags":["workspaces"],"summary":"List data","description":"List all stored data for a workspace.","operationId":"workspaces#list-data","parameters":[{"name":"pipeline_execution_id","in":"query","description":"Filter by pipeline execution ID","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by pipeline execution ID"}},{"name":"pipeline_stage_id","in":"query","description":"Filter by pipeline execution stage ID","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by pipeline execution stage ID"}},{"name":"provisioner_type","in":"query","description":"Filter by provisioner type","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by provisioner type"}},{"name":"data_type","in":"query","description":"Filter by data type","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by data type"}},{"name":"stack_path","in":"query","description":"Filter by stack path","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by stack path"}},{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceDataResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"WorkspaceDataResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmWorkspacedata"}},"HarnessIacmWorkspacedata":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"data_type":{"type":"string","description":"Type of data stored","enum":["plan_human","state_raw","state_human","cost_breakdown","cost_diff","modules","providers","cdk_template","cdk_manifest","cdk_tree","cdk_assets","cdk_diff","cdk_drift"]},"id":{"type":"string","description":"The unique identifier for the data"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_id":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"provisioner_type":{"type":"string","description":"Type of provisioner that created the data","enum":["tf","awscdk"]},"rollback_source_id":{"type":"string","description":"ID of the workspacedata row this entry was rolled back from; null for non-rollback entries"},"stack_path":{"type":"string","description":"Optional path to the stack module"},"stage_id":{"type":"string","description":"The unique identifier for a stage"},"workspace":{"type":"string","description":"Workspace identifier"}},"description":"WorkspaceDataResource is the representation for a single item of data associated with a workspace.","required":["account","org","project","workspace","created","id","pipeline_id","stage_id","pipeline_execution_id","pipeline_stage_id","provisioner_type","data_type"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create data

> Store binary data generated by the provisioner, such as plans and state files.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data":{"post":{"tags":["workspaces"],"summary":"Create data","description":"Store binary data generated by the provisioner, such as plans and state files.","operationId":"workspaces#create-data","parameters":[{"name":"pipeline_id","in":"query","description":"The unique identifier for the associated pipeline","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline"}},{"name":"stage_id","in":"query","description":"The unique identifier for a stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for a stage"}},{"name":"pipeline_execution_id","in":"query","description":"The unique identifier for the associated pipeline execution","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution"}},{"name":"pipeline_stage_id","in":"query","description":"The unique identifier for the associated pipeline execution stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"}},{"name":"provisioner_type","in":"query","description":"Type of provisioner that created the data","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of provisioner that created the data","enum":["tf","awscdk"]}},{"name":"data_type","in":"query","description":"Type of data stored","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of data stored","enum":["plan_human","state_raw","state_human","cost_breakdown","cost_diff","modules","providers","cdk_template","cdk_manifest","cdk_tree","cdk_assets","cdk_diff","cdk_drift"]}},{"name":"policy_action","in":"query","description":"Policy action used during OPA evaluation","allowEmptyValue":true,"schema":{"type":"string","description":"Policy action used during OPA evaluation"}},{"name":"opa_sdk_supported","in":"query","description":"Indicates the plugin supports OPA SDK-based evaluation","allowEmptyValue":true,"schema":{"type":"boolean","description":"Indicates the plugin supports OPA SDK-based evaluation"}},{"name":"stack_path","in":"query","description":"Optional path to the stack module","allowEmptyValue":true,"schema":{"type":"string","description":"Optional path to the stack module"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the data.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the data.","format":"int64"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDataResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"CreateDataResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"},"policy_evaluation":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceDataPolicyEvaluation"},"description":"Individual policy evaluation details"},"policy_evaluation_message":{"type":"string","description":"Pre-rendered message included when policy evaluation did not pass"},"policy_evaluation_status":{"type":"string","description":"The overall status of policy evaluation (if it occurred) indicating whether it passed","enum":["error","warning","pass"]}},"required":["id"]},"WorkspaceDataPolicyEvaluation":{"type":"object","properties":{"message":{"type":"string"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"policy_set_id":{"type":"string"},"policy_set_name":{"type":"string"},"policy_status":{"type":"string"}},"required":["policy_set_id","policy_set_name","policy_id","policy_name","policy_status","message"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show data

> Get binary data generated by the provisioner, such as plans and state files.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data/{id}":{"get":{"tags":["workspaces"],"summary":"Show data","description":"Get binary data generated by the provisioner, such as plans and state files.","operationId":"workspaces#show-data","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The unique identifier for the data","required":true,"schema":{"type":"string","description":"The unique identifier for the data"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Evaluate data

> Evaluate policy against previously stored data, such as plans and state files.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data/{id}/evaluate-policy":{"get":{"tags":["workspaces"],"summary":"Evaluate data","description":"Evaluate policy against previously stored data, such as plans and state files.","operationId":"workspaces#evaluate-data","parameters":[{"name":"pipeline_execution_id","in":"query","description":"Pipeline execution associated with this evaluation","allowEmptyValue":true,"schema":{"type":"string","description":"Pipeline execution associated with this evaluation"}},{"name":"policy_action","in":"query","description":"Policy action used during OPA evaluation","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Policy action used during OPA evaluation"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The unique identifier for the data","required":true,"schema":{"type":"string","description":"The unique identifier for the data"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluateDataResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"EvaluateDataResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"},"policy_evaluation":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceDataPolicyEvaluation"},"description":"Individual policy evaluation details"},"policy_evaluation_message":{"type":"string","description":"Pre-rendered message included when policy evaluation did not pass"},"policy_evaluation_status":{"type":"string","description":"The overall status of policy evaluation (if it occurred) indicating whether it passed","enum":["error","warning","pass"]}},"required":["id"]},"WorkspaceDataPolicyEvaluation":{"type":"object","properties":{"message":{"type":"string"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"policy_set_id":{"type":"string"},"policy_set_name":{"type":"string"},"policy_status":{"type":"string"}},"required":["policy_set_id","policy_set_name","policy_id","policy_name","policy_status","message"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload dependency graph data

> Upload dependency graph for an existing plan file.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/dependency-graph":{"post":{"tags":["workspaces"],"summary":"Upload dependency graph data","description":"Upload dependency graph for an existing plan file.","operationId":"workspaces#upload-dependency-graph","parameters":[{"name":"pipeline_id","in":"query","description":"The unique identifier for the associated pipeline","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline"}},{"name":"stage_id","in":"query","description":"The unique identifier for a stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for a stage"}},{"name":"pipeline_execution_id","in":"query","description":"The unique identifier for the associated pipeline execution","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution"}},{"name":"pipeline_stage_id","in":"query","description":"The unique identifier for the associated pipeline execution stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"}},{"name":"provisioner_type","in":"query","description":"Type of provisioner that created the data","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of provisioner that created the data","enum":["tf","awscdk"]}},{"name":"data_type","in":"query","description":"Type of data stored","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of data stored","enum":["plan_human","state_raw","state_human","cost_breakdown","cost_diff","modules","providers","cdk_template","cdk_manifest","cdk_tree","cdk_assets","cdk_diff","cdk_drift"]}},{"name":"stack_path","in":"query","description":"Optional path to the stack module","allowEmptyValue":true,"schema":{"type":"string","description":"Optional path to the stack module"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the graph data.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the graph data.","format":"int64"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadDependencyGraphResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UploadDependencyGraphResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"},"policy_evaluation":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceDataPolicyEvaluation"},"description":"Individual policy evaluation details"},"policy_evaluation_message":{"type":"string","description":"Pre-rendered message included when policy evaluation did not pass"},"policy_evaluation_status":{"type":"string","description":"The overall status of policy evaluation (if it occurred) indicating whether it passed","enum":["error","warning","pass"]}},"required":["id"]},"WorkspaceDataPolicyEvaluation":{"type":"object","properties":{"message":{"type":"string"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"policy_set_id":{"type":"string"},"policy_set_name":{"type":"string"},"policy_status":{"type":"string"}},"required":["policy_set_id","policy_set_name","policy_id","policy_name","policy_status","message"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get drift automation status for a workspace

> Returns whether drift automation is enabled and related metadata.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config":{"get":{"tags":["workspaces"],"summary":"Get drift automation status for a workspace","description":"Returns whether drift automation is enabled and related metadata.","operationId":"workspaces#get-drift-config","parameters":[{"name":"provisioner","in":"query","description":"Provisioner key (defaults to opentofu when omitted)","allowEmptyValue":true,"schema":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDriftConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"GetDriftConfigResponse":{"type":"object","properties":{"enabled":{"type":"boolean"},"pipeline_id":{"type":"string"},"run_every":{"type":"integer","description":"Repeat interval; set when schedule is configured","format":"int64"},"run_every_unit":{"type":"string","description":"hours or days","enum":["seconds","minutes","hours","days"]},"trigger_id":{"type":"string"}},"required":["enabled"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Enable drift automation for a workspace

> Configures drift detection pipeline and schedule for the workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config":{"put":{"tags":["workspaces"],"summary":"Enable drift automation for a workspace","description":"Configures drift detection pipeline and schedule for the workspace.","operationId":"workspaces#update-drift-config","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDriftConfigRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDriftConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UpdateDriftConfigRequest":{"type":"object","properties":{"pipeline_id":{"type":"string","description":"Pipeline to run for drift detection"},"provisioner":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"},"run_every":{"type":"integer","description":"Run drift detection every N hours or N days (see run_every_unit)","format":"int64"},"run_every_unit":{"type":"string","description":"hours or days","enum":["seconds","minutes","hours","days"]}},"required":["pipeline_id","run_every","run_every_unit"]},"UpdateDriftConfigResponse":{"type":"object","properties":{"status":{"type":"string","description":"Outcome message"}},"required":["status"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Disable drift automation for a workspace

> Removes drift scheduling and related configuration for the workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config":{"delete":{"tags":["workspaces"],"summary":"Disable drift automation for a workspace","description":"Removes drift scheduling and related configuration for the workspace.","operationId":"workspaces#delete-drift-config","parameters":[{"name":"provisioner","in":"query","description":"Provisioner key (defaults to opentofu when omitted)","allowEmptyValue":true,"schema":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDriftConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"DeleteDriftConfigResponse":{"type":"object","properties":{"status":{"type":"string","description":"Outcome message"}},"required":["status"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get ephemeral TTL status for a workspace

> Returns whether ephemeral TTL is enabled and related metadata.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config":{"get":{"tags":["workspaces"],"summary":"Get ephemeral TTL status for a workspace","description":"Returns whether ephemeral TTL is enabled and related metadata.","operationId":"workspaces#get-ephemeral-config","parameters":[{"name":"provisioner","in":"query","description":"Provisioner key (defaults to opentofu when omitted)","allowEmptyValue":true,"schema":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEphemeralConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"GetEphemeralConfigResponse":{"type":"object","properties":{"delete_at":{"type":"string","description":"Scheduled deletion timestamp (ISO 8601)"},"delete_delay_unit":{"type":"string","description":"Configured delete delay unit (hours or days)","enum":["seconds","minutes","hours","days"]},"delete_delay_value":{"type":"integer","description":"Configured delete delay value (when delete_workspace is true)","format":"int64"},"delete_on_date":{"type":"string","description":"Configured delete date (YYYY-MM-DD) when schedule uses a specific date"},"delete_workspace":{"type":"boolean","description":"Whether workspace will be deleted after destroy"},"destroy_at":{"type":"string","description":"Scheduled destruction timestamp (ISO 8601)"},"destroy_on_date":{"type":"string","description":"Configured destroy date (YYYY-MM-DD) when schedule uses a specific date"},"enabled":{"type":"boolean"},"pipeline_id":{"type":"string"},"provisioner":{"type":"string","description":"Provisioner this configuration applies to"},"source":{"type":"string","description":"Origin of the configuration: 'workspace', 'project', or 'disabled'","enum":["workspace","project","disabled"]},"trigger_id":{"type":"string","description":"Harness trigger ID for the destroy schedule"},"ttl_unit":{"type":"string","description":"Configured destroy delay unit (hours or days)","enum":["seconds","minutes","hours","days"]},"ttl_value":{"type":"integer","description":"Configured destroy delay value (when schedule uses delay)","format":"int64"}},"required":["enabled"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Enable ephemeral TTL for a workspace

> Configures time-to-live settings to automatically destroy infrastructure and optionally delete the workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config":{"put":{"tags":["workspaces"],"summary":"Enable ephemeral TTL for a workspace","description":"Configures time-to-live settings to automatically destroy infrastructure and optionally delete the workspace.","operationId":"workspaces#update-ephemeral-config","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEphemeralConfigRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEphemeralConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UpdateEphemeralConfigRequest":{"type":"object","properties":{"delete_delay_unit":{"type":"string","description":"Unit for delete delay","enum":["seconds","minutes","hours","days"]},"delete_delay_value":{"type":"integer","description":"Delete workspace after N hours or days from now","format":"int64"},"delete_on_date":{"type":"string","description":"Specific date to delete workspace (ISO 8601 format, e.g. 2026-09-02)"},"delete_workspace":{"type":"boolean","description":"Whether to delete the workspace record after infrastructure is destroyed"},"destroy_delay_unit":{"type":"string","description":"Unit for destroy delay","enum":["seconds","minutes","hours","days"]},"destroy_delay_value":{"type":"integer","description":"Destroy infrastructure after N hours or days from now","format":"int64"},"destroy_on_date":{"type":"string","description":"Specific date to destroy infrastructure (ISO 8601 format, e.g. 2026-08-24)"},"pipeline_id":{"type":"string","description":"Pipeline to run for destroying infrastructure"},"provisioner":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"}},"required":["pipeline_id"]},"UpdateEphemeralConfigResponse":{"type":"object","properties":{"delete_at":{"type":"string","description":"Computed delete timestamp (ISO 8601), empty if delete_workspace is false"},"destroy_at":{"type":"string","description":"Computed destroy timestamp (ISO 8601)"},"status":{"type":"string","description":"Outcome message"}},"required":["status"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Disable ephemeral TTL for a workspace

> Removes ephemeral scheduling and related configuration for the workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config":{"delete":{"tags":["workspaces"],"summary":"Disable ephemeral TTL for a workspace","description":"Removes ephemeral scheduling and related configuration for the workspace.","operationId":"workspaces#delete-ephemeral-config","parameters":[{"name":"provisioner","in":"query","description":"Provisioner key (defaults to opentofu when omitted)","allowEmptyValue":true,"schema":{"type":"string","description":"Provisioner key (defaults to opentofu when omitted)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEphemeralConfigResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"DeleteEphemeralConfigResponse":{"type":"object","properties":{"status":{"type":"string","description":"Outcome message"}},"required":["status"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Send event

> Store binary data generated by the provisioner, such as plans and state files.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/events":{"post":{"tags":["workspaces"],"summary":"Send event","description":"Store binary data generated by the provisioner, such as plans and state files.","operationId":"workspaces#send-event","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace associated with this event","required":true,"schema":{"type":"string","description":"Workspace associated with this event","minLength":1,"maxLength":1024}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendEventRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"SendEventRequest":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"string"}},"event_type":{"type":"string","description":"The type of event that occurred","enum":["plan","drifted","provisioning","destroying","active","inactive","apply_needed","failed","stage-complete"]},"metadata":{"$ref":"#/components/schemas/ActivityMetadata"},"pipeline_execution_id":{"type":"string","description":"Deprecated: use metadata instead","default":""},"pipeline_stage_id":{"type":"string","description":"Deprecated: use metadata instead","default":""}},"required":["event_type"]},"ActivityMetadata":{"type":"object","properties":{"PlannedChangesCount":{"type":"integer","description":"Deprecated: use resource_count_xxxx fields instead","default":0,"format":"int64"},"activity_status":{"type":"string","description":"The status of this activity","enum":["success","failure","incomplete"]},"activity_type":{"type":"string","description":"The type of this activity","enum":["apply","destroy","plan","drifted","import","bootstrap","synth","deploy","diff","drift","rollback"]},"cost_breakdown_uuid":{"type":"string","description":"The ID of any associated cost breakdown data"},"cost_currency":{"type":"string","description":"The currency used in cost data for this change"},"cost_diff_total_monthly":{"type":"string","description":"The currency used in cost data for this change"},"cost_diff_uuid":{"type":"string","description":"The ID of any associated cost diff data"},"cost_past_total_monthly":{"type":"string","description":"The currency used in cost data for this change"},"cost_total_monthly":{"type":"string","description":"The currency used in cost data for this change"},"cost_total_monthly_percentage_change":{"type":"string","description":"The currency used in cost data for this change"},"data_length":{"type":"integer","description":"The length of the data","default":0,"format":"int64"},"drift_counts":{"$ref":"#/components/schemas/Counts"},"enable_solutions_factory":{"type":"boolean","description":"Indicates if Harness Solution Factory functionality is enabled"},"git_branch":{"type":"string","description":"Git branch associated with this execution"},"git_commit_message":{"type":"string","description":"Git commit message associated with this execution"},"git_commit_sha":{"type":"string","description":"Git commit SHA associated with this execution"},"git_repo":{"type":"string","description":"Git repo associated with this execution"},"modules_uuid":{"type":"string","description":"The ID of any associated modules data"},"output_counts":{"$ref":"#/components/schemas/Counts"},"pipeline":{"type":"string","description":"The unique identifier of any associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for any associated pipeline execution"},"pipeline_execution_number":{"type":"string","description":"The unique number for any associated pipeline execution"},"pipeline_name":{"type":"string","description":"The name of any associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"plan_uuid":{"type":"string","description":"The ID of any associated plan data"},"providers_uuid":{"type":"string","description":"The ID of any associated providers data"},"provisioner":{"type":"string","description":"The provisioner in use"},"provisioner_version":{"type":"string","description":"The current version of the provisioner in use"},"resource_counts":{"$ref":"#/components/schemas/Counts"},"rollback_reason":{"type":"string","description":"For rollback activities: optional human-readable reason provided by the actor"},"rollback_source_id":{"type":"string","description":"For rollback activities: the workspacedata ID that was rolled back from"},"stacks":{"type":"array","items":{"$ref":"#/components/schemas/Stacks"},"description":"Stack details for multi-stack deployments"},"state_checksum":{"type":"string","description":"The checksum of the last-seen state file"},"state_uuid":{"type":"string","description":"The ID of any associated state data"},"terragrunt_details":{"type":"array","items":{"$ref":"#/components/schemas/TerragruntDetail"},"description":"Terragrunt details for any associated execution"},"trigger":{"type":"object","description":"Trigger info for any associated pipeline execution","additionalProperties":true}}},"Counts":{"type":"object","properties":{"added":{"type":"integer","description":"Number added","format":"int64"},"changed":{"type":"integer","description":"Number changed","format":"int64"},"deleted":{"type":"integer","description":"Number deleted","format":"int64"},"imported":{"type":"integer","description":"Number imported","format":"int64"},"removed":{"type":"integer","description":"Number removed","format":"int64"},"unchanged":{"type":"integer","description":"Number unchanged","format":"int64"}},"required":["added","changed","deleted","unchanged"]},"Stacks":{"type":"object","properties":{"assets_uuid":{"type":"string","description":"UUID of the uploaded CDK assets for this stack"},"drift_counts":{"$ref":"#/components/schemas/Counts"},"drift_uuid":{"type":"string","description":"UUID of the uploaded drift detection results for this stack"},"error_message":{"type":"string","description":"Error message if status is failure"},"manifest_uuid":{"type":"string","description":"UUID of the uploaded CDK manifest for this stack"},"resource_counts":{"$ref":"#/components/schemas/Counts"},"stack_name":{"type":"string","description":"Name of the CDK stack"},"stack_outputs":{"type":"object","description":"Outputs generated for stack","additionalProperties":{"type":"string"}},"stack_path":{"type":"string","description":"Path to the stack within the CDK app"},"status":{"type":"string","description":"Status of the stack operation","enum":["success","failure","skipped"]},"template_uuid":{"type":"string","description":"UUID of the uploaded CloudFormation template for this stack"},"tree_uuid":{"type":"string","description":"UUID of the uploaded CDK tree for this stack"}},"description":"Stack details for multi-stack deployments"},"TerragruntDetail":{"type":"object","properties":{"cost_breakdown_uuid":{"type":"string","description":"The ID of any associated cost breakdown data"},"cost_currency":{"type":"string","description":"The currency used in cost data for this change"},"cost_diff_total_monthly":{"type":"string","description":"The difference in total monthly cost"},"cost_diff_uuid":{"type":"string","description":"The ID of any associated cost diff data"},"cost_past_total_monthly":{"type":"string","description":"The past total monthly cost"},"cost_total_monthly":{"type":"string","description":"The total monthly cost"},"cost_total_monthly_percentage_change":{"type":"string","description":"The percentage change in total monthly cost"},"drift_counts":{"$ref":"#/components/schemas/Counts"},"output_counts":{"$ref":"#/components/schemas/Counts"},"path_id":{"type":"string","description":"Path ID"},"resource_counts":{"$ref":"#/components/schemas/Counts"},"state_file_link":{"type":"string","description":"State file link"},"status":{"type":"string","description":"Status"}}},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List pipelines

> List the pipelines where the workspace is been used

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/pipelines":{"get":{"tags":["workspaces"],"summary":"List pipelines","description":"List the pipelines where the workspace is been used","operationId":"workspaces#list-pipelines","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListPipelinesResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipelines":{"type":"array","items":{"type":"string"},"description":"Array of pipelines that belong to a specific workspace"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},"required":["account","org","project"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create remote execution

> Create a remote execution for a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions":{"post":{"tags":["workspaces"],"summary":"Create remote execution","description":"Create a remote execution for a workspace.","operationId":"workspaces#create-remote-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"The workspace associated with the remote execution.","required":true,"schema":{"type":"string","description":"The workspace associated with the remote execution."}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRemoteExecutionRequest"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRemoteExecutionResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"CreateRemoteExecutionRequest":{"type":"object","properties":{"custom_arguments":{"type":"object","description":"The arguments supplied to the plan.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","pipeline_execution_id","pipeline_execution_url","created","updated","executed","sha256_checksum"]},"CreateRemoteExecutionResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"custom_arguments":{"type":"object","description":"The arguments supplied to the plan.","additionalProperties":{"type":"array","items":{"type":"string"}}},"executed":{"type":"boolean","description":"The boolean value indicating if the remote execution has been executed."},"id":{"type":"string","description":"The ID of the remote execution.","format":"uuid"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The pipeline execution ID of the pipeline executing the remote execution"},"pipeline_execution_url":{"type":"string","description":"The pipeline execution URL of the pipeline executing the remote execution"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"sha256_checksum":{"type":"string","description":"The checksum of the patch file of changes that the remote execution will run against."},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"workspace":{"type":"string","description":"The workspace associated with the remote execution."}},"required":["account","org","project","id","workspace","pipeline_execution_id","pipeline_execution_url","created","updated","executed","sha256_checksum"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show remote execution

> Find remote execution

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}":{"get":{"tags":["workspaces"],"summary":"Show remote execution","description":"Find remote execution","operationId":"workspaces#find-remote-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The ID of the remote execution","required":true,"schema":{"type":"string","description":"The ID of the remote execution","format":"uuid"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowRemoteExecutionResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ShowRemoteExecutionResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"custom_arguments":{"type":"object","description":"The arguments supplied to the plan.","additionalProperties":{"type":"array","items":{"type":"string"}}},"executed":{"type":"boolean","description":"The boolean value indicating if the remote execution has been executed."},"id":{"type":"string","description":"The ID of the remote execution.","format":"uuid"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The pipeline execution ID of the pipeline executing the remote execution"},"pipeline_execution_url":{"type":"string","description":"The pipeline execution URL of the pipeline executing the remote execution"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"sha256_checksum":{"type":"string","description":"The checksum of the patch file of changes that the remote execution will run against."},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"workspace":{"type":"string","description":"The workspace associated with the remote execution."}},"required":["account","org","project","id","workspace","pipeline_execution_id","pipeline_execution_url","created","updated","executed","sha256_checksum"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Download remote execution

> Download the source code for the remote plan.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/download":{"get":{"tags":["workspaces"],"summary":"Download remote execution","description":"Download the source code for the remote plan.","operationId":"workspaces#download-remote-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The ID of the remote execution","required":true,"schema":{"type":"string","description":"The ID of the remote execution","format":"uuid"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{"Content-Digest":{"description":"Content-Digest header as defined in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Digest. Sha256 is the only supported algorithm.","schema":{"type":"string","description":"Content-Digest header as defined in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Digest. Sha256 is the only supported algorithm."}}},"content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## execute-remote-execution workspaces

> Execute the remote execution

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/execute":{"post":{"tags":["workspaces"],"summary":"execute-remote-execution workspaces","description":"Execute the remote execution","operationId":"workspaces#execute-remote-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The ID of the remote execution","required":true,"schema":{"type":"string","description":"The ID of the remote execution","format":"uuid"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteExecution"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"RemoteExecution":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"custom_arguments":{"type":"object","description":"The arguments supplied to the plan.","additionalProperties":{"type":"array","items":{"type":"string"}}},"executed":{"type":"boolean","description":"The boolean value indicating if the remote execution has been executed."},"id":{"type":"string","description":"The ID of the remote execution.","format":"uuid"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The pipeline execution ID of the pipeline executing the remote execution"},"pipeline_execution_url":{"type":"string","description":"The pipeline execution URL of the pipeline executing the remote execution"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"sha256_checksum":{"type":"string","description":"The checksum of the patch file of changes that the remote execution will run against."},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"workspace":{"type":"string","description":"The workspace associated with the remote execution."}},"description":"remote execution details for a specific workspace.","required":["account","org","project","id","workspace","pipeline_execution_id","pipeline_execution_url","created","updated","executed","sha256_checksum"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload remote execution source

> Upload the source code for the remote execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/upload":{"post":{"tags":["workspaces"],"summary":"Upload remote execution source","description":"Upload the source code for the remote execution.","operationId":"workspaces#upload-remote-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace is the resource workspace this variable is associated with.","required":true,"schema":{"type":"string","description":"Workspace is the resource workspace this variable is associated with."}},{"name":"id","in":"path","description":"The ID of the remote execution","required":true,"schema":{"type":"string","description":"The ID of the remote execution","format":"uuid"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the source code.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the source code.","format":"int64"}},{"name":"Content-Digest","in":"header","description":"Content-Digest header as defined in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Digest. Sha256 is the only supported algorithm.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Content-Digest header as defined in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Digest. Sha256 is the only supported algorithm."}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadRemoteExecutionResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UploadRemoteExecutionResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"custom_arguments":{"type":"object","description":"The arguments supplied to the plan.","additionalProperties":{"type":"array","items":{"type":"string"}}},"executed":{"type":"boolean","description":"The boolean value indicating if the remote execution has been executed."},"id":{"type":"string","description":"The ID of the remote execution.","format":"uuid"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The pipeline execution ID of the pipeline executing the remote execution"},"pipeline_execution_url":{"type":"string","description":"The pipeline execution URL of the pipeline executing the remote execution"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"sha256_checksum":{"type":"string","description":"The checksum of the patch file of changes that the remote execution will run against."},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"workspace":{"type":"string","description":"The workspace associated with the remote execution."}},"required":["account","org","project","id","workspace","pipeline_execution_id","pipeline_execution_url","created","updated","executed","sha256_checksum"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List workspace resource types

> Retrieves the resource types used by workspaces

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types":{"get":{"tags":["workspaces"],"summary":"List workspace resource types","description":"Retrieves the resource types used by workspaces","operationId":"workspaces#list-workspace-resource-types","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"List of resource types"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Map of resource types and their attributes

> Retrieves the resource type attributes used by workspaces and attributes

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types-and-attributes":{"get":{"tags":["workspaces"],"summary":"Map of resource types and their attributes","description":"Retrieves the resource type attributes used by workspaces and attributes","operationId":"workspaces#list-workspace-resource-types-and-attributes","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"object","description":"Map of resource types and their attributes","additionalProperties":{"type":"array","items":{"type":"string"}}}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List workspace resource type attributes

> Retrieves the resource type attributes used by workspaces

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types/{resource_type}/attributes":{"get":{"tags":["workspaces"],"summary":"List workspace resource type attributes","description":"Retrieves the resource type attributes used by workspaces","operationId":"workspaces#list-workspace-resource-type-attributes","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"resource_type","in":"path","description":"Resource type","required":true,"schema":{"type":"string","description":"Resource type"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"List of resource type attributes"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete resources

> Deletes destroyed resources for a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resources":{"delete":{"tags":["workspaces"],"summary":"Delete resources","description":"Deletes destroyed resources for a workspace.","operationId":"workspaces#delete-resources","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResourcesRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResourcesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/DeleteResourcesResponse"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"DeleteResourcesRequest":{"type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/ResourceDelete"}}},"required":["resources"]},"ResourceDelete":{"type":"object","properties":{"module":{"type":"string","description":"Module path"},"name":{"type":"string","description":"Resource name"},"path_id":{"type":"string","description":"Path id"},"provider":{"type":"string","description":"Provider name"},"type":{"type":"string","description":"Resource type"}},"description":"Resource delete information","required":["provider","type","name","module"]},"DeleteResourcesResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ResourceDeleteResult"}},"summary":{"$ref":"#/components/schemas/ResourceDeleteSummary"}},"required":["results","summary"]},"ResourceDeleteResult":{"type":"object","properties":{"error":{"type":"string"},"module":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string"},"status":{"type":"string","enum":["deleted","skipped","failed"]},"type":{"type":"string"}},"description":"Result of a resource delete operation","required":["provider","type","name","module"]},"ResourceDeleteSummary":{"type":"object","properties":{"deleted":{"type":"integer","description":"Number of resources successfully deleted","format":"int64"},"failed":{"type":"integer","description":"Number of resources that failed to delete","format":"int64"},"skipped":{"type":"integer","description":"Number of resources skipped","format":"int64"},"total":{"type":"integer","description":"Total number of resources processed","format":"int64"}},"description":"Summary of a resource delete operation","required":["total","deleted","skipped","failed"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update resources

> Updates resources for a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resources":{"patch":{"tags":["workspaces"],"summary":"Update resources","description":"Updates resources for a workspace.","operationId":"workspaces#update-resources","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourcesRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourcesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/UpdateResourcesResponse"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UpdateResourcesRequest":{"type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/ResourceUpdate"}},"session_id":{"type":"string","description":"Session ID to track resource updates belongs to same operation","format":"uuid"},"update_mode":{"type":"string","description":"Update mode: upsert (default) updates attributes; drift updates drift columns only","default":"upsert","enum":["upsert","drift"]}},"required":["resources"]},"ResourceUpdate":{"type":"object","properties":{"attributes":{"description":"Resource attributes"},"drift_attributes":{"type":"object","description":"Map of drifted attribute values (used when update_mode=drift)","additionalProperties":true},"drift_status":{"type":"string","description":"Drift status of the resource (used when update_mode=drift)","enum":["changed","deleted","unchanged",""]},"mode":{"type":"string","description":"managed, datasource, output"},"module":{"type":"string","description":"Module path"},"name":{"type":"string","description":"Resource name"},"path_id":{"type":"string","description":"path id"},"provider":{"type":"string","description":"Provider name"},"sensitive_attribute_paths":{"type":"array","items":{"type":"string"},"description":"Paths to sensitive attributes"},"type":{"type":"string","description":"Resource type"}},"description":"Resource update information","required":["provider","type","name","module","mode","attributes"]},"UpdateResourcesResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ResourceUpdateResult"}},"summary":{"$ref":"#/components/schemas/ResourceUpdateSummary"}},"required":["results","summary"]},"ResourceUpdateResult":{"type":"object","properties":{"error":{"type":"string"},"mode":{"type":"string"},"module":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string"},"status":{"type":"string","enum":["updated","skipped","failed"]},"type":{"type":"string"}},"description":"Result of a resource update operation","required":["provider","type","name","module","mode"]},"ResourceUpdateSummary":{"type":"object","properties":{"failed":{"type":"integer","description":"Number of resources that failed to update","format":"int64"},"skipped":{"type":"integer","description":"Number of resources skipped","format":"int64"},"total":{"type":"integer","description":"Total number of resources processed","format":"int64"},"updated":{"type":"integer","description":"Number of resources successfully updated","format":"int64"}},"description":"Summary of a resource update operation","required":["total","updated","skipped","failed"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete stale resources

> Deletes stale resources for a workspace that don't belong to the current session.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resources/stale":{"delete":{"tags":["workspaces"],"summary":"Delete stale resources","description":"Deletes stale resources for a workspace that don't belong to the current session.","operationId":"workspaces#delete-stale-resources","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteStaleResourcesRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteStaleResourcesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/DeleteStaleResourcesResponse"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"DeleteStaleResourcesRequest":{"type":"object","properties":{"session_id":{"type":"string","description":"Current session ID - resources not matching this will be deleted","format":"uuid"}},"required":["session_id"]},"DeleteStaleResourcesResponse":{"type":"object","properties":{"deleted_count":{"type":"integer","description":"Number of stale resources deleted","format":"int64"}},"required":["deleted_count"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload risk assessment data

> Upload per-resource risk data and overall risk summary for an existing plan file.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/risk-assessment":{"post":{"tags":["workspaces"],"summary":"Upload risk assessment data","description":"Upload per-resource risk data and overall risk summary for an existing plan file.","operationId":"workspaces#upload-risk-assessment","parameters":[{"name":"pipeline_id","in":"query","description":"The unique identifier for the associated pipeline","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline"}},{"name":"stage_id","in":"query","description":"The unique identifier for a stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for a stage"}},{"name":"pipeline_execution_id","in":"query","description":"The unique identifier for the associated pipeline execution","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution"}},{"name":"pipeline_stage_id","in":"query","description":"The unique identifier for the associated pipeline execution stage","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"}},{"name":"provisioner_type","in":"query","description":"Type of provisioner that created the data","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of provisioner that created the data","enum":["tf","awscdk"]}},{"name":"data_type","in":"query","description":"Type of data stored","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of data stored","enum":["plan_human","state_raw","state_human","cost_breakdown","cost_diff","modules","providers","cdk_template","cdk_manifest","cdk_tree","cdk_assets","cdk_diff","cdk_drift"]}},{"name":"stack_path","in":"query","description":"Optional path to the stack module","allowEmptyValue":true,"schema":{"type":"string","description":"Optional path to the stack module"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the risk data.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the risk data.","format":"int64"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadRiskAssessmentResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UploadRiskAssessmentResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"},"policy_evaluation":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceDataPolicyEvaluation"},"description":"Individual policy evaluation details"},"policy_evaluation_message":{"type":"string","description":"Pre-rendered message included when policy evaluation did not pass"},"policy_evaluation_status":{"type":"string","description":"The overall status of policy evaluation (if it occurred) indicating whether it passed","enum":["error","warning","pass"]}},"required":["id"]},"WorkspaceDataPolicyEvaluation":{"type":"object","properties":{"message":{"type":"string"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"policy_set_id":{"type":"string"},"policy_set_name":{"type":"string"},"policy_status":{"type":"string"}},"required":["policy_set_id","policy_set_name","policy_id","policy_name","policy_status","message"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Roll back workspace state to a previous version

> Copies a historical state file to a new version and sets the workspace state pointer to it. Blocked when a pipeline execution is in flight.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/{workspace}/state-versions/{data_id}/rollback":{"post":{"tags":["workspaces"],"summary":"Roll back workspace state to a previous version","description":"Copies a historical state file to a new version and sets the workspace state pointer to it. Blocked when a pipeline execution is in flight.","operationId":"workspaces#rollback-state","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"workspace","in":"path","description":"Workspace identifier","required":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"data_id","in":"path","description":"The unique identifier of the state version to roll back to","required":true,"schema":{"type":"string","description":"The unique identifier of the state version to roll back to","format":"uuid"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackStateRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackStateResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"RollbackStateRequest":{"type":"object","properties":{"rollback_reason":{"type":"string","description":"Optional human-readable reason for the rollback"}}},"RollbackStateResponse":{"type":"object","properties":{"activity_id":{"type":"string","description":"The unique identifier of the audit activity record","format":"uuid"},"new_data_id":{"type":"string","description":"The unique identifier of the new state version created by the rollback","format":"uuid"},"new_file_version":{"type":"integer","description":"The file version timestamp (microseconds) of the new state object","format":"int64"}},"required":["new_data_id","new_file_version","activity_id"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List provisioners ratio

> Retrieves the ratio of provisioners used by workspaces

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/workspaces/provisioners-ratio":{"get":{"tags":["workspaces"],"summary":"List provisioners ratio","description":"Retrieves the ratio of provisioners used by workspaces","operationId":"workspaces#list-provisioners-ratio","parameters":[{"name":"start_time","in":"query","description":"Start time filter (Unix timestamp)","allowEmptyValue":true,"schema":{"type":"integer","description":"Start time filter (Unix timestamp)","format":"int64"}},{"name":"end_time","in":"query","description":"End time filter (Unix timestamp)","allowEmptyValue":true,"schema":{"type":"integer","description":"End time filter (Unix timestamp)","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProvisionersRatioResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListProvisionersRatioResponse":{"type":"object","properties":{"provisioner":{"type":"object","description":"Provisioner name","additionalProperties":{"type":"number","format":"double"}},"total":{"type":"number","description":"Total number of workspaces","format":"double"}},"description":"List of provisioners ratio","required":["provisioner","total"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List workspaces associated with a template ID

> Get all workspaces associated with a specific template ID

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"workspaces","description":"Workspaces Service handles the API for managing workspaces\nand triggering workflows against them."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/workspace/templates/{template_id}":{"get":{"tags":["workspaces"],"summary":"List workspaces associated with a template ID","description":"Get all workspaces associated with a specific template ID","operationId":"workspaces#list-associated-workspaces","parameters":[{"name":"org","in":"query","description":"Organization identifier (required for 'org' and 'project' scope).","allowEmptyValue":true,"schema":{"type":"string","description":"Organization identifier (required for 'org' and 'project' scope).","minLength":1,"maxLength":128}},{"name":"project","in":"query","description":"Project identifier (required for 'project' scope).","allowEmptyValue":true,"schema":{"type":"string","description":"Project identifier (required for 'project' scope).","minLength":1,"maxLength":128}},{"name":"version","in":"query","description":"Template version associated with the workspace.","allowEmptyValue":true,"schema":{"type":"string","description":"Template version associated with the workspace.","minLength":1,"maxLength":32}},{"name":"template_id","in":"path","description":"Template identifier to filter workspaces","required":true,"schema":{"type":"string","description":"Template identifier to filter workspaces","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account identifier.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account identifier.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmWorkspaceTemplate"},"description":"List of workspaces associated with the template ID"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"HarnessIacmWorkspaceTemplate":{"type":"object","properties":{"account":{"type":"string","description":"Account identifier.","minLength":1,"maxLength":128},"created_at":{"type":"integer","description":"Timestamp when the workspace-template association was created.","format":"int64"},"org":{"type":"string","description":"Organization identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project identifier.","minLength":1,"maxLength":128},"template_id":{"type":"string","description":"Template identifier.","minLength":1,"maxLength":128},"updated_at":{"type":"integer","description":"Timestamp when the workspace-template association was last updated.","format":"int64"},"version":{"type":"string","description":"Template version associated with the workspace.","minLength":1,"maxLength":32},"workspace_id":{"type":"string","description":"Workspace identifier.","minLength":1,"maxLength":128}},"description":"WorkspaceTemplateResource is the representation for a workspace-template association.","required":["workspace_id","template_id","created_at","updated_at","account","project","org"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```
