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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'