# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Cohesity Views API version: 1.0.0 extends: openapi/cohesity-views-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: 43 - target: $.paths['/public/nlmLocks'].get update: x-apievangelist-phrasing: intent: List NLM file locks on the cluster effect: read questions: - Which NLM locks are currently held on files in my Cohesity views? - Can I see the NLM locks on a single file path inside one view? - What do I pass to page through a long list of NLM locks? instructions: - text: List all NLM locks currently held on the cluster. - text: Show the NLM locks in view {viewName} on file {filePath}. slots: viewName: query.viewName filePath: query.filePath - text: List up to {pageCount} NLM locks, continuing from cookie {cookie}. slots: pageCount: query.pageCount cookie: query.cookie method: generated generated: '2026-10-01' - target: $.paths['/public/nlmLocks'].delete update: x-apievangelist-phrasing: intent: Clear stuck NLM file locks effect: destructive questions: - How do I release NLM locks a crashed NFS client left behind on a view? - Can I clear only the NLM locks held by one client id? instructions: - text: Clear the NLM locks held by client {clientId}. slots: clientId: requestBody.clientId - text: Release the NLM locks on {filePath} in view {viewName}. slots: filePath: requestBody.filePath viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/qosPolicies'].get update: x-apievangelist-phrasing: intent: Look up view QoS policies effect: read questions: - What Quality of Service policies can a view be assigned? - Can I look up a QoS policy by its name to check its settings? instructions: - text: List the QoS policies available for views. - text: Get the QoS policies named {names}. slots: names: query.names method: generated generated: '2026-10-01' - target: $.paths['/public/shares'].get update: x-apievangelist-phrasing: intent: Find shares by share name effect: read questions: - Which SMB or NFS shares on the cluster have a name containing a given string? - Can I search shares by a name prefix instead of an exact match? - How are share search results paged when there are too many to return at once? instructions: - text: Find shares whose name contains {shareName}. slots: shareName: query.shareName - text: Search shares by name {shareName} and return at most {maxCount}. slots: shareName: query.shareName maxCount: query.maxCount method: generated generated: '2026-10-01' - target: $.paths['/public/smbConnections'].get update: x-apievangelist-phrasing: intent: Check SMB connections to a view effect: read questions: - Who is currently connected over SMB to my views? - Can the SMB connection status include the client SIDs too? instructions: - text: Show the SMB connections for view {viewNames}. slots: viewNames: query.viewNames - text: List SMB connections to views {viewIds} including client SIDs. slots: viewIds: query.viewIds method: generated generated: '2026-10-01' - target: $.paths['/public/viewAliases'].put update: x-apievangelist-phrasing: intent: Change settings on an existing view alias effect: write questions: - Can I turn on SMB encryption for a view alias that already exists? - How do I restrict which subnets can reach an existing view alias? instructions: - text: Update view alias {aliasName} to enforce SMB encryption. slots: aliasName: requestBody.aliasName - text: Change the subnet whitelist on existing alias {aliasName} to {subnetWhitelist}. slots: aliasName: requestBody.aliasName subnetWhitelist: requestBody.subnetWhitelist method: generated generated: '2026-10-01' - target: $.paths['/public/viewAliases'].post update: x-apievangelist-phrasing: intent: Create a view alias for a directory effect: write questions: - How can I let users mount a subdirectory of a view without typing the full path? - 'What does a new view alias need: a view name and a path inside it?' instructions: - text: Create alias {aliasName} pointing at {viewPath} in view {viewName}. slots: aliasName: requestBody.aliasName viewPath: requestBody.viewPath viewName: requestBody.viewName - text: Add a new SMB-discoverable alias {aliasName} for view {viewName}. slots: aliasName: requestBody.aliasName viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewAliases/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a view alias effect: destructive questions: - Can I remove a view alias without touching the view it points to? - What happens to mounts when I delete a view alias? instructions: - text: Delete view alias {name}. slots: name: path.name - text: Remove the alias called {name} from the cluster. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/public/viewAliases/{name}/activate'].post update: x-apievangelist-phrasing: intent: Activate a view's aliases from its source view effect: write questions: - After a failover, how do I bring a view's aliases over from its source view? - Can aliases be activated for a whole view in one call? instructions: - text: Activate the aliases of view {name} from its source view. slots: name: path.name - text: Bring the source view's aliases live on view {name}. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/public/viewDirectoryQuotas'].get update: x-apievangelist-phrasing: intent: Get directory quotas for a view effect: read questions: - What directory quota policies are set on a view? - Is directory quota enabled on this view, and with which limits? instructions: - text: Show the directory quota info for view {viewName}. slots: viewName: query.viewName - text: Get directory quota usage and policies on {viewName}. slots: viewName: query.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewDirectoryQuotas'].put update: x-apievangelist-phrasing: intent: Set or disable a view's directory quota effect: write questions: - How do I cap the size of one directory inside a view? - Can I switch directory quotas off for a view entirely? instructions: - text: Apply directory quota policy {quota} on view {viewName}. slots: quota: requestBody.quota viewName: requestBody.viewName - text: Disable directory quotas on view {viewName}. slots: viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewUserQuotas'].get update: x-apievangelist-phrasing: intent: Get per-user quotas and usage for a view effect: read questions: - Which users in a view are close to or over their quota? - Can I see one user's quota usage across all the views they use? - Is there a summary-only mode for user quota usage on a view? instructions: - text: Show user quota policies and usage for view {viewName}. slots: viewName: query.viewName - text: Get the quota usage for Unix user {unixUid} across all their views. slots: unixUid: query.unixUid - text: Give me just the user quota summary for view {viewName}. slots: viewName: query.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewUserQuotas'].put update: x-apievangelist-phrasing: intent: Change a user's quota override in a view effect: write questions: - Can I raise the quota for one user who already has an override on a view? - How do I edit an existing per-user quota policy? instructions: - text: Update the existing user quota override in view {viewName} to {userQuotaPolicy}. slots: viewName: requestBody.viewName userQuotaPolicy: requestBody.userQuotaPolicy - text: Change the quota limit on a user already overridden in {viewName}. slots: viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewUserQuotas'].post update: x-apievangelist-phrasing: intent: Add a quota override for a user in a view effect: write questions: - How do I give a single user their own storage limit on a view? - Can one user get a different quota than the view's default? instructions: - text: Create a new user quota policy {userQuotaPolicy} in view {viewName}. slots: userQuotaPolicy: requestBody.userQuotaPolicy viewName: requestBody.viewName - text: Add a per-user quota override for a user on {viewName}. slots: viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewUserQuotas'].delete update: x-apievangelist-phrasing: intent: Remove user quota overrides from a view effect: destructive questions: - Can I drop every user quota override on a view at once? - How do I remove quota overrides for specific users so they fall back to the default? instructions: - text: Delete the quota overrides for users {userIds} in view {viewName}. slots: userIds: requestBody.userIds viewName: requestBody.viewName - text: Remove all user quota overrides from view {viewName}. slots: viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/viewUserQuotasSettings'].put update: x-apievangelist-phrasing: intent: Configure user quota settings for a view effect: write questions: - How do I turn on user quotas for a view and set a default per-user limit? - Can a view inherit its default user quota from its storage domain? instructions: - text: Enable user quotas on view {viewName} with default policy {defaultUserQuotaPolicy}. slots: viewName: requestBody.viewName defaultUserQuotaPolicy: requestBody.defaultUserQuotaPolicy - text: Make view {viewName} inherit its default user quota from the storage domain. slots: viewName: requestBody.viewName method: generated generated: '2026-10-01' - target: $.paths['/public/views'].get update: x-apievangelist-phrasing: intent: List views (older public endpoint) effect: read questions: - Which views are protected by a given Protection Job, using the older public views list? - Can the legacy views listing show only views with antivirus scanning on? - What filters does the original /public/views list support, like View Box names? instructions: - text: Using the older public views list, show views protected by job {jobIds}. slots: jobIds: query.jobIds - text: List views in View Box {viewBoxNames} from the legacy public endpoint. slots: viewBoxNames: query.viewBoxNames - text: From the old views list, return views sorted by logical usage. method: generated generated: '2026-10-01' - target: $.paths['/public/views'].put update: x-apievangelist-phrasing: intent: Update a view (older public endpoint, no name in path) effect: write questions: - Is there a legacy endpoint that updates a view with the settings sent in the body alone? - Can the older public update endpoint change a view's QoS policy? instructions: - text: Via the legacy body-only view update, set the logical quota to {logicalQuota}. slots: logicalQuota: requestBody.logicalQuota - text: Through the older public view update, change the description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/public/views'].post update: x-apievangelist-phrasing: intent: Create a view (older public endpoint) effect: write questions: - How do I create a new view in a View Box using the older public views API? - Which protocols can a view expose when I create it through the legacy endpoint? instructions: - text: Using the legacy public API, create view {name} in View Box {viewBoxId}. slots: name: requestBody.name viewBoxId: requestBody.viewBoxId - text: Create view {name} in View Box {viewBoxId} with protocol access {protocolAccess} via the old endpoint. slots: name: requestBody.name viewBoxId: requestBody.viewBoxId protocolAccess: requestBody.protocolAccess method: generated generated: '2026-10-01' - target: $.paths['/public/views/clone'].post update: x-apievangelist-phrasing: intent: Clone a view into a new view effect: write questions: - Can I make a copy of an entire view under a new name? - Is it possible to put a DataLock expiry on a cloned view? instructions: - text: Clone view {sourceViewName} as {cloneViewName}. slots: sourceViewName: requestBody.sourceViewName cloneViewName: requestBody.cloneViewName - text: Clone {sourceViewName} to {cloneViewName} with DataLock until {dataLockExpiryUsecs}. slots: sourceViewName: requestBody.sourceViewName cloneViewName: requestBody.cloneViewName dataLockExpiryUsecs: requestBody.dataLockExpiryUsecs method: generated generated: '2026-10-01' - target: $.paths['/public/views/cloneDirectory'].post update: x-apievangelist-phrasing: intent: Clone a directory within views effect: write questions: - Can I copy just one directory of a view rather than the whole view? - Where does a cloned directory land when I clone it? instructions: - text: Clone directory {sourceDirectoryPath} into {destinationParentDirectoryPath} as {destinationDirectoryName}. slots: sourceDirectoryPath: requestBody.sourceDirectoryPath destinationParentDirectoryPath: requestBody.destinationParentDirectoryPath destinationDirectoryName: requestBody.destinationDirectoryName - text: Make a copy of folder {sourceDirectoryPath} named {destinationDirectoryName}. slots: sourceDirectoryPath: requestBody.sourceDirectoryPath destinationDirectoryName: requestBody.destinationDirectoryName method: generated generated: '2026-10-01' - target: $.paths['/public/views/id/{id}'].get update: x-apievangelist-phrasing: intent: Get a view by numeric id (older public endpoint) effect: read questions: - On the older public API, how do I look up a view when I only have its numeric id? - Does the legacy view-by-id lookup return the full view configuration? instructions: - text: Using the legacy public endpoint, get the view with id {id}. slots: id: path.id - text: Fetch view details for view id {id} from /public/views/id. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/public/views/id/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a view by id (older public endpoint) effect: destructive questions: - Can the older public API delete a view by its id instead of its name? - Is deleting a view by id on the legacy endpoint reversible? instructions: - text: Using the legacy public endpoint, delete the view with id {id}. slots: id: path.id - text: Remove view number {id} via /public/views/id. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/public/views/id/{id}/fileLocks'].get update: x-apievangelist-phrasing: intent: Check a file's lock status in a view by view id effect: read questions: - If I only know the view id, can I check whether a file in it is locked? - When does the WORM lock on a file in a view identified by id expire? instructions: - text: Check the lock status of {path} in view id {id}. slots: path: query.path id: path.id - text: Tell me whether file {path} is locked in the view with id {id}. slots: path: query.path id: path.id method: generated generated: '2026-10-01' - target: $.paths['/public/views/id/{id}/fileLocks'].post update: x-apievangelist-phrasing: intent: Lock a file in a view by view id effect: write questions: - Can I lock a file against changes when I reference its view by id? - How do I extend a file lock's expiry in a view known only by id? instructions: - text: Lock file {path} in view id {id}. slots: path: requestBody.path id: path.id - text: Lock {path} in view id {id} until {expiryTimestampMsecs}. slots: path: requestBody.path id: path.id expiryTimestampMsecs: requestBody.expiryTimestampMsecs method: generated generated: '2026-10-01' - target: $.paths['/public/views/overwrite'].post update: x-apievangelist-phrasing: intent: Overwrite one view with another's contents effect: destructive questions: - Can I replace everything in a target view with the contents of a source view? - What happens to the existing data in the target view when I overwrite it? instructions: - text: Overwrite view {targetViewName} with the contents of {sourceViewName}. slots: targetViewName: requestBody.targetViewName sourceViewName: requestBody.sourceViewName - text: Replace {targetViewName} with a copy of view {sourceViewName}. slots: targetViewName: requestBody.targetViewName sourceViewName: requestBody.sourceViewName method: generated generated: '2026-10-01' - target: $.paths['/public/views/rename/id/{id}'].post update: x-apievangelist-phrasing: intent: Rename a view by its id effect: write questions: - Can I rename a view when all I have is its id? - Does renaming a view by id change its id? instructions: - text: Rename the view with id {id} to {newViewName}. slots: id: path.id newViewName: requestBody.newViewName - text: Give view id {id} the new name {newViewName}. slots: id: path.id newViewName: requestBody.newViewName method: generated generated: '2026-10-01' - target: $.paths['/public/views/rename/{name}'].post update: x-apievangelist-phrasing: intent: Rename a view by its current name effect: write questions: - How do I rename a view using its current name? - Will clients need to remount after a view is renamed from its old name? instructions: - text: Rename view {name} to {newViewName}. slots: name: path.name newViewName: requestBody.newViewName - text: Change the name of view {name} to {newViewName}. slots: name: path.name newViewName: requestBody.newViewName method: generated generated: '2026-10-01' - target: $.paths['/public/views/{name}'].get update: x-apievangelist-phrasing: intent: Get a view by name effect: read questions: - What are the settings of a view when I look it up by its name? - Can I fetch one view's details by name instead of listing them all? instructions: - text: Get the details of view {name}. slots: name: path.name - text: Show the configuration of the view named {name}. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/public/views/{name}'].put update: x-apievangelist-phrasing: intent: Update a view by name effect: write questions: - How do I change the protocols or quota of a view I know by name? - Can I enable live indexing on a named view? instructions: - text: Update view {name} to set logical quota {logicalQuota}. slots: name: path.name logicalQuota: requestBody.logicalQuota - text: Set protocol access on view {name} to {protocolAccess}. slots: name: path.name protocolAccess: requestBody.protocolAccess method: generated generated: '2026-10-01' - target: $.paths['/public/views/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a view by name effect: destructive questions: - How do I delete a view when I know its name? - Does deleting a named view remove its data permanently? instructions: - text: Delete the view named {name}. slots: name: path.name - text: Remove view {name} from the cluster by name. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/public/views/{name}/fileLocks'].get update: x-apievangelist-phrasing: intent: Check a file's lock status in a named view effect: read questions: - Is a particular file in a named view currently locked? - When does the lock on a file in a view I know by name expire? instructions: - text: Check whether {path} is locked in view {name}. slots: path: query.path name: path.name - text: Show the file lock status for {path} in the view named {name}. slots: path: query.path name: path.name method: generated generated: '2026-10-01' - target: $.paths['/public/views/{name}/fileLocks'].post update: x-apievangelist-phrasing: intent: Lock a file in a named view effect: write questions: - How do I protect a file in a named view from accidental changes by locking it? - Can I set an expiry when I lock a file in a view by name? instructions: - text: Lock file {path} in view {name}. slots: path: requestBody.path name: path.name - text: Lock {path} in the view named {name} until {expiryTimestampMsecs}. slots: path: requestBody.path name: path.name expiryTimestampMsecs: requestBody.expiryTimestampMsecs method: generated generated: '2026-10-01' - target: $.paths['/file-services/view-template'].get update: x-apievangelist-phrasing: intent: List view templates effect: read questions: - Which view templates exist on my cluster? - Are there default templates I can base new views on? instructions: - text: List all view templates. - text: Show me the view templates available on the cluster. method: generated generated: '2026-10-01' - target: $.paths['/file-services/view-template'].post update: x-apievangelist-phrasing: intent: Create a view template effect: write questions: - Can I save a reusable template for creating views with the same settings? - Can a view template turn on dedup and compression? instructions: - text: Create a view template named {name}. slots: name: requestBody.name - text: Create template {name} with dedup {dedup} and compression {compress}. slots: name: requestBody.name dedup: requestBody.dedup compress: requestBody.compress method: generated generated: '2026-10-01' - target: $.paths['/file-services/view-template/{id}'].get update: x-apievangelist-phrasing: intent: Get a view template effect: read questions: - What settings does a specific view template apply? - Can I read one template by its id? instructions: - text: Get view template {id}. slots: id: path.id - text: Show the view parameters stored in template {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/file-services/view-template/{id}'].put update: x-apievangelist-phrasing: intent: Update a view template effect: write questions: - How do I change the defaults in a view template I already made? - Can I rename an existing view template? instructions: - text: Rename view template {id} to {name}. slots: id: path.id name: requestBody.name - text: Turn compression {compress} on template {id}. slots: compress: requestBody.compress id: path.id method: generated generated: '2026-10-01' - target: $.paths['/file-services/view-template/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a view template effect: destructive questions: - Can I remove a view template I no longer need? - Does deleting a template affect views created from it? instructions: - text: Delete view template {id}. slots: id: path.id - text: Remove the template with id {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/file-services/views'].get update: x-apievangelist-phrasing: intent: List views (file-services endpoint) effect: read questions: - How many views match my filters, without returning them all? - Can I list only views with filer audit logging enabled? - Which views in a storage domain serve a given protocol like S3 or NFS? instructions: - text: Count the views in storage domain {storageDomainNames}. slots: storageDomainNames: query.storageDomainNames - text: List views with protocol access {protocolAccesses} in the file-services API. slots: protocolAccesses: query.protocolAccesses - text: Show views protected by protection group {protectionGroupIds}. slots: protectionGroupIds: query.protectionGroupIds method: generated generated: '2026-10-01' - target: $.paths['/file-services/views'].post update: x-apievangelist-phrasing: intent: Create a view (file-services endpoint) effect: write questions: - Where do I create a view in the newer file-services API? - Can I create a view with the file-services endpoint rather than the legacy one? instructions: - text: Create a new view through the file-services API. - text: Add a view using the v2 file-services create endpoint. method: generated generated: '2026-10-01' - target: $.paths['/file-services/views/{id}'].get update: x-apievangelist-phrasing: intent: Get a view by id (file-services endpoint) effect: read questions: - In the file-services API, how do I fetch a single view by id? - Does the file-services view lookup include mount paths and aliases? instructions: - text: Get view {id} from the file-services API. slots: id: path.id - text: Show the NFS and SMB mount paths for file-services view {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/file-services/views/{id}'].put update: x-apievangelist-phrasing: intent: Update a view by id (file-services endpoint) effect: write questions: - Can I move a view's DataLock expiry using the file-services update? - How do I change a view's object services key mapping through file-services? instructions: - text: Update file-services view {id} with DataLock expiry {dataLockExpiryUsecs}. slots: id: path.id dataLockExpiryUsecs: requestBody.dataLockExpiryUsecs - text: Set the object services mapping on view {id} to {objectServicesMappingConfig}. slots: id: path.id objectServicesMappingConfig: requestBody.objectServicesMappingConfig method: generated generated: '2026-10-01' - target: $.paths['/file-services/views/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a view by id (file-services endpoint) effect: destructive questions: - How do I delete a view through the file-services API? - Is a view deleted via file-services gone for good? instructions: - text: Delete file-services view {id}. slots: id: path.id - text: Remove the view with id {id} using the file-services endpoint. slots: id: path.id method: generated generated: '2026-10-01'