Snowflake · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Snowflake User API
12 actions
12 updates
phrasing
extends
openapi/snowflake-user-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Snowflake's API. It is a proposal applied on top of the contract, not a document Snowflake publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/api/v2/users'].get
$.paths['/api/v2/users'].post
$.paths['/api/v2/users/{name}'].get
$.paths['/api/v2/users/{name}'].put
$.paths['/api/v2/users/{name}'].delete
$.paths['/api/v2/users/{name}/grants'].get
$.paths['/api/v2/users/{name}/grants'].post
$.paths['/api/v2/users/{name}/grants:revoke'].post
$.paths['/api/v2/users/{name}:set-tags'].post
$.paths['/api/v2/users/{name}:unset-tags'].post
$.paths['/api/v2/users/{name}:get-tags'].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 Snowflake User API
version: 1.0.0
extends: openapi/snowflake-user-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: 11
- target: $.paths['/api/v2/users'].get
update:
x-apievangelist-phrasing:
intent: List users in the account
effect: read
questions:
- Who are all the users in my Snowflake account?
- Can I pull the full user list through the REST API?
instructions:
- text: List all users in the account.
- text: Show me everyone who has a login here.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users'].post
update:
x-apievangelist-phrasing:
intent: Create a user
effect: write
questions:
- How do I add a new user with a default role and warehouse?
- Can I create a service user that signs in with an RSA public key instead of a password?
- Is it possible to force a new user to change their password on first login?
instructions:
- text: Create user {name} with email {email}.
slots:
name: requestBody.name
email: requestBody.email
- text: Create user {name} with default role {role} and default warehouse {warehouse}.
slots:
name: requestBody.name
role: requestBody.default_role
warehouse: requestBody.default_warehouse
- text: Create a {type} user {name} that authenticates with RSA key {rsa_public_key}.
slots:
type: requestBody.type
name: requestBody.name
rsa_public_key: requestBody.rsa_public_key
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}'].get
update:
x-apievangelist-phrasing:
intent: Get a user's details
effect: read
questions:
- What default role, warehouse and last login does a particular user have?
- Where can I see a user's DESCRIBE output?
instructions:
- text: Show me the details of user {name}.
slots:
name: path.name
- text: Describe the named user, including their defaults and lock status.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}'].put
update:
x-apievangelist-phrasing:
intent: Create or update a user
effect: write
questions:
- Can I update an existing user's properties by sending the full user definition?
- Does the create-or-alter user call change the user's password?
instructions:
- text: Create or alter user {name} so their default role is {role}.
slots:
name: path.name
role: requestBody.default_role
- text: Update user {name} to disabled {disabled}, creating them if they don't exist.
slots:
name: requestBody.name
disabled: requestBody.disabled
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a user
effect: destructive
questions:
- How do I remove a user who has left the company?
- Can a user be dropped through the API?
instructions:
- text: Delete user {name}.
slots:
name: path.name
- text: Drop the user account permanently.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}/grants'].get
update:
x-apievangelist-phrasing:
intent: List roles granted to a user
effect: read
questions:
- Which roles has a given user been granted?
- What grants does this user currently hold?
instructions:
- text: List all grants to user {name}.
slots:
name: path.name
- text: Show the roles this user has been given.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}/grants'].post
update:
x-apievangelist-phrasing:
intent: Grant a role to a user
effect: write
questions:
- How do I give a user a role?
- Can I assign an existing role to a user through the API?
instructions:
- text: Grant role {role} to user {name}.
slots:
role: requestBody.securable
name: path.name
- text: Give this user the {securable_type} {role}.
slots:
securable_type: requestBody.securable_type
role: requestBody.securable
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}/grants:revoke'].post
update:
x-apievangelist-phrasing:
intent: Revoke a role from a user
effect: destructive
questions:
- How do I take a role away from a user?
- Can I revoke a grant I previously gave a user?
instructions:
- text: Revoke role {role} from user {name}.
slots:
role: requestBody.securable
name: path.name
- text: Remove the {securable_type} {role} from the user's grants.
slots:
securable_type: requestBody.securable_type
role: requestBody.securable
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}:set-tags'].post
update:
x-apievangelist-phrasing:
intent: Attach tags to a user
effect: write
questions:
- How do I tag a user, for example with their department?
- Can I set tag values on a user object?
instructions:
- text: Set tags on user {name}.
slots:
name: path.name
- text: Tag the user with their department value.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}:unset-tags'].post
update:
x-apievangelist-phrasing:
intent: Remove tags from a user
effect: write
questions:
- How do I remove a tag from a user?
- Can I clear tag assignments on a user without dropping the tag itself?
instructions:
- text: Unset the tags on user {name}.
slots:
name: path.name
- text: Strip the tag assignments off the user.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/users/{name}:get-tags'].get
update:
x-apievangelist-phrasing:
intent: Show the tags assigned to a user
effect: read
questions:
- Which tags are assigned to this user?
- Does reading a user's tag assignments need an active warehouse?
instructions:
- text: Show every tag assigned to user {name}.
slots:
name: path.name
- text: Get the user's current tag assignments.
method: generated
generated: '2026-10-01'