Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Workspaces API

42 actions 42 updates phrasing extends openapi/harness-workspaces-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Harness's API. It is a proposal applied on top of the contract, not a document Harness publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 42 · first 16 shown; the file carries all of them

$.info
$.paths['/iacm/api/orgs/{org}/projects/{project}/tags'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspace-metrics'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces'].post
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].put
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].delete
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/force-unlock'].post
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/lock'].post
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/modules'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources/search'].post
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/clone'].post
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data'].get
$.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Harness Workspaces API
  version: 1.0.0
extends: openapi/harness-workspaces-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 41
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/tags'].get
  update:
    x-apievangelist-phrasing:
      intent: List tags used across workspaces in a project
      effect: read
      questions:
      - Which tags are applied to the infrastructure workspaces in my project?
      - Can I see every workspace tag in use before I filter workspaces by tag?
      instructions:
      - text: List all workspace tags in project {project} of org {org}.
        slots:
          project: path.project
          org: path.org
      - text: Show me the distinct tags my IaCM workspaces use in {project}.
        slots:
          project: path.project
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspace-metrics'].get
  update:
    x-apievangelist-phrasing:
      intent: Show workspace metrics for a project
      effect: read
      questions:
      - What metrics does Harness IaCM report for the workspaces in a project?
      - Can I get workspace metrics for a specific time window?
      instructions:
      - text: Show workspace metrics for project {project} in org {org}.
        slots:
          project: path.project
          org: path.org
      - text: Get workspace metrics for {project} between {start_time} and {end_time}.
        slots:
          project: path.project
          start_time: query.start_time
          end_time: query.end_time
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces'].get
  update:
    x-apievangelist-phrasing:
      intent: List infrastructure workspaces in a project
      effect: read
      questions:
      - How do I list all the IaCM workspaces in a project?
      - Can I filter my workspaces by status or tag?
      - Is there a way to search workspaces by name and sort the results?
      instructions:
      - text: List the workspaces in project {project} of org {org}.
        slots:
          project: path.project
          org: path.org
      - text: Find workspaces in {project} matching {searchTerm}.
        slots:
          project: path.project
          searchTerm: query.searchTerm
      - text: List workspaces in {project} with status {status}.
        slots:
          project: path.project
          status: query.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an infrastructure workspace
      effect: write
      questions:
      - How do I create a new Terraform or OpenTofu workspace in Harness IaCM?
      - What do I need to provide to set up a workspace, like provisioner and provider connector?
      - Can I point a new workspace at a Git repository and branch?
      instructions:
      - text: Create workspace {name} with identifier {identifier} in project {project} of org {org}.
        slots:
          name: requestBody.name
          identifier: requestBody.identifier
          project: path.project
          org: path.org
      - text: Set up a new {provisioner} workspace {name} using provider connector {provider_connector}.
        slots:
          provisioner: requestBody.provisioner
          name: requestBody.name
          provider_connector: requestBody.provider_connector
      - text: Create a workspace {name} that reads code from {repository} on branch {repository_branch}.
        slots:
          name: requestBody.name
          repository: requestBody.repository
          repository_branch: requestBody.repository_branch
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Show one workspace's details
      effect: read
      questions:
      - How do I look up the configuration of a single IaCM workspace?
      - What provisioner and repository is a given workspace configured with?
      instructions:
      - text: Show workspace {identifier} in project {project} of org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Get the details of workspace {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing workspace's settings
      effect: write
      questions:
      - How do I change the repository branch or provisioner version on an existing workspace?
      - Can I turn on cost estimation for a workspace I already created?
      instructions:
      - text: Update workspace {identifier} in project {project} of org {org} with the new settings.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Point existing workspace {identifier} at branch {repository_branch}.
        slots:
          identifier: path.identifier
          repository_branch: requestBody.repository_branch
      - text: Change the provisioner version of workspace {identifier} to {provisioner_version}.
        slots:
          identifier: path.identifier
          provisioner_version: requestBody.provisioner_version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a workspace
      effect: destructive
      questions:
      - How do I delete an IaCM workspace I no longer need?
      - Can I remove a workspace entirely from a project?
      instructions:
      - text: Delete workspace {identifier} from project {project} in org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Remove the workspace {identifier} permanently.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/force-unlock'].post
  update:
    x-apievangelist-phrasing:
      intent: Force-unlock a locked workspace
      effect: write
      questions:
      - How do I clear a stuck lock on a workspace, even one set automatically?
      - Is it safe to call unlock on a workspace that is not locked?
      instructions:
      - text: Force unlock workspace {identifier} in project {project} of org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Remove whatever lock is on workspace {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/actions/lock'].post
  update:
    x-apievangelist-phrasing:
      intent: Place a manual lock on a workspace
      effect: write
      questions:
      - How do I lock a workspace so nobody runs changes against it?
      - Can I record a reason when I manually lock a workspace?
      instructions:
      - text: Lock workspace {identifier} in project {project} of org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Put a manual lock on workspace {identifier} with reason {reason}.
        slots:
          identifier: path.identifier
          reason: requestBody.reason
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/modules'].get
  update:
    x-apievangelist-phrasing:
      intent: List modules used by a workspace
      effect: read
      questions:
      - Which Terraform modules does a particular workspace use?
      - Can I see the modules associated with one workspace?
      instructions:
      - text: List the modules associated with workspace {identifier} in project {project} of org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: Show which modules workspace {identifier} depends on.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources'].get
  update:
    x-apievangelist-phrasing:
      intent: List resources managed by a workspace
      effect: read
      questions:
      - What cloud resources does a workspace currently manage?
      - Can I filter a workspace's resources by resource type and page through them?
      instructions:
      - text: List the resources managed by workspace {identifier} in project {project} of org {org}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
      - text: List resources of type {resource_types} in workspace {identifier}.
        slots:
          resource_types: query.resource_types
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{identifier}/resources/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search a workspace's resources using selectors
      effect: read
      questions:
      - Can I query a workspace's resources with selectors instead of just listing them all?
      - What happens if I search workspace resources without a page or limit?
      instructions:
      - text: Search resources in workspace {identifier} of project {project} in org {org} using selectors {selectors}.
        slots:
          identifier: path.identifier
          project: path.project
          org: path.org
          selectors: requestBody.selectors
      - text: Find resources in workspace {identifier} that match selectors {selectors}, {limit} per page.
        slots:
          identifier: path.identifier
          selectors: requestBody.selectors
          limit: requestBody.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/clone'].post
  update:
    x-apievangelist-phrasing:
      intent: Clone a workspace under a new name
      effect: write
      questions:
      - How do I copy an existing workspace to make a new one?
      - Can I duplicate a workspace and give the copy its own identifier?
      instructions:
      - text: Clone workspace {workspace} in project {project} of org {org} as {name} with identifier {identifier}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
          name: requestBody.name
          identifier: requestBody.identifier
      - text: Make a copy of workspace {workspace} called {name}.
        slots:
          workspace: path.workspace
          name: requestBody.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data'].get
  update:
    x-apievangelist-phrasing:
      intent: List stored plan and state data for a workspace
      effect: read
      questions:
      - Where can I see the plan and state files stored for a workspace?
      - Can I filter a workspace's stored data by pipeline execution or data type?
      instructions:
      - text: List all stored data for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: List {data_type} data stored for workspace {workspace} from execution {pipeline_execution_id}.
        slots:
          data_type: query.data_type
          workspace: path.workspace
          pipeline_execution_id: query.pipeline_execution_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data'].post
  update:
    x-apievangelist-phrasing:
      intent: Store provisioner plan or state data
      effect: write
      questions:
      - How do I upload a plan or state file the provisioner generated to a workspace?
      - What pipeline and stage details must I pass when storing workspace data?
      instructions:
      - text: Store {data_type} data for workspace {workspace} in project {project} of org {org} from pipeline {pipeline_id} stage {stage_id}.
        slots:
          data_type: query.data_type
          workspace: path.workspace
          project: path.project
          org: path.org
          pipeline_id: query.pipeline_id
          stage_id: query.stage_id
      - text: Save the provisioner output for workspace {workspace} under execution {pipeline_execution_id}.
        slots:
          workspace: path.workspace
          pipeline_execution_id: query.pipeline_execution_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download one stored plan or state file
      effect: read
      questions:
      - How do I fetch a specific plan or state file stored on a workspace?
      - Can I download the binary data for one stored workspace record?
      instructions:
      - text: Get stored data {id} from workspace {workspace} in project {project} of org {org}.
        slots:
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Download the state file with id {id} for workspace {workspace}.
        slots:
          id: path.id
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/data/{id}/evaluate-policy'].get
  update:
    x-apievangelist-phrasing:
      intent: Evaluate policy against stored workspace data
      effect: read
      questions:
      - Can I run OPA policies against a plan file that is already stored?
      - How do I check whether a stored state file passes a policy action?
      instructions:
      - text: Evaluate policy action {policy_action} against data {id} in workspace {workspace} of project {project} in org {org}.
        slots:
          policy_action: query.policy_action
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Run policy checks for {policy_action} on stored plan {id}.
        slots:
          policy_action: query.policy_action
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/dependency-graph'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a dependency graph for a plan
      effect: write
      questions:
      - How do I attach a resource dependency graph to an existing plan file?
      - What execution details does uploading a dependency graph require?
      instructions:
      - text: Upload the dependency graph for workspace {workspace} in project {project} of org {org} from pipeline {pipeline_id} stage {stage_id}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
          pipeline_id: query.pipeline_id
          stage_id: query.stage_id
      - text: Attach dependency graph data to the plan from execution {pipeline_execution_id} on workspace {workspace}.
        slots:
          pipeline_execution_id: query.pipeline_execution_id
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config'].get
  update:
    x-apievangelist-phrasing:
      intent: Check drift automation status for a workspace
      effect: read
      questions:
      - Is drift detection turned on for a workspace?
      - How can I see the drift automation schedule a workspace uses?
      instructions:
      - text: Get the drift automation status for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Tell me whether drift detection is enabled on workspace {workspace}.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config'].put
  update:
    x-apievangelist-phrasing:
      intent: Enable scheduled drift detection on a workspace
      effect: write
      questions:
      - How do I schedule drift detection to run on a workspace?
      - Can I choose which pipeline runs drift checks and how often?
      instructions:
      - text: Enable drift detection on workspace {workspace} in project {project} of org {org} using pipeline {pipeline_id}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
          pipeline_id: requestBody.pipeline_id
      - text: Run drift checks on workspace {workspace} every {run_every} {run_every_unit}.
        slots:
          workspace: path.workspace
          run_every: requestBody.run_every
          run_every_unit: requestBody.run_every_unit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/drift-config'].delete
  update:
    x-apievangelist-phrasing:
      intent: Disable drift automation on a workspace
      effect: destructive
      questions:
      - How do I stop scheduled drift detection on a workspace?
      - Can I remove the drift schedule without deleting the workspace?
      instructions:
      - text: Disable drift automation for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Turn off drift detection on workspace {workspace}.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config'].get
  update:
    x-apievangelist-phrasing:
      intent: Check ephemeral TTL settings for a workspace
      effect: read
      questions:
      - Does a workspace have a time-to-live that will destroy its infrastructure?
      - How can I see when an ephemeral workspace is scheduled to be torn down?
      instructions:
      - text: Get the ephemeral TTL status of workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Show whether workspace {workspace} is set to auto-destroy.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config'].put
  update:
    x-apievangelist-phrasing:
      intent: Set a TTL to auto-destroy a workspace's infrastructure
      effect: write
      questions:
      - Can I make a workspace ephemeral so its infrastructure is destroyed automatically?
      - Is it possible to also delete the workspace itself after the TTL expires?
      instructions:
      - text: Enable ephemeral TTL on workspace {workspace} in project {project} of org {org} using pipeline {pipeline_id}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
          pipeline_id: requestBody.pipeline_id
      - text: Destroy the infrastructure in workspace {workspace} on {destroy_on_date}.
        slots:
          workspace: path.workspace
          destroy_on_date: requestBody.destroy_on_date
      - text: Auto-destroy workspace {workspace} after {destroy_delay_value} {destroy_delay_unit}.
        slots:
          workspace: path.workspace
          destroy_delay_value: requestBody.destroy_delay_value
          destroy_delay_unit: requestBody.destroy_delay_unit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/ephemeral-config'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove the ephemeral TTL from a workspace
      effect: destructive
      questions:
      - How do I cancel a scheduled auto-destroy on an ephemeral workspace?
      - Can I make an ephemeral workspace permanent again?
      instructions:
      - text: Disable ephemeral TTL for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Stop workspace {workspace} from being destroyed automatically.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/events'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a provisioner event to a workspace
      effect: write
      questions:
      - How do I record an event against a workspace from a pipeline run?
      - What event type and metadata can I send to a workspace?
      instructions:
      - text: Send a {event_type} event to workspace {workspace} in project {project} of org {org}.
        slots:
          event_type: requestBody.event_type
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Post event {event_type} for workspace {workspace} tied to execution {pipeline_execution_id}.
        slots:
          event_type: requestBody.event_type
          workspace: path.workspace
          pipeline_execution_id: requestBody.pipeline_execution_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/pipelines'].get
  update:
    x-apievangelist-phrasing:
      intent: List pipelines that use a workspace
      effect: read
      questions:
      - Which pipelines reference a given workspace?
      - Before changing a workspace, can I see every pipeline it is used in?
      instructions:
      - text: List the pipelines that use workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Show where workspace {workspace} is used in pipelines.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a remote execution for a workspace
      effect: write
      questions:
      - How do I create a remote plan run for a workspace from my local code?
      - Can I pass custom arguments when creating a remote execution?
      instructions:
      - text: Create a remote execution for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Create a remote execution on workspace {workspace} with arguments {custom_arguments}.
        slots:
          workspace: path.workspace
          custom_arguments: requestBody.custom_arguments
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Show a remote execution
      effect: read
      questions:
      - How do I check on a remote execution I created for a workspace?
      - What details are returned for a single remote execution?
      instructions:
      - text: Show remote execution {id} for workspace {workspace} in project {project} of org {org}.
        slots:
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Look up remote execution {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/download'].get
  update:
    x-apievangelist-phrasing:
      intent: Download source code for a remote execution
      effect: read
      questions:
      - Can I download the source code that was uploaded for a remote plan?
      - Where do I get the code bundle behind a remote execution?
      instructions:
      - text: Download the source for remote execution {id} on workspace {workspace} in project {project} of org {org}.
        slots:
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Fetch the code bundle for remote plan {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/execute'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a remote execution
      effect: write
      questions:
      - Once the source is uploaded, how do I kick off the remote execution?
      - Can I run a remote plan against a workspace after creating it?
      instructions:
      - text: Execute remote execution {id} on workspace {workspace} in project {project} of org {org}.
        slots:
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Start running remote execution {id} now.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/remote-executions/{id}/upload'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload source code for a remote execution
      effect: write
      questions:
      - How do I upload my local code for a remote execution?
      - Does uploading remote execution source require a content digest?
      instructions:
      - text: Upload source code for remote execution {id} on workspace {workspace} in project {project} of org {org}.
        slots:
          id: path.id
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Upload the code bundle to remote execution {id} with digest {Content-Digest}.
        slots:
          id: path.id
          Content-Digest: header.Content-Digest
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types'].get
  update:
    x-apievangelist-phrasing:
      intent: List resource types in a workspace
      effect: read
      questions:
      - What kinds of resource types exist in a workspace's state?
      - Can I get just the list of resource types a workspace manages, without the attributes?
      instructions:
      - text: List resource types used by workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Show the resource types in workspace {workspace}.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types-and-attributes'].get
  update:
    x-apievangelist-phrasing:
      intent: Map a workspace's resource types to their attributes
      effect: read
      questions:
      - Can I get every resource type in a workspace together with its attributes in one call?
      - Which attributes does each resource type in my workspace expose?
      instructions:
      - text: Get the map of resource types and attributes for workspace {workspace} in project {project} of org {org}.
        slots:
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Show all resource types with their attributes for workspace {workspace}.
        slots:
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resource-types/{resource_type}/attributes'].get
  update:
    x-apievangelist-phrasing:
      intent: List attributes of one resource type in a workspace
      effect: read
      questions:
      - What attributes does a single resource type have in my workspace?
      - How do I see the attributes of aws_s3_bucket resources in a workspace?
      instructions:
      - text: List attributes of resource type {resource_type} in workspace {workspace} of project {project} in org {org}.
        slots:
          resource_type: path.resource_type
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Show the attributes for {resource_type} resources in workspace {workspace}.
        slots:
          resource_type: path.resource_type
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resources'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete destroyed resources from a workspace
      effect: destructive
      questions:
      - How do I clean up resource records that were already destroyed?
      - Can I remove specific destroyed resources from a workspace's inventory?
      instructions:
      - text: Delete destroyed resources {resources} from workspace {workspace} in project {project} of org {org}.
        slots:
          resources: requestBody.resources
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Remove the destroyed resource records {resources} from workspace {workspace}.
        slots:
          resources: requestBody.resources
          workspace: path.workspace
      method: generated
      generated: '2026-09-26'
- target: $.paths['/iacm/api/orgs/{org}/projects/{project}/workspaces/{workspace}/resources'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update the resources recorded for a workspace
      effect: write
      questions:
      - How do I push an updated resource inventory to a workspace?
      - Can I tag a resource update with a session id and update mode?
      instructions:
      - text: Update resources {resources} for workspace {workspace} in project {project} of org {org}.
        slots:
          resources: requestBody.resources
          workspace: path.workspace
          project: path.project
          org: path.org
      - text: Record resources {resources} on workspace {workspace} for session {session_id}.
        slots:
          resources: requestBody.resources
          workspace: path.workspace
          session_id: requestBody.session_id
      method: generated
      generated: '2026-09-26'


# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/overlays/harness-workspaces-api-phrasing-overlay.yaml