Tenable · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Tenable Platform & Settings Access Control (Users) API
16 actions
16 updates
phrasing
extends
openapi/tenable-access-control-users-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Tenable's API. It is a proposal applied on top of the contract, not a document Tenable publishes.
What the actions change
x-apievangelist-phrasing
Targets 16
$.info
$.paths['/users'].get
$.paths['/users'].post
$.paths['/users/{user_id}'].get
$.paths['/users/{user_id}'].put
$.paths['/users/{user_id}'].delete
$.paths['/access-control/v1/users/{user_uuid}/roles'].get
$.paths['/access-control/v1/users/{user_uuid}/roles'].put
$.paths['/users/{user_uuid}/chpasswd'].put
$.paths['/users/{user_id}/enabled'].put
$.paths['/users/{user_id}/authorizations'].get
$.paths['/users/{user_id}/authorizations'].put
$.paths['/users/{user_id}/keys'].put
$.paths['/users/{user_id}/two-factor/send-verification'].post
$.paths['/users/{user_id}/two-factor/verify-code'].post
$.paths['/users/{user_id}/two-factor'].put
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 Tenable Platform & Settings Access Control (Users) API
version: 1.0.0
extends: openapi/tenable-access-control-users-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: 15
- target: $.paths['/users'].get
update:
x-apievangelist-phrasing:
intent: List users in the workspace
effect: read
questions:
- Who has a user account in my Tenable Vulnerability Management instance?
- Can I see each user's role alongside the user list?
instructions:
- text: List every user account in the workspace.
- text: List all users and include their roles (withRoles={with_roles}).
slots:
with_roles: query.withRoles
method: generated
generated: '2026-10-01'
- target: $.paths['/users'].post
update:
x-apievangelist-phrasing:
intent: Create a user account
effect: write
questions:
- How do I add a new person as a user with a username and password?
- What permission level can I give a brand-new user when I create them?
instructions:
- text: Create a new user {username} with password {password}.
slots:
username: requestBody.username
password: requestBody.password
- text: Create user {username} for {name} ({email}) with password {password} and permissions {permissions}.
slots:
username: requestBody.username
name: requestBody.name
email: requestBody.email
password: requestBody.password
permissions: requestBody.permissions
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a user's account details
effect: read
questions:
- What account details are stored for one specific user?
- Can I look up a single user's name, email and permissions by their ID?
instructions:
- text: Show me the account details for user {user_id}.
slots:
user_id: path.user_id
- text: Look up user {user_id} and tell me their email and permission level.
slots:
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}'].put
update:
x-apievangelist-phrasing:
intent: Update a user's profile and permissions
effect: write
questions:
- How do I change an existing user's display name or email address?
- Can I change a user's permission level after the account exists?
instructions:
- text: Change the email of user {user_id} to {email}.
slots:
user_id: path.user_id
email: requestBody.email
- text: 'Update user {user_id}: set name to {name} and permissions to {permissions}.'
slots:
user_id: path.user_id
name: requestBody.name
permissions: requestBody.permissions
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a user account
effect: destructive
questions:
- How do I permanently remove a user from the workspace?
- When I delete a user, can their scans and objects be handed over to someone else?
instructions:
- text: Delete user {user_id}.
slots:
user_id: path.user_id
- text: Delete user {user_id} and transfer their objects to user {successor_user_uuid}.
slots:
user_id: path.user_id
successor_user_uuid: query.successor_user_uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/access-control/v1/users/{user_uuid}/roles'].get
update:
x-apievangelist-phrasing:
intent: Get the role assigned to a user
effect: read
questions:
- Which role is currently assigned to a given user?
- Is this user on a standard role or a custom role?
instructions:
- text: Tell me which role user {user_uuid} has.
slots:
user_uuid: path.user_uuid
- text: Get the assigned role for user {user_uuid}.
slots:
user_uuid: path.user_uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/access-control/v1/users/{user_uuid}/roles'].put
update:
x-apievangelist-phrasing:
intent: Change a user's role
effect: write
questions:
- How do I move a user onto a different custom role?
- Can I reassign someone's role using the role UUID?
instructions:
- text: Assign role {role_uuids} to user {user_uuid}.
slots:
user_uuid: path.user_uuid
role_uuids: requestBody.role_uuids
- text: Switch user {user_uuid} over to the roles {role_uuids}.
slots:
user_uuid: path.user_uuid
role_uuids: requestBody.role_uuids
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_uuid}/chpasswd'].put
update:
x-apievangelist-phrasing:
intent: Reset a user's password
effect: write
questions:
- How do I reset a locked-out user's password?
- Can I set a temporary password that forces the user to change it at next login?
- What are the password length and complexity rules for a reset?
instructions:
- text: Reset the password for user {user_uuid} to {password}.
slots:
user_uuid: path.user_uuid
password: requestBody.password
- text: Give user {user_uuid} the temporary password {password} (temporary={temporary}).
slots:
user_uuid: path.user_uuid
password: requestBody.password
temporary: requestBody.temporary
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/enabled'].put
update:
x-apievangelist-phrasing:
intent: Enable or disable a user account
effect: write
questions:
- How do I temporarily disable a user without deleting them?
- Can I re-enable an account I switched off earlier?
instructions:
- text: Disable the account of user {user_id} (enabled={enabled}).
slots:
user_id: path.user_id
enabled: requestBody.enabled
- text: Turn user account {user_id} back on.
slots:
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/authorizations'].get
update:
x-apievangelist-phrasing:
intent: Get a user's sign-in authorizations
effect: read
questions:
- Which sign-in methods (password, SAML SSO, API keys) is a user allowed to use?
- Is API access permitted for this particular user?
instructions:
- text: Show which access methods user {user_id} is authorized for.
slots:
user_id: path.user_id
- text: Check whether user {user_id} can sign in with SAML or use the API.
slots:
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/authorizations'].put
update:
x-apievangelist-phrasing:
intent: Grant or revoke a user's access methods
effect: write
questions:
- How do I block a user from using the API but keep SSO login?
- Can I require a user to enroll in multi-factor authentication?
instructions:
- text: For user {user_id} set API access {api_permitted}, password login {password_permitted} and SAML {saml_permitted}.
slots:
user_id: path.user_id
api_permitted: requestBody.api_permitted
password_permitted: requestBody.password_permitted
saml_permitted: requestBody.saml_permitted
- text: Require MFA enrollment ({mfa}) for user {user_id} with API {api_permitted}, password {password_permitted}, SAML {saml_permitted}.
slots:
mfa: requestBody.mfa_enrollment_required
user_id: path.user_id
api_permitted: requestBody.api_permitted
password_permitted: requestBody.password_permitted
saml_permitted: requestBody.saml_permitted
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/keys'].put
update:
x-apievangelist-phrasing:
intent: Generate new API keys for a user
effect: write
questions:
- How do I issue a fresh access key and secret key for a user?
- Can an administrator generate API keys on behalf of another user?
instructions:
- text: Generate new API keys for user {user_id}.
slots:
user_id: path.user_id
- text: Rotate the API access and secret keys of user {user_id}.
slots:
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/two-factor/send-verification'].post
update:
x-apievangelist-phrasing:
intent: Text a two-factor verification code
effect: write
questions:
- How do I start setting up SMS two-factor for a user?
- What phone number format does the two-factor verification code need?
instructions:
- text: Send a two-factor verification code to {sms_phone} for user {user_id}.
slots:
sms_phone: requestBody.sms_phone
user_id: path.user_id
- text: Start 2FA setup for user {user_id} by texting a code to {sms_phone}.
slots:
user_id: path.user_id
sms_phone: requestBody.sms_phone
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/two-factor/verify-code'].post
update:
x-apievangelist-phrasing:
intent: Confirm a two-factor verification code
effect: write
questions:
- How do I confirm the SMS code a user received so their two-factor is switched on?
- What happens after the verification code is validated successfully?
instructions:
- text: Verify code {verification_code} for user {user_id} to finish enabling 2FA.
slots:
verification_code: requestBody.verification_code
user_id: path.user_id
- text: Validate the 2FA code {verification_code} that user {user_id} received by text.
slots:
verification_code: requestBody.verification_code
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{user_id}/two-factor'].put
update:
x-apievangelist-phrasing:
intent: Configure a user's two-factor settings
effect: write
questions:
- Can I turn off SMS two-factor for a user or enable backup email codes?
- Which phone number is used once two-factor settings are saved?
instructions:
- text: 'Set 2FA for user {user_id}: SMS {sms_enabled} to {sms_phone}, backup email {email_enabled}.'
slots:
user_id: path.user_id
sms_enabled: requestBody.sms_enabled
sms_phone: requestBody.sms_phone
email_enabled: requestBody.email_enabled
- text: Disable SMS two-factor ({sms_enabled}) and email backup ({email_enabled}) for user {user_id}, phone {sms_phone}.
slots:
sms_enabled: requestBody.sms_enabled
email_enabled: requestBody.email_enabled
user_id: path.user_id
sms_phone: requestBody.sms_phone
method: generated
generated: '2026-10-01'