# DESCRIBE

> StackQL の DESCRIBE：クエリやミューテーションの前に、リソースのフィールド、または特定のメソッドのパラメーターと戻り値の型を一覧表示します。

Source: https://stackql.io/ja/language-spec/describe

リソース、またはリソースの特定のメソッドを記述します。

関連項目：
[[ StackQL リソース階層 ]](/getting-started/resource-hierarchy)

* * *

## 構文

*describeStatement::=*

&nbsp;
&nbsp;

```sql
DESCRIBE [ METHOD ] [ EXTENDED ] <multipartIdentifier> ;
DESC [ EXTENDED ] <multipartIdentifier> ;
```

リソースを記述する場合は、`DESC` を `DESCRIBE` のエイリアスとして使用できます。`DESCRIBE METHOD` には完全なキーワードが必要です。

## レスポンス

**DESCRIBE**

| 列 | 説明 |
| --- | --- |
| `name` | フィールド名 |
| `type` | データ型（`string`、`integer`、`boolean`、`number`、`object`、`array`） |
| `description` | フィールドの説明（`EXTENDED` を指定した場合） |

**DESCRIBE METHOD**

| 列 | 説明 |
| --- | --- |
| `name` | フィールド名 |
| `type` | データ型（`string`、`integer`、`boolean`、`number`、`object`、`array`） |
| `param_type` | `input_required`、`input_optional`、または `output` |
| `shape` | オブジェクトと配列のフィールドに対する JSON Schema のサブセット。スカラーの場合は空です。ネストされた `properties`、`items`、`required`、`enum`、`default`、`description` を含み、プロバイダーが提供している場合はブール値（`readOnly`、`writeOnly`、`deprecated`）も含みます |
| `description` | フィールドの説明（`EXTENDED` を指定した場合） |

* * *

## 例

### 基本的な `DESCRIBE` 文
認証済みのセッションから基本的な `DESCRIBE` 文を実行し、リソースのフィールドを一覧表示します。

```sql
-- Show the available fields in a Compute Engine resource
DESCRIBE google.compute.instances;
```

### 拡張 `DESCRIBE` 文
認証済みのセッションから拡張 `DESCRIBE` 文を実行し、リソースのフィールドとその説明を一覧表示します。

```sql
-- Show the available fields in a Compute Engine resource
DESCRIBE EXTENDED google.compute.instances;
```

### `DESC` エイリアス
`DESC` は、リソースに対する `DESCRIBE` の短縮形で、`EXTENDED` の有無にかかわらず使用できます。`DESCRIBE` と同様に、どこでも読み取り専用の文として扱われます。これには、`read_only` モードと `safe` モードでの MCP サーバーの `run_select_query` ツールも含まれます。

```sql
-- Same result as DESCRIBE EXTENDED google.compute.instances
DESC EXTENDED google.compute.instances;
```

### 基本的な `DESCRIBE METHOD` 文
リソースの 1 つのメソッドをイントロスペクトします。結果には入力パラメーターとレスポンスフィールドが含まれ、ネストされた構造は `shape` 列に表示されます。

```sql
-- Show the inputs and outputs for the buckets.get method
DESCRIBE METHOD google.storage.buckets.get;
```

### 拡張 `DESCRIBE METHOD` 文
拡張 `DESCRIBE METHOD` 文を実行し、形状に加えてフィールドごとの説明も含めます。

```sql
-- Show inputs, outputs, and descriptions for the buckets.insert method
DESCRIBE METHOD EXTENDED google.storage.buckets.insert;
```

### `INSERT` のペイロードを確認する
`DESCRIBE METHOD` は、`INSERT`（またはミューテーションを行う任意のメソッド）が受け付けるフィールドを確認するための標準的な方法です。`shape` 列にはネストされた構造が含まれており、エージェントと人間はこれを使って 1 回のクエリでペイロードを構築できます。

```sql
-- See what google.compute.instances.insert requires
DESCRIBE METHOD EXTENDED google.compute.instances.insert;
```
