Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Token API

9 actions 9 updates phrasing extends openapi/harness-token-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 9

$.info
$.paths['/ng/api/token'].post
$.paths['/ng/api/token/{identifier}'].put
$.paths['/ng/api/token/{identifier}'].delete
$.paths['/ng/api/token/aggregate'].get
$.paths['/ng/api/token/rotate/{identifier}'].post
$.paths['/ng/api/token/validate'].post
$.paths['/sto/api/v2/token'].get
$.paths['/v1/token'].get

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 Token API
  version: 1.0.0
extends: openapi/harness-token-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: 8
- target: $.paths['/ng/api/token'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an API key token
      effect: write
      questions:
      - How do I create a new token under an API key in Harness?
      - Can I set an expiry date when creating a token?
      instructions:
      - text: Create token {name} with identifier {identifier} under API key {api_key}.
        slots:
          name: requestBody.name
          identifier: requestBody.identifier
          api_key: requestBody.apiKeyIdentifier
      - text: Create a token {identifier} named {name} valid until {valid_to}.
        slots:
          identifier: requestBody.identifier
          name: requestBody.name
          valid_to: requestBody.validTo
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/token/{identifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing token
      effect: write
      questions:
      - How do I rename or change the description of an existing token?
      - Can I extend the validity window of a token I already created?
      instructions:
      - text: Update token {identifier} to have name {name}.
        slots:
          identifier: path.identifier
          name: requestBody.name
      - text: Change the expiry of existing token {identifier} to {valid_to}.
        slots:
          identifier: path.identifier
          valid_to: requestBody.validTo
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/token/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a token
      effect: destructive
      questions:
      - How do I delete a token so it can no longer be used?
      - What do I need to identify a token's parent and API key to delete it?
      instructions:
      - text: Delete token {identifier} from API key {api_key} owned by {parent}.
        slots:
          identifier: path.identifier
          api_key: query.apiKeyIdentifier
          parent: query.parentIdentifier
      - text: Remove {type} token {identifier} under key {api_key} for {parent}.
        slots:
          type: query.apiKeyType
          identifier: path.identifier
          api_key: query.apiKeyIdentifier
          parent: query.parentIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/token/aggregate'].get
  update:
    x-apievangelist-phrasing:
      intent: List tokens across API keys
      effect: read
      questions:
      - Which tokens exist for my service account API keys?
      - Can I list only tokens that are still active?
      instructions:
      - text: List all {type} tokens.
        slots:
          type: query.apiKeyType
      - text: Show active {type} tokens under API key {api_key}.
        slots:
          type: query.apiKeyType
          api_key: query.apiKeyIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/token/rotate/{identifier}'].post
  update:
    x-apievangelist-phrasing:
      intent: Rotate a token
      effect: write
      questions:
      - How do I rotate a token without creating a new one from scratch?
      - Can I schedule when the old token expires after rotation?
      instructions:
      - text: Rotate token {identifier} under API key {api_key} for {parent}.
        slots:
          identifier: path.identifier
          api_key: query.apiKeyIdentifier
          parent: query.parentIdentifier
      - text: Rotate {type} token {identifier} of key {api_key} owned by {parent}, expiring the old one at {timestamp}.
        slots:
          type: query.apiKeyType
          identifier: path.identifier
          api_key: query.apiKeyIdentifier
          parent: query.parentIdentifier
          timestamp: query.rotateTimestamp
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ng/api/token/validate'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate a token
      effect: read
      questions:
      - Is this Harness token still valid for my account?
      - Can I check a token before using it in automation?
      instructions:
      - text: Validate a token for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Check whether my token is valid.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/sto/api/v2/token'].get
  update:
    x-apievangelist-phrasing:
      intent: Issue a cross-service token for STO
      effect: write
      questions:
      - How do I exchange my Harness token for a Security Testing Orchestration cross-service token?
      - Can I request an STO token for a specific audience?
      instructions:
      - text: Issue an STO cross-service token for audience {audience} using Harness token {harness_token}.
        slots:
          audience: query.audience
          harness_token: header.X-Harness-Token
      - text: Get a security testing token for account {account} from {harness_token}.
        slots:
          account: query.accountId
          harness_token: header.X-Harness-Token
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/token'].get
  update:
    x-apievangelist-phrasing:
      intent: Issue a cross-service token (v1)
      effect: write
      questions:
      - Is there a v1 endpoint for issuing a cross-service token?
      - What does the older /v1/token endpoint return for my account?
      instructions:
      - text: Issue a cross-service token from the v1 endpoint for account {account}.
        slots:
          account: header.Harness-Account
      - text: Call the legacy v1 token issuer for {account}.
        slots:
          account: header.Harness-Account
      method: generated
      generated: '2026-09-26'