Skip to main content

tags

Creates, updates, deletes, gets or lists a tags resource.

Overview

Nametags
TypeResource
Idsnowflake.security.tags

Fields

The following fields are returned by SELECT queries:

successful

NameDatatypeDescription
namestringName of the tag (pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$)
database_namestringDatabase in which the tag is stored (pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$)
schema_namestringSchema in which the tag is stored (pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$)
allowed_valuesarrayPossible string values that can be assigned with the tag when the tag is set on an object
commentstringComment for the tag
created_onstring (date-time)Date and time when the tag was created.
on_conflictstringSpecifies what happens when there is a conflict between the values of propagated tags
ownerstringRole that owns the tag (pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$)
owner_role_typestringThe type of role that owns the tag
propagatestringSpecifies that the tag will be automatically propagated from source objects to target objects

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
getselectdatabase_name, schema_name, name, endpointFetch a tag
listselectdatabase_name, schema_name, endpointlikeList tags
createinsertdatabase_name, schema_name, endpoint, namecreateModeCreate a tag
create_or_alterreplacedatabase_name, schema_name, tag_name, endpoint, nameCreate or update a tag
deletedeletedatabase_name, schema_name, name, endpointifExistsDelete a tag
undropexecdatabase_name, schema_name, name, endpointUndrop a tag
renameexecdatabase_name, schema_name, name, targetName, endpointifExists, targetDatabase, targetSchemaRename a tag with a new identifier

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
database_namestringIdentifier (i.e. name) for the database to which the resource belongs. You can use the /api/v2/databases GET request to get a list of available databases.
endpointstringOrganization and account identifier (orgname-accountname) (default: orgname-accountname)
namestringIdentifier (i.e. name) for the resource.
schema_namestringIdentifier (i.e. name) for the schema to which the resource belongs. You can use the /api/v2/databases/{database}/schemas GET request to get a list of available schemas for the specified database.
tag_namestringIdentifier (i.e. name) for the resource.
targetNamestringName of the target resource.
createModestringParameter allowing support for different modes of resource creation. Possible values include: - errorIfExists: Throws an error if you try to create a resource that already exists. - orReplace: Automatically replaces the existing resource with the current one. - ifNotExists: Creates a new resource when an alter is requested for a non-existent resource.
ifExistsbooleanParameter that specifies how to handle the request for a resource that does not exist: - true: The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false: The endpoint throws an error if the resource doesn't exist.
likestringParameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters.
targetDatabasestringDatabase of the target resource. Defaults to the source's database
targetSchemastringSchema of the target resource. Defaults to the source's schema

SELECT examples

Fetch a tag

SELECT
name,
database_name,
schema_name,
allowed_values,
comment,
created_on,
on_conflict,
owner,
owner_role_type,
propagate
FROM snowflake.security.tags
WHERE database_name = '{{ database_name }}' -- required
AND schema_name = '{{ schema_name }}' -- required
AND name = '{{ name }}' -- required
AND endpoint = '{{ endpoint }}' -- required
;

INSERT examples

Create a tag

INSERT INTO snowflake.security.tags (
allowed_values,
propagate,
on_conflict,
comment,
name,
database_name,
schema_name,
endpoint,
createMode
)
SELECT
'{{ allowed_values }}',
'{{ propagate }}',
'{{ on_conflict }}',
'{{ comment }}',
'{{ name }}' /* required */,
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}',
'{{ createMode }}'
RETURNING
status
;

REPLACE examples

Create or update a tag

REPLACE snowflake.security.tags
SET
allowed_values = '{{ allowed_values }}',
propagate = '{{ propagate }}',
on_conflict = '{{ on_conflict }}',
comment = '{{ comment }}',
name = '{{ name }}'
WHERE
database_name = '{{ database_name }}' --required
AND schema_name = '{{ schema_name }}' --required
AND tag_name = '{{ tag_name }}' --required
AND endpoint = '{{ endpoint }}' --required
AND name = '{{ name }}' --required
RETURNING
status;

DELETE examples

Delete a tag

DELETE FROM snowflake.security.tags
WHERE database_name = '{{ database_name }}' --required
AND schema_name = '{{ schema_name }}' --required
AND name = '{{ name }}' --required
AND endpoint = '{{ endpoint }}' --required
AND ifExists = '{{ ifExists }}'
;

Lifecycle Methods

Undrop a tag

EXEC snowflake.security.tags.undrop
@database_name='{{ database_name }}' --required,
@schema_name='{{ schema_name }}' --required,
@name='{{ name }}' --required,
@endpoint='{{ endpoint }}' --required
;