Snowflake · Schema

Stage

A Snowflake stage.

Data LakesData SharingData WarehousingDatabaseSQL

Properties

Name Type Description
name object String that specifies the identifier (i.e. name) for the stage.
kind string Specifies whether the stage is permanent or temporary.
url string URL for the external stage; blank for an internal stage.
endpoint string The S3-compatible API endpoint associated with the stage; always NULL for stages that are not S3-compatible.
storage_integration object Storage integration associated with the stage; always NULL for an internal stage.
comment string Specifies a comment for the stage.
credentials object Credentials of the stage.
encryption object Encryption parameters of the stage.
directory_table object Directory table parameters of the stage.
created_on string Date and time when the stage was created.
has_credentials boolean Indicates that the external stage has access credentials; always false for an internal stage.
has_encryption_key boolean Indicates that the external stage contains encrypted files; always false for an internal stage.
owner string Role that owns the stage.
owner_role_type string The type of role that owns the object, either ROLE or DATABASE_ROLE. If a Snowflake Native App owns the object, the value is APPLICATION. Snowflake returns NULL if you delete the object because a dele
region string Region where the stage is located.
cloud string Cloud provider; always NULL for an internal stage.
View JSON Schema on GitHub

JSON Schema

snowflake-stage-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Stage",
  "title": "Stage",
  "type": "object",
  "description": "A Snowflake stage.",
  "properties": {
    "name": {
      "$ref": "./common.yaml#/components/schemas/Identifier",
      "description": "String that specifies the identifier (i.e. name) for the stage."
    },
    "kind": {
      "type": "string",
      "enum": [
        "PERMANENT",
        "TEMPORARY"
      ],
      "default": "PERMANENT",
      "description": "Specifies whether the stage is permanent or temporary.",
      "example": "PERMANENT"
    },
    "url": {
      "type": "string",
      "description": "URL for the external stage; blank for an internal stage.",
      "example": "https://www.example.com"
    },
    "endpoint": {
      "type": "string",
      "description": "The S3-compatible API endpoint associated with the stage; always NULL for stages that are not S3-compatible.",
      "example": "example_value"
    },
    "storage_integration": {
      "$ref": "./common.yaml#/components/schemas/Identifier",
      "description": "Storage integration associated with the stage; always NULL for an internal stage."
    },
    "comment": {
      "type": "string",
      "description": "Specifies a comment for the stage.",
      "example": "example_value"
    },
    "credentials": {
      "$ref": "#/components/schemas/Credentials",
      "writeOnly": true,
      "description": "Credentials of the stage."
    },
    "encryption": {
      "type": "object",
      "description": "Encryption parameters of the stage.",
      "writeOnly": true,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SNOWFLAKE_FULL",
            "SNOWFLAKE_SSE",
            "AWS_CSE",
            "AWS_SSE_S3",
            "AWS_SSE_KMS",
            "GCS_SSE_KMS",
            "AZURE_CSE",
            "NONE"
          ],
          "description": "Specifies the encryption type used."
        },
        "master_key": {
          "type": "string",
          "format": "password",
          "description": "Specifies the client-side master key used to encrypt the files in the bucket. The master key must be a 128-bit or 256-bit key in Base64-encoded form."
        },
        "kms_key_id": {
          "type": "string",
          "description": "Optionally specifies the ID for the KMS-managed key used to encrypt files unloaded into the bucket."
        }
      },
      "example": "example_value"
    },
    "directory_table": {
      "type": "object",
      "description": "Directory table parameters of the stage.",
      "properties": {
        "enable": {
          "type": "boolean",
          "default": false,
          "description": "Specifies whether to add a directory table to the stage. When the value is TRUE, a directory table is created with the stage."
        },
        "refresh_on_create": {
          "type": "boolean",
          "default": true,
          "writeOnly": true,
          "description": "Specifies whether to automatically refresh the directory table metadata once, immediately after the stage is created."
        },
        "auto_refresh": {
          "type": "boolean",
          "default": false,
          "writeOnly": true,
          "description": "Specifies whether Snowflake should enable triggering automatic refreshes of the directory table metadata when new or updated data files are available in the named external stage specified in the URL value."
        },
        "notification_integration": {
          "type": "string",
          "writeOnly": true,
          "description": "Specifies the name of the notification integration used to automatically refresh the directory table metadata."
        }
      },
      "example": "example_value"
    },
    "created_on": {
      "type": "string",
      "description": "Date and time when the stage was created.",
      "format": "date-time",
      "readOnly": true,
      "example": "2026-01-15T10:30:00Z"
    },
    "has_credentials": {
      "type": "boolean",
      "description": "Indicates that the external stage has access credentials; always false for an internal stage.",
      "readOnly": true,
      "example": true
    },
    "has_encryption_key": {
      "type": "boolean",
      "description": "Indicates that the external stage contains encrypted files; always false for an internal stage.",
      "readOnly": true,
      "example": true
    },
    "owner": {
      "type": "string",
      "description": "Role that owns the stage.",
      "readOnly": true,
      "example": "example_value"
    },
    "owner_role_type": {
      "type": "string",
      "description": "The type of role that owns the object, either ROLE or DATABASE_ROLE. If a Snowflake Native App owns the object, the value is APPLICATION. Snowflake returns NULL if you delete the object because a deleted object does not have an owner role.",
      "readOnly": true,
      "example": "example_value"
    },
    "region": {
      "type": "string",
      "description": "Region where the stage is located.",
      "readOnly": true,
      "example": "example_value"
    },
    "cloud": {
      "type": "string",
      "description": "Cloud provider; always NULL for an internal stage.",
      "readOnly": true,
      "example": "example_value"
    }
  },
  "example": {
    "name": "stage_name"
  },
  "required": [
    "name"
  ]
}