> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake: Actions/update Semantic Layer

> Validate and save your organization's Snowflake semantic layer of metrics, dimensions and tables. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

Validate and save your organization's Snowflake semantic layer of metrics, dimensions and tables.

> [!NOTE]
>
> Tool ID: `snowflake_update_semantic_layer`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'snowflake_update_semantic_layer',
  {
    "yaml": "example",
    "content": "Example message",
    "dryRun": false
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute snowflake_update_semantic_layer --input '{
  "yaml": "example",
  "content": "Example message",
  "dryRun": false
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "ok": true,
    "configured": true,
    "source": "customer_db",
    "provider": "snowflake",
    "contentHash": "example",
    "updatedAt": "2026-01-15T12:00:00Z",
    "tableCount": 123,
    "tables": [
      "example"
    ],
    "dryRun": true
  }
}
```

Use `deepline describe snowflake_update_semantic_layer --json` for the latest machine-readable contract.

## Input reference

Validate and save the active Snowflake semantic layer for the organization.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.yaml` | `string` | No | — | Full Snowflake semantic layer YAML. Use either yaml or content. |
| `payload.content` | `string` | No | — | Alias for yaml, useful for generic document upload callers. |
| `payload.dryRun` | `boolean` | No | `false` | Validate and return metadata without writing the semantic layer. Default false. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Validate and save the active Snowflake semantic layer for the organization.",
    "properties": {
      "yaml": {
        "type": "string",
        "description": "Full Snowflake semantic layer YAML. Use either yaml or content."
      },
      "content": {
        "type": "string",
        "description": "Alias for yaml, useful for generic document upload callers."
      },
      "dryRun": {
        "type": "boolean",
        "description": "Validate and return metadata without writing the semantic layer. Default false.",
        "default": false
      }
    },
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Snowflake semantic layer update result.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Saved semantic layer metadata. |
| `result.data.ok` | `boolean` | Yes | — | — |
| `result.data.configured` | `boolean` | Yes | — | — |
| `result.data.source` | `"customer_db"` | Yes | — | Allowed: `customer_db`. |
| `result.data.provider` | `"snowflake"` | Yes | — | — |
| `result.data.contentHash` | `string` | Yes | — | — |
| `result.data.updatedAt` | `string \| null` | Yes | — | — |
| `result.data.tableCount` | `integer` | Yes | — | — |
| `result.data.tables` | `array` | Yes | — | — |
| `result.data.dryRun` | `boolean` | Yes | — | — |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Snowflake semantic layer update result.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Saved semantic layer metadata.",
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "configured": {
            "type": "boolean"
          },
          "source": {
            "type": "string",
            "enum": [
              "customer_db"
            ]
          },
          "provider": {
            "type": "string",
            "const": "snowflake"
          },
          "contentHash": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "tableCount": {
            "type": "integer"
          },
          "tables": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dryRun": {
            "type": "boolean"
          }
        },
        "required": [
          "ok",
          "configured",
          "source",
          "provider",
          "contentHash",
          "updatedAt",
          "tableCount",
          "tables",
          "dryRun"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Snowflake provider guide](https://deepline.com/docs/providers/snowflake/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.