Cohesity · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Cohesity Protection Sources API
33 actions
33 updates
phrasing
extends
openapi/cohesity-protectionsources-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Cohesity's API. It is a proposal applied on top of the contract, not a document Cohesity publishes.
What the actions change
x-apievangelist-phrasing
Targets 33 · first 16 shown; the file carries all of them
$.info
$.paths['/public/physicalAgents/download'].get
$.paths['/public/physicalAgents/upgrade'].post
$.paths['/public/protectionSources'].get
$.paths['/public/protectionSources/applicationServers'].get
$.paths['/public/protectionSources/applicationServers'].put
$.paths['/public/protectionSources/applicationServers'].post
$.paths['/public/protectionSources/applicationServers/{id}'].delete
$.paths['/public/protectionSources/datastores'].get
$.paths['/public/protectionSources/diagnostics/{id}'].post
$.paths['/public/protectionSources/downloadCftFile'].get
$.paths['/public/protectionSources/exchangeDagHosts'].get
$.paths['/public/protectionSources/objects'].get
$.paths['/public/protectionSources/objects/{id}'].get
$.paths['/public/protectionSources/protectedObjects'].get
$.paths['/public/protectionSources/refresh/{id}'].post
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 Cohesity Protection Sources API
version: 1.0.0
extends: openapi/cohesity-protectionsources-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 32
- target: $.paths['/public/physicalAgents/download'].get
update:
x-apievangelist-phrasing:
intent: Download the backup agent installer for a host
effect: read
questions:
- Where can I get the Cohesity agent installer for a Linux or Windows server?
- Can I download the agent as an RPM or DEB package for Linux hosts?
- Is there a separate Go agent and Java agent installer I can pick between?
instructions:
- text: Download the physical agent installer for host type {hostType}.
slots:
hostType: query.hostType
- text: Download the {hostType} agent as a {pkgType} package.
slots:
hostType: query.hostType
pkgType: query.pkgType
- text: Get the {agentType} agent installer for {hostType} hosts.
slots:
agentType: query.agentType
hostType: query.hostType
method: generated
generated: '2026-10-01'
- target: $.paths['/public/physicalAgents/upgrade'].post
update:
x-apievangelist-phrasing:
intent: Upgrade agents on physical servers
effect: write
questions:
- After upgrading the cluster, how do I bring the agents on my physical servers up to the same release?
- Can I push an agent upgrade to several physical hosts at once?
instructions:
- text: Upgrade the Cohesity agents with ids {agentIds} to the cluster's current agent release.
slots:
agentIds: requestBody.agentIds
- text: Upgrade the agents on my registered physical servers.
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources'].get
update:
x-apievangelist-phrasing:
intent: Browse registered sources and their object trees
effect: read
questions:
- How can I see every registered source along with the VMs, folders and databases underneath it?
- Can I filter the source hierarchy to just VMware or just Office 365 environments?
- Is there a way to page through a very large source tree a chunk at a time?
instructions:
- text: Show the object subtree for protection source {id}.
slots:
id: query.id
- text: Browse the source hierarchy for {environments} environments only.
slots:
environments: query.environments
- text: Show the source tree for {id} including datastores and networks, {numLevels} levels deep.
slots:
id: query.id
numLevels: query.numLevels
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/applicationServers'].get
update:
x-apievangelist-phrasing:
intent: List application servers registered under a source
effect: read
questions:
- Which SQL or Exchange application servers are registered under my vCenter source?
- Can I list only the hosts running SQL Server within one source tree?
instructions:
- text: List application servers under source tree root {protectionSourcesRootNodeId}.
slots:
protectionSourcesRootNodeId: query.protectionSourcesRootNodeId
- text: Show the {application} application servers registered under root {protectionSourcesRootNodeId}.
slots:
application: query.application
protectionSourcesRootNodeId: query.protectionSourcesRootNodeId
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/applicationServers'].put
update:
x-apievangelist-phrasing:
intent: Change application server registration settings
effect: write
questions:
- How do I change the credentials Cohesity uses for an already registered SQL host?
- Can I mark an existing application server registration as using a persistent agent?
instructions:
- text: Update the application server registration on source {protectionSourceId} to use username {username}.
slots:
protectionSourceId: requestBody.protectionSourceId
username: requestBody.username
- text: Change the registered applications on source {protectionSourceId} to {applications}.
slots:
protectionSourceId: requestBody.protectionSourceId
applications: requestBody.applications
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/applicationServers'].post
update:
x-apievangelist-phrasing:
intent: Register a host as running SQL or Exchange
effect: write
questions:
- How do I tell Cohesity that a protected host is running Microsoft SQL Server so it can back up the databases?
- Can I register Exchange as an application on a physical server that is already a source?
instructions:
- text: Register source {protectionSourceId} as running {applications} application servers.
slots:
protectionSourceId: requestBody.protectionSourceId
applications: requestBody.applications
- text: Register SQL on source {protectionSourceId} with username {username} and a persistent agent.
slots:
protectionSourceId: requestBody.protectionSourceId
username: requestBody.username
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/applicationServers/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Unregister application servers from a source
effect: destructive
questions:
- Why would unregistering the SQL application on a host fail while a backup is running?
- Can I remove just the Exchange application from a source but keep the source itself registered?
instructions:
- text: Unregister the application servers on protection source {id}.
slots:
id: path.id
- text: Remove the {applications} application registration from source {id}.
slots:
applications: requestBody.applications
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/datastores'].get
update:
x-apievangelist-phrasing:
intent: Show datastores used by a VMware VM
effect: read
questions:
- Which VMware datastores does a particular virtual machine live on?
- Can I look up datastore details for one VM in my vCenter?
instructions:
- text: Show datastore information for VMware VM {sourceId}.
slots:
sourceId: query.sourceId
- text: List the datastores backing virtual machine {sourceId}.
slots:
sourceId: query.sourceId
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/diagnostics/{id}'].post
update:
x-apievangelist-phrasing:
intent: Collect agent diagnostics from a source host
effect: write
questions:
- How can I gather a diagnostics tarball from the agent on a Linux or Windows host for support?
- Does collecting diagnostics upload the bundle back to the cluster?
instructions:
- text: Collect agent diagnostics from protection source {id}.
slots:
id: path.id
- text: Run the diagnostics script on host {id} and upload the tarball to the cluster.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/downloadCftFile'].get
update:
x-apievangelist-phrasing:
intent: Download a CloudFormation template
effect: read
questions:
- Where do I get the CloudFormation template the cluster provides for AWS setup?
- Can I download a CFT from a specific path on the cluster?
instructions:
- text: Download the CloudFormation template named {fileName}.
slots:
fileName: requestBody.fileName
- text: Download CFT file {fileName} from path {filePath}.
slots:
fileName: requestBody.fileName
filePath: requestBody.filePath
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/exchangeDagHosts'].get
update:
x-apievangelist-phrasing:
intent: List hosts in an Exchange DAG
effect: read
questions:
- Which Exchange servers belong to my Database Availability Group?
- Can I look up DAG members by giving the endpoint of one host in the group?
instructions:
- text: List the Exchange hosts in the DAG registered as source {protectionSourceId}.
slots:
protectionSourceId: query.protectionSourceId
- text: Show all members of the Exchange DAG reachable at {endpoint}.
slots:
endpoint: query.endpoint
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/objects'].get
update:
x-apievangelist-phrasing:
intent: Look up several source objects by id
effect: read
questions:
- Can I fetch details for a batch of protection source objects in one call?
- What does the cluster know about a handful of object ids I have from a report?
instructions:
- text: Get details for protection source objects {objectIds}.
slots:
objectIds: query.objectIds
- text: List details about the protection source objects I specify.
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/objects/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one protection source object
effect: read
questions:
- How do I see the details of a single VM or database object known to the cluster?
- What attributes does one protection source object carry?
instructions:
- text: Get protection source object {id}.
slots:
id: path.id
- text: Show me the details of source object {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/protectedObjects'].get
update:
x-apievangelist-phrasing:
intent: List protected objects in a registered source
effect: read
questions:
- Which VMs in my vCenter are actually protected by a backup job right now?
- Can I include objects covered by RPO policies when listing what's protected in a source?
instructions:
- text: List protected objects in {environment} source {id}.
slots:
environment: query.environment
id: query.id
- text: Show what is protected in source {id} of type {environment}, including RPO-protected objects.
slots:
id: query.id
environment: query.environment
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/refresh/{id}'].post
update:
x-apievangelist-phrasing:
intent: Refresh a source's inventory
effect: write
questions:
- I just added a VM in vCenter; how do I make the cluster see it immediately?
- Can I force a re-sync of the object hierarchy for one registered source?
instructions:
- text: Refresh the inventory of protection source {id}.
slots:
id: path.id
- text: Force an immediate re-sync of the source tree rooted at {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/register'].post
update:
x-apievangelist-phrasing:
intent: Register a source via the v1 public endpoint
effect: write
questions:
- How do I register a vCenter or physical server with the older public v1 register endpoint?
- Can I set a throttling policy and source-side dedup when registering a source the v1 way?
- Which credentials can the v1 register call accept, such as AWS, Azure, GCP or Kubernetes?
instructions:
- text: Register a {environment} source at {endpoint} through the v1 public register endpoint.
slots:
environment: requestBody.environment
endpoint: requestBody.endpoint
- text: Register physical host {endpoint} with the v1 endpoint, forcing registration even if another cluster owns its agent.
slots:
endpoint: requestBody.endpoint
- text: Use the v1 register endpoint to add vCenter {endpoint} with username {username}.
slots:
endpoint: requestBody.endpoint
username: requestBody.username
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/registrationInfo'].get
update:
x-apievangelist-phrasing:
intent: Show registration and protection info for sources
effect: read
questions:
- How much of each registered source is protected, and when was it registered?
- Can I get registration info including the applications tree for my SQL hosts?
instructions:
- text: Show registration and protection info for registered sources {ids}.
slots:
ids: query.ids
- text: Get registration info for {environments} sources, including the applications tree.
slots:
environments: query.environments
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/rootNodes'].get
update:
x-apievangelist-phrasing:
intent: List top-level registered sources
effect: read
questions:
- What top-level sources like vCenters and NAS arrays are registered on the cluster?
- Can I list only the root sources of one environment type?
instructions:
- text: List the root protection sources for {environments}.
slots:
environments: query.environments
- text: Show registration information for root source {id}.
slots:
id: query.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/sqlAagHostsAndDatabases'].get
update:
x-apievangelist-phrasing:
intent: List SQL Always On groups and databases
effect: read
questions:
- Which Always On Availability Groups and databases are found on my registered SQL servers?
- Can I see AAG membership for several SQL sources at once?
instructions:
- text: List the AAGs and their databases for SQL sources {sqlProtectionSourceIds}.
slots:
sqlProtectionSourceIds: query.sqlProtectionSourceIds
- text: Show Always On databases on SQL servers {sqlProtectionSourceIds}.
slots:
sqlProtectionSourceIds: query.sqlProtectionSourceIds
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/virtualMachines'].get
update:
x-apievangelist-phrasing:
intent: List VMs across registered vCenters
effect: read
questions:
- Which virtual machines in my vCenter are not yet protected by any job?
- Can I find a VM by its exact name or UUID across all registered vCenter servers?
instructions:
- text: List the VMs in vCenter {vCenterId}.
slots:
vCenterId: query.vCenterId
- text: Find the virtual machine named {names}.
slots:
names: query.names
- text: List unprotected VMs in vCenter {vCenterId}.
slots:
vCenterId: query.vCenterId
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Unregister a source via the v1 endpoint
effect: destructive
questions:
- What happens if I unregister a vCenter source from the cluster with the v1 public endpoint?
- Can I remove a physical server I no longer back up from the v1 source list?
instructions:
- text: Unregister protection source {id} using the v1 public endpoint.
slots:
id: path.id
- text: Remove source {id} from the cluster's v1 registered sources.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/public/protectionSources/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a registered source's settings
effect: write
questions:
- How do I change the password stored for a registered source?
- Can I set a minimum free space threshold that cancels backups when a source runs low?
- Is it possible to switch an Exchange Online source to OAuth after it's registered?
instructions:
- text: Update source {id} to use username {username} and a new password.
slots:
id: path.id
username: requestBody.username
- text: Set the minimum free space on source {id} to {minimumFreeSpaceGB} GB.
slots:
id: path.id
minimumFreeSpaceGB: requestBody.minimumFreeSpaceGB
- text: Change the endpoint of registered source {id} to {endpoint}.
slots:
id: path.id
endpoint: requestBody.endpoint
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources'].get
update:
x-apievangelist-phrasing:
intent: List protection sources (v2)
effect: read
questions:
- What protection sources do I have under the v2 data-protect API?
- Can I include sources owned by all tenants when listing sources?
- Is there a way to get the sources' credentials back encrypted with my own key?
instructions:
- text: List protection sources for tenants {tenantIds}.
slots:
tenantIds: query.tenantIds
- text: List all sources with credentials encrypted using key {encryptionKey}.
slots:
encryptionKey: query.encryptionKey
- text: Show every protection source across all tenants.
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/filters'].get
update:
x-apievangelist-phrasing:
intent: List attribute filters for a source
effect: read
questions:
- What attributes can I filter leaf objects on within a given source?
- Can I see the available attribute filters for VMs under one parent source?
instructions:
- text: List attribute filters for source {sourceUuid}.
slots:
sourceUuid: query.sourceUuid
- text: Show the {environment} attribute filters available under source {sourceUuid}.
slots:
environment: query.environment
sourceUuid: query.sourceUuid
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/registrations'].get
update:
x-apievangelist-phrasing:
intent: List source registrations
effect: read
questions:
- Which source registrations exist on the cluster in the v2 API?
- Can I filter source registrations to a specific set of registration ids?
instructions:
- text: List source registrations {ids}.
slots:
ids: query.ids
- text: Show source registrations for tenants {tenantIds}.
slots:
tenantIds: query.tenantIds
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/registrations'].post
update:
x-apievangelist-phrasing:
intent: Register a source via the v2 registrations API
effect: write
questions:
- How do I register a new source using the v2 data-protect registrations endpoint?
- Can a v2 source registration go through a specific connection when the source is behind a connector?
instructions:
- text: Register a new {environment} source through the v2 registrations API.
slots:
environment: requestBody.environment
- text: Register a {environment} source reachable through connection {connectionId}.
slots:
environment: requestBody.environment
connectionId: requestBody.connectionId
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/registrations/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a source registration
effect: read
questions:
- How do I look up one source registration and its settings?
- What details are stored on a specific v2 source registration?
instructions:
- text: Get source registration {id}.
slots:
id: path.id
- text: Show me the details of registration {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/registrations/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a source registration
effect: write
questions:
- Can I change which connection a v2 source registration uses?
- How would I re-encrypt the stored credentials on an existing registration?
instructions:
- text: Update source registration {id} for environment {environment}.
slots:
id: path.id
environment: requestBody.environment
- text: Point registration {id} at connection {connectionId}.
slots:
id: path.id
connectionId: requestBody.connectionId
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/registrations/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a source registration
effect: destructive
questions:
- How do I delete a v2 source registration I no longer need?
- Is deleting a source registration permanent?
instructions:
- text: Delete source registration {id}.
slots:
id: path.id
- text: Remove the v2 registration {id} from the cluster.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/test-connection'].post
update:
x-apievangelist-phrasing:
intent: Test connectivity to a source before registering
effect: read
questions:
- Can I check that the cluster can reach my SQL or Cassandra source before registering it?
- How would I verify HDFS or Hive connection parameters work?
instructions:
- text: Test the connection to a {environment} source.
slots:
environment: requestBody.environment
- text: Test connectivity to a {environment} source using parameters {mssqlConnectionParams}.
slots:
environment: requestBody.environment
mssqlConnectionParams: requestBody.mssqlConnectionParams
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/virtual-datacenter/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get VMware virtual datacenter details
effect: read
questions:
- What catalogs and org networks are associated with a VMware virtual datacenter?
- Can I inspect a VDC's details before restoring into it?
instructions:
- text: Get details for virtual datacenter {id}.
slots:
id: path.id
- text: Show the catalogs and org networks of VDC {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/data-protect/sources/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a protection source (v2)
effect: read
questions:
- How do I fetch one protection source by id in the v2 API?
- What does the v2 API return for a single source?
instructions:
- text: Get protection source {id} from the v2 sources API.
slots:
id: path.id
- text: Show source {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/cohesity-protectionsources-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.