# 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'