Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Secrets API
15 actions
15 updates
phrasing
extends
openapi/harness-secrets-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.
What the actions change
x-apievangelist-phrasing
Targets 15
$.info
$.paths['/ng/api/v2/secrets/count'].get
$.paths['/ng/api/v2/secrets'].get
$.paths['/ng/api/v2/secrets'].post
$.paths['/ng/api/v2/secrets/files'].post
$.paths['/ng/api/v2/secrets/yaml'].post
$.paths['/ng/api/v2/secrets/{identifier}'].get
$.paths['/ng/api/v2/secrets/{identifier}'].put
$.paths['/ng/api/v2/secrets/{identifier}'].delete
$.paths['/ng/api/v2/secrets/list/secrets'].post
$.paths['/ng/api/v2/secrets/list'].post
$.paths['/ng/api/v2/secrets/files/{identifier}'].put
$.paths['/ng/api/v2/secrets/{identifier}/yaml'].put
$.paths['/ng/api/v2/secrets/validate'].post
$.paths['/ng/api/v2/secrets/validateUniqueIdentifier/{identifier}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Harness Secrets API
version: 1.0.0
extends: openapi/harness-secrets-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: 14
- target: $.paths['/ng/api/v2/secrets/count'].get
update:
x-apievangelist-phrasing:
intent: Count the secrets in a scope
effect: read
questions:
- How many secrets exist under a given org or project?
- Can I get just a secret count without listing them?
instructions:
- text: Count the secrets under scope {parent_id}.
slots:
parent_id: query.parentUniqueId
- text: Tell me how many secrets account {account} has in scope {parent_id}.
slots:
account: query.accountIdentifier
parent_id: query.parentUniqueId
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets'].get
update:
x-apievangelist-phrasing:
intent: List secrets with query-string filters
effect: read
questions:
- What secrets are stored in my Harness project?
- Can I list secrets from every sub-scope under an org at once?
- Which secrets live in a particular secret manager?
instructions:
- text: List the secrets in project {project} using a simple GET filter.
slots:
project: query.projectIdentifier
- text: Show secrets of type {type} whose name matches {search}.
slots:
type: query.type
search: query.searchTerm
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets'].post
update:
x-apievangelist-phrasing:
intent: Create a secret
effect: write
questions:
- How do I store a new text secret at the project level?
- Can I create a secret that only I can see?
instructions:
- text: Create secret {secret} in project {project}.
slots:
secret: requestBody.secret
project: query.projectIdentifier
- text: Add a private secret {secret} for my use only.
slots:
secret: requestBody.secret
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/files'].post
update:
x-apievangelist-phrasing:
intent: Upload a file as a secret
effect: write
questions:
- Can I upload a certificate or key file as a secret?
- What's the way to store a whole file as an encrypted secret?
instructions:
- text: Upload {file} as a new secret file.
slots:
file: requestBody.file
- text: Create a secret file from {file} in project {project}.
slots:
file: requestBody.file
project: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/yaml'].post
update:
x-apievangelist-phrasing:
intent: Create a secret from YAML
effect: write
questions:
- Can I define a new secret using a YAML document?
- Is there a YAML-based way to create secrets for config-as-code?
instructions:
- text: Create a secret from this YAML definition {secret}.
slots:
secret: requestBody.secret
- text: Add the YAML-defined secret {secret} to project {project}.
slots:
secret: requestBody.secret
project: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a secret by its identifier
effect: read
questions:
- Can I look up the details of one secret by its ID?
- What metadata is stored for a specific secret?
instructions:
- text: Get secret {identifier}.
slots:
identifier: path.identifier
- text: Show the details of secret {identifier} in project {project}.
slots:
identifier: path.identifier
project: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/{identifier}'].put
update:
x-apievangelist-phrasing:
intent: Update a secret
effect: write
questions:
- How do I rotate the value of an existing text secret?
- Can I change an existing secret's settings with a JSON body?
instructions:
- text: Update secret {identifier} with {secret}.
slots:
identifier: path.identifier
secret: requestBody.secret
- text: Replace the stored definition of secret {identifier} in project {project}.
slots:
identifier: path.identifier
project: query.projectIdentifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/{identifier}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a secret
effect: destructive
questions:
- Can I force-delete a secret that is still referenced somewhere?
- What's the way to permanently remove a secret?
instructions:
- text: Delete secret {identifier}.
slots:
identifier: path.identifier
- text: Force delete secret {identifier} even if it's in use.
slots:
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/list/secrets'].post
update:
x-apievangelist-phrasing:
intent: Search secrets by name, tags or description
effect: read
questions:
- Can I find secrets by their tags or description?
- Which secrets have a name that contains a given word?
instructions:
- text: Find secrets named {name}.
slots:
name: requestBody.secretName
- text: Search secrets tagged {tags} with description matching {description}.
slots:
tags: requestBody.tags
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/list'].post
update:
x-apievangelist-phrasing:
intent: List secrets with a filter body by ID or category
effect: read
questions:
- Can I fetch a batch of secrets by a list of identifiers?
- Which secrets belong to a given source category?
instructions:
- text: Fetch the secrets with identifiers {identifiers}.
slots:
identifiers: requestBody.identifiers
- text: List secrets in source category {category} via the filter body.
slots:
category: requestBody.sourceCategory
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/files/{identifier}'].put
update:
x-apievangelist-phrasing:
intent: Replace a secret file
effect: write
questions:
- Can I upload a new version of a file stored as a secret?
- How would I swap out an expired certificate held in a secret file?
instructions:
- text: Replace secret file {identifier} with {file}.
slots:
identifier: path.identifier
file: requestBody.file
- text: Upload new contents for secret file {identifier}.
slots:
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/{identifier}/yaml'].put
update:
x-apievangelist-phrasing:
intent: Update a secret using YAML
effect: write
questions:
- Can I edit an existing secret by sending YAML?
- Is there a YAML update path for secrets I manage as code?
instructions:
- text: Update secret {identifier} from YAML {secret}.
slots:
identifier: path.identifier
secret: requestBody.secret
- text: Apply the YAML {secret} to existing secret {identifier}.
slots:
secret: requestBody.secret
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/validate'].post
update:
x-apievangelist-phrasing:
intent: Validate that a secret works
effect: read
questions:
- Can I test whether a secret resolves correctly before using it?
- Is there a check that a stored secret reference is valid?
instructions:
- text: Validate secret {identifier} of type {type}.
slots:
identifier: query.identifier
type: requestBody.type
- text: Check that secret {identifier} is usable.
slots:
identifier: query.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/ng/api/v2/secrets/validateUniqueIdentifier/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Check a secret identifier is not taken
effect: read
questions:
- Is a secret ID I want to use already taken?
- Can I confirm an identifier is unique before creating a secret?
instructions:
- text: Check whether secret identifier {identifier} is available.
slots:
identifier: path.identifier
- text: Confirm {identifier} is unique in project {project}.
slots:
identifier: path.identifier
project: query.projectIdentifier
method: generated
generated: '2026-09-26'