Snowflake · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Snowflake Role API
15 actions
15 updates
phrasing
extends
openapi/snowflake-role-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 15
$.info
$.paths['/api/v2/roles'].get
$.paths['/api/v2/roles'].post
$.paths['/api/v2/roles/{name}'].delete
$.paths['/api/v2/roles/{name}/grants'].get
$.paths['/api/v2/roles/{name}/grants'].post
$.paths['/api/v2/roles/{name}/grants:revoke'].post
$.paths['/api/v2/roles/{name}/grants-of'].get
$.paths['/api/v2/roles/{name}/grants-on'].get
$.paths['/api/v2/roles/{name}/future-grants'].get
$.paths['/api/v2/roles/{name}/future-grants'].post
$.paths['/api/v2/roles/{name}/future-grants:revoke'].post
$.paths['/api/v2/roles/{name}:set-tags'].post
$.paths['/api/v2/roles/{name}:unset-tags'].post
$.paths['/api/v2/roles/{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 Role API
version: 1.0.0
extends: openapi/snowflake-role-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: 14
- target: $.paths['/api/v2/roles'].get
update:
x-apievangelist-phrasing:
intent: List account roles
effect: read
questions:
- Which roles exist in my Snowflake account?
- Can I see all account-level roles and who owns them?
instructions:
- text: List all roles in the account.
- text: Show me every account role.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles'].post
update:
x-apievangelist-phrasing:
intent: Create a role
effect: write
questions:
- How do I create a new account role for a team?
- Can I add a comment describing a role when I create it?
instructions:
- text: Create a role named {name}.
slots:
name: requestBody.name
- text: Create role {name} with the description {comment}.
slots:
name: requestBody.name
comment: requestBody.comment
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Drop a role
effect: destructive
questions:
- How do I drop a role nobody uses anymore?
- Can I delete an account role through the API?
instructions:
- text: Drop role {name}.
slots:
name: path.name
- text: Delete the role I named from the account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/grants'].get
update:
x-apievangelist-phrasing:
intent: List privileges granted to a role
effect: read
questions:
- What privileges does this role currently hold?
- Which objects can this role access today?
instructions:
- text: List the grants given to role {name}.
slots:
name: path.name
- text: Show every privilege this role has been granted.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/grants'].post
update:
x-apievangelist-phrasing:
intent: Grant privileges on an object to a role
effect: write
questions:
- How do I give a role SELECT on a table?
- Can I grant privileges with the grant option so the role can pass them on?
instructions:
- text: Grant {privileges} on {securable_type} {securable} to role {name}.
slots:
privileges: requestBody.privileges
securable_type: requestBody.securable_type
securable: requestBody.securable
name: path.name
- text: Grant {privileges} on {securable_type} {securable} to this role with grant option {grant_option}.
slots:
privileges: requestBody.privileges
securable_type: requestBody.securable_type
securable: requestBody.securable
grant_option: requestBody.grant_option
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/grants:revoke'].post
update:
x-apievangelist-phrasing:
intent: Revoke privileges from a role
effect: destructive
questions:
- Can I take a privilege away from a role?
- How do I remove a role's access to one existing object?
instructions:
- text: Revoke {privileges} on {securable_type} {securable} from role {name}.
slots:
privileges: requestBody.privileges
securable_type: requestBody.securable_type
securable: requestBody.securable
name: path.name
- text: Remove this role's existing grant on {securable_type} {securable}.
slots:
securable_type: requestBody.securable_type
securable: requestBody.securable
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/grants-of'].get
update:
x-apievangelist-phrasing:
intent: List who has been granted a role
effect: read
questions:
- Which users and roles have been granted this role?
- Who inherits this role?
instructions:
- text: List the users and roles that role {name} is granted to.
slots:
name: path.name
- text: Show who holds this role.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/grants-on'].get
update:
x-apievangelist-phrasing:
intent: List grants on a role object
effect: read
questions:
- What privileges have been granted on the role itself, such as ownership?
- Which role owns or can modify this role?
instructions:
- text: List the grants on role {name} as an object.
slots:
name: path.name
- text: Show who has ownership or other privileges on this role.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/future-grants'].get
update:
x-apievangelist-phrasing:
intent: List future grants to a role
effect: read
questions:
- Which future grants will apply to this role for objects not yet created?
- Does this role automatically get access to new tables in a schema?
instructions:
- text: List the future grants assigned to role {name}.
slots:
name: path.name
- text: Show the privileges this role will receive on objects created later.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/future-grants'].post
update:
x-apievangelist-phrasing:
intent: Grant privileges on future objects to a role
effect: write
questions:
- How can a role automatically get SELECT on every table created in a schema from now on?
- Can I set up grants for objects that don't exist yet?
instructions:
- text: Grant {privileges} on all future {securable_type} objects in {containing_scope} to role {name}.
slots:
privileges: requestBody.privileges
securable_type: requestBody.securable_type
containing_scope: requestBody.containing_scope
name: path.name
- text: Set up a future grant of {privileges} on new {securable_type} objects for this role.
slots:
privileges: requestBody.privileges
securable_type: requestBody.securable_type
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}/future-grants:revoke'].post
update:
x-apievangelist-phrasing:
intent: Revoke future grants from a role
effect: destructive
questions:
- Can I stop a role from automatically getting access to newly created objects?
- How do I remove a future grant I set up earlier?
instructions:
- text: Revoke role {name}'s future grant of {privileges} on {securable_type} objects in {containing_scope}.
slots:
name: path.name
privileges: requestBody.privileges
securable_type: requestBody.securable_type
containing_scope: requestBody.containing_scope
- text: Remove this role's future grants on new {securable_type} objects.
slots:
securable_type: requestBody.securable_type
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}:set-tags'].post
update:
x-apievangelist-phrasing:
intent: Set tags on a role
effect: write
questions:
- How do I tag a role for governance tracking?
- Can I label a role with a department tag?
instructions:
- text: Set tags on role {name}.
slots:
name: path.name
- text: Apply my tag assignments to the role I named.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}:unset-tags'].post
update:
x-apievangelist-phrasing:
intent: Remove tags from a role
effect: write
questions:
- Can I remove tags from a role?
- What's the way to clear a tag off an account role?
instructions:
- text: Unset the tags on role {name}.
slots:
name: path.name
- text: Remove the tag assignments from the role I named.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v2/roles/{name}:get-tags'].get
update:
x-apievangelist-phrasing:
intent: Get the tags assigned to a role
effect: read
questions:
- Which tags are assigned to this role?
- Does reading a role's tags require an active warehouse?
instructions:
- text: Show every tag assigned to role {name}.
slots:
name: path.name
- text: List the tag assignments on the role I named.
method: generated
generated: '2026-10-01'