Cohesity · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Cohesity REST Principals API

18 actions 18 updates phrasing extends openapi/cohesity-principals-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/public/principals/protectionSources'].get
$.paths['/public/principals/protectionSources'].put
$.paths['/public/principals/searchPrincipals'].get
$.paths['/public/sessionUser'].get
$.paths['/public/users'].get
$.paths['/public/users'].put
$.paths['/public/users'].post
$.paths['/public/users'].delete
$.paths['/public/users/privileges'].get
$.paths['/public/users/s3SecretKey'].post
$.paths['/public/users/{sid}/apiKeys'].get
$.paths['/public/users/{sid}/apiKeys'].post
$.paths['/public/users/{sid}/apiKeys/{id}'].get
$.paths['/public/users/{sid}/apiKeys/{id}'].put
$.paths['/public/users/{sid}/apiKeys/{id}'].delete

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 Cohesity REST Principals API
  version: 1.0.0
extends: openapi/cohesity-principals-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: 17
- target: $.paths['/public/principals/protectionSources'].get
  update:
    x-apievangelist-phrasing:
      intent: See which sources and views principals can access
      effect: read
      questions:
      - Which protection sources and views can a given user or group access?
      - Can I check access for several SIDs in one request?
      instructions:
      - text: List the protection sources and views that principal {sids} can access.
        slots:
          sids: query.sids
      - text: Show what objects and views SIDs {sids} have permission to see.
        slots:
          sids: query.sids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/principals/protectionSources'].put
  update:
    x-apievangelist-phrasing:
      intent: Grant principals access to sources and views
      effect: write
      questions:
      - How do I give an Active Directory group access to specific VMs and views?
      - Can I restrict a user to only certain protection sources?
      instructions:
      - text: Set source and view access for principals as {sourcesForPrincipals}.
        slots:
          sourcesForPrincipals: requestBody.sourcesForPrincipals
      - text: 'Grant these principals access to the listed protection sources and views: {sourcesForPrincipals}.'
        slots:
          sourcesForPrincipals: requestBody.sourcesForPrincipals
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/principals/searchPrincipals'].get
  update:
    x-apievangelist-phrasing:
      intent: Search users and groups in a domain
      effect: read
      questions:
      - Can I find Active Directory users or groups whose names contain a substring?
      - Is it possible to include computer or GMSA accounts in a principal search?
      - Which principals in a domain are groups rather than users?
      instructions:
      - text: Search domain {domain} for principals matching {search}.
        slots:
          domain: query.domain
          search: query.search
      - text: Find groups in {domain} whose name contains {search}.
        slots:
          domain: query.domain
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/sessionUser'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the logged-in user
      effect: read
      questions:
      - Who am I logged in as on the Cohesity cluster?
      - What roles and domain does my current session user have?
      instructions:
      - text: Show the user I'm currently logged in as.
      - text: Get my session user's details.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List cluster users
      effect: read
      questions:
      - Which users have accounts on my cluster?
      - Can I find a user by email address or a partial username?
      instructions:
      - text: List users whose username contains {usernames}.
        slots:
          usernames: query.usernames
      - text: Find the cluster user with email {emailAddresses}.
        slots:
          emailAddresses: query.emailAddresses
      - text: List all users in domain {domain}.
        slots:
          domain: query.domain
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a cluster user's settings
      effect: write
      questions:
      - How do I change a user's roles on the cluster without touching Active Directory?
      - Can I force a local user to change their password at next login?
      instructions:
      - text: Update user {username} in {domain} to have roles {roles}.
        slots:
          username: requestBody.username
          domain: requestBody.domain
          roles: requestBody.roles
      - text: Force user {username} to change their password.
        slots:
          username: requestBody.username
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a user to the cluster
      effect: write
      questions:
      - How do I add an Active Directory user to my Cohesity cluster?
      - Can I create a local user with an expiry date?
      instructions:
      - text: Create local user {username} with email {emailAddress} and roles {roles}.
        slots:
          username: requestBody.username
          emailAddress: requestBody.emailAddress
          roles: requestBody.roles
      - text: Add AD user {username} from domain {domain} to the cluster.
        slots:
          username: requestBody.username
          domain: requestBody.domain
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete users from the cluster
      effect: destructive
      questions:
      - Does removing a user from the cluster also delete them in Active Directory?
      - Can I delete several users from the same domain in one go?
      instructions:
      - text: Delete users {users} from domain {domain}.
        slots:
          users: requestBody.users
          domain: requestBody.domain
      - text: Remove cluster user accounts {users}.
        slots:
          users: requestBody.users
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/privileges'].get
  update:
    x-apievangelist-phrasing:
      intent: List my session user's privileges
      effect: read
      questions:
      - What privileges does my current login actually have?
      - Am I allowed to manage protection jobs with my account's privileges?
      instructions:
      - text: List the privileges of my session user.
      - text: Show what I'm allowed to do on this cluster.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/s3SecretKey'].post
  update:
    x-apievangelist-phrasing:
      intent: Reset a user's S3 secret key
      effect: destructive
      questions:
      - How do I rotate the S3 secret access key for a cluster user?
      - Will resetting the S3 secret key break apps using the old one?
      instructions:
      - text: Reset the S3 secret key for user {username}.
        slots:
          username: requestBody.username
      - text: Generate a new S3 secret key for {username} in {domain}.
        slots:
          username: requestBody.username
          domain: requestBody.domain
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys'].get
  update:
    x-apievangelist-phrasing:
      intent: List a user's API keys
      effect: read
      questions:
      - Which API keys does a particular user have?
      - Can I filter a user's API keys by key id?
      instructions:
      - text: List the API keys for user {sid}.
        slots:
          sid: path.sid
      - text: Show API keys {ids} belonging to user {sid}.
        slots:
          ids: query.ids
          sid: path.sid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an API key for a user
      effect: write
      questions:
      - How do I generate an API key for a service account user?
      - Can I give a new API key an expiration time?
      instructions:
      - text: Create API key {name} for user {sid}.
        slots:
          name: requestBody.name
          sid: path.sid
      - text: Create API key {name} for user {sid} that expires at {expiringTimeMsecs}.
        slots:
          name: requestBody.name
          sid: path.sid
          expiringTimeMsecs: requestBody.expiringTimeMsecs
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one of a user's API keys
      effect: read
      questions:
      - Is a specific API key of a user still active and when does it expire?
      - Can I look up a single user API key by its id?
      instructions:
      - text: Get API key {id} for user {sid}.
        slots:
          id: path.id
          sid: path.sid
      - text: Show the details of user {sid}'s key {id}.
        slots:
          sid: path.sid
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a user's API key
      effect: write
      questions:
      - Can I deactivate an API key without deleting it?
      - How do I extend an API key's expiration?
      instructions:
      - text: Deactivate API key {id} for user {sid}.
        slots:
          id: path.id
          sid: path.sid
      - text: Rename user {sid}'s API key {id} to {name}.
        slots:
          sid: path.sid
          id: path.id
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user's API key
      effect: destructive
      questions:
      - How do I permanently remove an API key a user no longer needs?
      - What happens to clients still using an API key after it is deleted?
      instructions:
      - text: Delete API key {id} of user {sid}.
        slots:
          id: path.id
          sid: path.sid
      - text: Remove user {sid}'s key {id} for good.
        slots:
          sid: path.sid
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/users/{sid}/apiKeys/{id}/rotate'].post
  update:
    x-apievangelist-phrasing:
      intent: Rotate a user's API key
      effect: write
      questions:
      - Can I rotate an API key to get a fresh secret while keeping the same key entry?
      - What does rotating a user API key return?
      instructions:
      - text: Rotate API key {id} for user {sid}.
        slots:
          id: path.id
          sid: path.sid
      - text: Rotate the secret of user {sid}'s key {id}.
        slots:
          sid: path.sid
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/public/usersApiKeys'].get
  update:
    x-apievangelist-phrasing:
      intent: List API keys across all users
      effect: read
      questions:
      - Which API keys exist across every user on the cluster?
      - Can I audit API keys for a handful of users at once?
      instructions:
      - text: List API keys across all users.
      - text: Show the API keys owned by users {userSids}.
        slots:
          userSids: query.userSids
      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.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/cohesity-principals-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.