> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/api/api-doc-ja/api-reference/zi-liao-ku.md).

# データベース

### SQL データベース接続の作成 <a href="#sql" id="sql"></a>

POST `/api/sql-databases/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                                                                           |
| ------------- | -------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string         | 必須 | このデータベース接続の表示名                                                                                                                                               |
| description   | string         | 任意 | データベースとその用途の説明                                                                                                                                               |
| databaseType  | object         | 必須 | データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                                                                          |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。                                                           |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                                                                                     |
| chatbots      | array\[IdName] | 任意 |                                                                                                                                                              |
| groups        | array\[IdName] | 任意 |                                                                                                                                                              |

**リクエスト構造の例**

```typescript
{
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.post("https://api.maiagent.ai/api/sql-databases/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベース接続の作成 <a href="#sql" id="sql"></a>

POST `/api/v1/sql-databases/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                                                                           |
| ------------- | -------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string         | 必須 | このデータベース接続の表示名                                                                                                                                               |
| description   | string         | 任意 | データベースとその用途の説明                                                                                                                                               |
| databaseType  | object         | 必須 | データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                                                                          |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。                                                           |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                                                                                     |
| chatbots      | array\[IdName] | 任意 |                                                                                                                                                              |
| groups        | array\[IdName] | 任意 |                                                                                                                                                              |

**リクエスト構造の例**

```typescript
{
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの一覧取得 <a href="#sql" id="sql"></a>

GET `/api/sql-databases/`

#### パラメータ

| パラメータ名         | 必須 | タイプ     | 説明                                                                                                                                                                     |
| -------------- | -- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `databaseType` | ❌  | string  | データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent \`postgresql\`: PostgreSQL ; \`mysql\`: MySQL ; \`maiagent\`: MaiAgent ; \`oracle\`: Oracle ; \`mssql\`: MSSQL; |
| `isActive`     | ❌  | boolean |                                                                                                                                                                        |
| `isExternal`   | ❌  | boolean |                                                                                                                                                                        |
| `page`         | ❌  | integer | A page number within the paginated result set.                                                                                                                         |
| `pageSize`     | ❌  | integer | Number of results to return per page.                                                                                                                                  |
| `query`        | ❌  | string  |                                                                                                                                                                        |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "name": string // このデータベース接続の表示名
      "description"?: string // データベースとその用途の説明 (任意)
      "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
      {
      }
      "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
      "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
      "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
      "status": 
      {
      }
      "deletedAt": string (timestamp)
      "tables": [
        {
          "id": string (uuid)
          "tableName": string // データベース内のテーブル名
          "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
          "status": 
          {
          }
          "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
          "sourceFile": 
          {
            "id": string (uuid)
            "name": string
            "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
          }
          "columns": [
            {
              "id": string (uuid)
              "columnName": string
              "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
              "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
              "isPrimaryKey"?: boolean // 任意
              "isNullable"?: boolean // 任意
              "createdAt": string (timestamp)
              "updatedAt": string (timestamp)
            }
          ]
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "chatbots": [
        {
          "id": string (uuid)
          "name": string
        }
      ]
      "groups": [
        {
          "id": string (uuid)
          "name": string
        }
      ]
      "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
      "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列",
      "description": "レスポンス文字列",
      "databaseType": {},
      "databaseUrl": "レスポンス文字列",
      "includeTables": null,
      "isActive": false,
      "status": {},
      "deletedAt": "レスポンス文字列",
      "tables": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "tableName": "レスポンス文字列",
          "description": "レスポンス文字列",
          "status": {},
          "errorMessage": "レスポンス文字列",
          "sourceFile": {
            "id": "550e8400-e29b-41d4-a716-446655440000",
            "name": "レスポンス文字列",
            "isFromKnowledgeBase": false
          },
          "columns": [
            {
              "id": "550e8400-e29b-41d4-a716-446655440000",
              "columnName": "レスポンス文字列",
              "columnType": "レスポンス文字列",
              "description": "レスポンス文字列",
              "isPrimaryKey": false,
              "isNullable": false,
              "createdAt": "レスポンス文字列",
              "updatedAt": "レスポンス文字列"
            }
          ],
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "name": "レスポンス文字列"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "name": "レスポンス文字列"
        }
      ],
      "canUpdate": false,
      "canDelete": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### SQL データベースの一覧取得 <a href="#sql" id="sql"></a>

GET `/api/v1/sql-databases/`

#### パラメータ

| パラメータ名         | 必須 | タイプ     | 説明                                                                                                                                                                     |
| -------------- | -- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `databaseType` | ❌  | string  | データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent \`postgresql\`: PostgreSQL ; \`mysql\`: MySQL ; \`maiagent\`: MaiAgent ; \`oracle\`: Oracle ; \`mssql\`: MSSQL; |
| `isActive`     | ❌  | boolean |                                                                                                                                                                        |
| `isExternal`   | ❌  | boolean |                                                                                                                                                                        |
| `page`         | ❌  | integer | A page number within the paginated result set.                                                                                                                         |
| `pageSize`     | ❌  | integer | Number of results to return per page.                                                                                                                                  |
| `query`        | ❌  | string  |                                                                                                                                                                        |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/?databaseType=maiagent&isActive=true&isExternal=true&page=1&pageSize=1&query=example", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "name": string // このデータベース接続の表示名
      "description"?: string // データベースとその用途の説明 (任意)
      "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
      {
      }
      "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
      "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
      "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
      "status": 
      {
      }
      "deletedAt": string (timestamp)
      "tables": [
        {
          "id": string (uuid)
          "tableName": string // データベース内のテーブル名
          "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
          "status": 
          {
          }
          "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
          "sourceFile": 
          {
            "id": string (uuid)
            "name": string
            "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
          }
          "columns": [
            {
              "id": string (uuid)
              "columnName": string
              "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
              "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
              "isPrimaryKey"?: boolean // 任意
              "isNullable"?: boolean // 任意
              "createdAt": string (timestamp)
              "updatedAt": string (timestamp)
            }
          ]
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "chatbots": [
        {
          "id": string (uuid)
          "name": string
        }
      ]
      "groups": [
        {
          "id": string (uuid)
          "name": string
        }
      ]
      "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
      "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列",
      "description": "レスポンス文字列",
      "databaseType": {},
      "databaseUrl": "レスポンス文字列",
      "includeTables": null,
      "isActive": false,
      "status": {},
      "deletedAt": "レスポンス文字列",
      "tables": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "tableName": "レスポンス文字列",
          "description": "レスポンス文字列",
          "status": {},
          "errorMessage": "レスポンス文字列",
          "sourceFile": {
            "id": "550e8400-e29b-41d4-a716-446655440000",
            "name": "レスポンス文字列",
            "isFromKnowledgeBase": false
          },
          "columns": [
            {
              "id": "550e8400-e29b-41d4-a716-446655440000",
              "columnName": "レスポンス文字列",
              "columnType": "レスポンス文字列",
              "description": "レスポンス文字列",
              "isPrimaryKey": false,
              "isNullable": false,
              "createdAt": "レスポンス文字列",
              "updatedAt": "レスポンス文字列"
            }
          ],
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "name": "レスポンス文字列"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "name": "レスポンス文字列"
        }
      ],
      "canUpdate": false,
      "canDelete": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### 特定の SQL データベースの取得 <a href="#sql" id="sql"></a>

GET `/api/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定の SQL データベースの取得 <a href="#sql" id="sql"></a>

GET `/api/v1/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの更新 <a href="#sql" id="sql"></a>

PUT `/api/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                 |
| ------------- | -------------- | -- | -------------------------------------------------------------------------------------------------- |
| name          | string         | 必須 | このデータベース接続の表示名                                                                                     |
| description   | string         | 任意 | データベースとその用途の説明                                                                                     |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                           |
| chatbots      | array\[IdName] | 任意 |                                                                                                    |
| groups        | array\[IdName] | 任意 |                                                                                                    |

**リクエスト構造の例**

```typescript
{
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.put("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの更新 <a href="#sql" id="sql"></a>

PUT `/api/v1/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                 |
| ------------- | -------------- | -- | -------------------------------------------------------------------------------------------------- |
| name          | string         | 必須 | このデータベース接続の表示名                                                                                     |
| description   | string         | 任意 | データベースとその用途の説明                                                                                     |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                           |
| chatbots      | array\[IdName] | 任意 |                                                                                                    |
| groups        | array\[IdName] | 任意 |                                                                                                    |

**リクエスト構造の例**

```typescript
{
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.put("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの部分更新 <a href="#sql" id="sql"></a>

PATCH `/api/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                 |
| ------------- | -------------- | -- | -------------------------------------------------------------------------------------------------- |
| name          | string         | 任意 | このデータベース接続の表示名                                                                                     |
| description   | string         | 任意 | データベースとその用途の説明                                                                                     |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                           |
| chatbots      | array\[IdName] | 任意 |                                                                                                    |
| groups        | array\[IdName] | 任意 |                                                                                                    |

**リクエスト構造の例**

```typescript
{
  "name"?: string // このデータベース接続の表示名 (任意)
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.patch("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの部分更新 <a href="#sql" id="sql"></a>

PATCH `/api/v1/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ            | 必須 | 説明                                                                                                 |
| ------------- | -------------- | -- | -------------------------------------------------------------------------------------------------- |
| name          | string         | 任意 | このデータベース接続の表示名                                                                                     |
| description   | string         | 任意 | データベースとその用途の説明                                                                                     |
| databaseUrl   | string         | 任意 | 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。                                                |
| includeTables | object         | 任意 | 対象に含めるテーブルのリスト（任意）。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 |
| isActive      | boolean        | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されません                                                           |
| chatbots      | array\[IdName] | 任意 |                                                                                                    |
| groups        | array\[IdName] | 任意 |                                                                                                    |

**リクエスト構造の例**

```typescript
{
  "name"?: string // このデータベース接続の表示名 (任意)
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "chatbots"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
  "groups"?: [ // 任意
    {
      "id": string (uuid)
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "description": "サンプル文字列",
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true,
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "description": "サンプル文字列",
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true,
    "chatbots": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ],
    "groups": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  };

axios.patch("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "description": "サンプル文字列",
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true,
      "chatbots": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "groups": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000"
        }
      ]
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "description": "サンプル文字列",
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true,
            "chatbots": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ],
            "groups": [
                {
                    "id": "550e8400-e29b-41d4-a716-446655440000"
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // このデータベース接続の表示名
  "description"?: string // データベースとその用途の説明 (任意)
  "databaseType":  // データベースのタイプ: PostgreSQL、MySQL、MSSQL、Oracle、または MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl"?: string // 外部データベースの接続文字列です。MaiAgent タイプではシステムの既定値を使用するため不要です。 (任意)
  "includeTables"?: object // 対象に含めるテーブルのリスト（任意）。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプでは、アップロードされたファイルから自動的に設定されます。 (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されません (任意)
  "status": 
  {
  }
  "deletedAt": string (timestamp)
  "tables": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "chatbots": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "groups": [
    {
      "id": string (uuid)
      "name": string
    }
  ]
  "canUpdate": boolean // 現在のユーザーがこのリソースを更新できるかどうかを返します。
  "canDelete": boolean // 現在のユーザーがこのリソースを削除できるかどうかを返します。
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "description": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "status": {},
  "deletedAt": "レスポンス文字列",
  "tables": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "chatbots": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "groups": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列"
    }
  ],
  "canUpdate": false,
  "canDelete": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### SQL データベースの削除 <a href="#sql" id="sql"></a>

DELETE `/api/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### SQL データベースの削除 <a href="#sql" id="sql"></a>

DELETE `/api/v1/sql-databases/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データベース接続のテスト <a href="#undefined" id="undefined"></a>

POST `/api/sql-databases/{id}/test-connection/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ                                                       | 必須 | 説明                                                                                                    |
| ------------ | --------------------------------------------------------- | -- | ----------------------------------------------------------------------------------------------------- |
| databaseType | string (enum: postgresql, mysql, maiagent, oracle, mssql) | 必須 | `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl  | string                                                    | 必須 |                                                                                                       |

**リクエスト構造の例**

```typescript
{
  "databaseType": string (enum: postgresql, mysql, maiagent, oracle, mssql) // * `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  "databaseUrl": string
}
```

**リクエストの値の例**

```json
{
  "databaseType": "postgresql",
  "databaseUrl": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "databaseType": "postgresql",
    "databaseUrl": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "databaseType": "postgresql",
    "databaseUrl": "サンプル文字列"
  };

axios.post("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "databaseType": "postgresql",
      "databaseUrl": "サンプル文字列"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "databaseType": "postgresql",
            "databaseUrl": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "success"?: boolean // 任意
  "message"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "success": false,
  "message": "レスポンス文字列"
}
```

***

### データベース接続のテスト <a href="#undefined" id="undefined"></a>

POST `/api/v1/sql-databases/{id}/test-connection/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ                                                       | 必須 | 説明                                                                                                    |
| ------------ | --------------------------------------------------------- | -- | ----------------------------------------------------------------------------------------------------- |
| databaseType | string (enum: postgresql, mysql, maiagent, oracle, mssql) | 必須 | `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl  | string                                                    | 必須 |                                                                                                       |

**リクエスト構造の例**

```typescript
{
  "databaseType": string (enum: postgresql, mysql, maiagent, oracle, mssql) // * `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  "databaseUrl": string
}
```

**リクエストの値の例**

```json
{
  "databaseType": "postgresql",
  "databaseUrl": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "databaseType": "postgresql",
    "databaseUrl": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "databaseType": "postgresql",
    "databaseUrl": "サンプル文字列"
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "databaseType": "postgresql",
      "databaseUrl": "サンプル文字列"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/test-connection/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "databaseType": "postgresql",
            "databaseUrl": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "success"?: boolean // 任意
  "message"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "success": false,
  "message": "レスポンス文字列"
}
```

***

### データベースへのファイルアップロード <a href="#undefined" id="undefined"></a>

POST `/api/sql-databases/{id}/upload-files/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| files | array\[object] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "files": [
    {
      "file": string // 署名付き URL アップロードによるファイルパス（例: media/chatbotfiles/xxx/file.csv）
      "filename": string // 元のファイル名
      "size": integer // ファイルサイズ（バイト）
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "files": [
    {
      "file": "media/chatbotfiles/xxx/data.csv",
      "filename": "data.csv",
      "size": 1024
    },
    {
      "file": "media/chatbotfiles/xxx/report.xlsx",
      "filename": "report.xlsx",
      "size": 2048
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      {
        "file": "media/chatbotfiles/xxx/data.csv",
        "filename": "data.csv",
        "size": 1024
      },
      {
        "file": "media/chatbotfiles/xxx/report.xlsx",
        "filename": "report.xlsx",
        "size": 2048
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "files": [
      {
        "file": "media/chatbotfiles/xxx/data.csv",
        "filename": "data.csv",
        "size": 1024
      },
      {
        "file": "media/chatbotfiles/xxx/report.xlsx",
        "filename": "report.xlsx",
        "size": 2048
      }
    ]
  };

axios.post("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "files": [
        {
          "file": "media/chatbotfiles/xxx/data.csv",
          "filename": "data.csv",
          "size": 1024
        },
        {
          "file": "media/chatbotfiles/xxx/report.xlsx",
          "filename": "report.xlsx",
          "size": 2048
        }
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "files": [
                {
                    "file": "media/chatbotfiles/xxx/data.csv",
                    "filename": "data.csv",
                    "size": 1024
                },
                {
                    "file": "media/chatbotfiles/xxx/report.xlsx",
                    "filename": "report.xlsx",
                    "size": 2048
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "message"?: string // 任意
  "filesCount"?: integer // 任意
  "fileIds"?: [ // 任意
    string (uuid)
  ]
}
```

**レスポンスの値の例**

```json
{
  "message": "レスポンス文字列",
  "filesCount": 456,
  "fileIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

***

### データベースへのファイルアップロード <a href="#undefined" id="undefined"></a>

POST `/api/v1/sql-databases/{id}/upload-files/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                             |
| ------ | -- | ------ | ------------------------------ |
| `id`   | ✅  | string | この SQL データベースを識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| files | array\[object] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "files": [
    {
      "file": string // 署名付き URL アップロードによるファイルパス（例: media/chatbotfiles/xxx/file.csv）
      "filename": string // 元のファイル名
      "size": integer // ファイルサイズ（バイト）
    }
  ]
}
```

**リクエストの値の例**

```json
{
  "files": [
    {
      "file": "media/chatbotfiles/xxx/data.csv",
      "filename": "data.csv",
      "size": 1024
    },
    {
      "file": "media/chatbotfiles/xxx/report.xlsx",
      "filename": "report.xlsx",
      "size": 2048
    }
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      {
        "file": "media/chatbotfiles/xxx/data.csv",
        "filename": "data.csv",
        "size": 1024
      },
      {
        "file": "media/chatbotfiles/xxx/report.xlsx",
        "filename": "report.xlsx",
        "size": 2048
      }
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "files": [
      {
        "file": "media/chatbotfiles/xxx/data.csv",
        "filename": "data.csv",
        "size": 1024
      },
      {
        "file": "media/chatbotfiles/xxx/report.xlsx",
        "filename": "report.xlsx",
        "size": 2048
      }
    ]
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "files": [
        {
          "file": "media/chatbotfiles/xxx/data.csv",
          "filename": "data.csv",
          "size": 1024
        },
        {
          "file": "media/chatbotfiles/xxx/report.xlsx",
          "filename": "report.xlsx",
          "size": 2048
        }
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/550e8400-e29b-41d4-a716-446655440000/upload-files/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "files": [
                {
                    "file": "media/chatbotfiles/xxx/data.csv",
                    "filename": "data.csv",
                    "size": 1024
                },
                {
                    "file": "media/chatbotfiles/xxx/report.xlsx",
                    "filename": "report.xlsx",
                    "size": 2048
                }
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "message"?: string // 任意
  "filesCount"?: integer // 任意
  "fileIds"?: [ // 任意
    string (uuid)
  ]
}
```

**レスポンスの値の例**

```json
{
  "message": "レスポンス文字列",
  "filesCount": 456,
  "fileIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

***

### SQL データベースの一括削除 <a href="#sql" id="sql"></a>

POST `/api/sql-databases/batch-delete/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| ids   | array\[string] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "ids": [
    string (uuid)
  ]
}
```

**リクエストの値の例**

```json
{
  "ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/batch-delete/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  };

axios.post("https://api.maiagent.ai/api/sql-databases/batch-delete/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/batch-delete/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "ids": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/batch-delete/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "ids": [
                "550e8400-e29b-41d4-a716-446655440000"
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### SQL データベースの一括削除 <a href="#sql" id="sql"></a>

POST `/api/v1/sql-databases/batch-delete/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| ids   | array\[string] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "ids": [
    string (uuid)
  ]
}
```

**リクエストの値の例**

```json
{
  "ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/batch-delete/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/batch-delete/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/batch-delete/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "ids": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/batch-delete/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "ids": [
                "550e8400-e29b-41d4-a716-446655440000"
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データテーブルの一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/sql-databases/{sqlDatabasePk}/tables/`

#### パラメータ

| パラメータ名          | 必須 | タイプ     | 説明                                                                                                                                                      |
| --------------- | -- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sqlDatabasePk` | ✅  | string  |                                                                                                                                                         |
| `page`          | ❌  | integer | A page number within the paginated result set.                                                                                                          |
| `pageSize`      | ❌  | integer | Number of results to return per page.                                                                                                                   |
| `query`         | ❌  | string  |                                                                                                                                                         |
| `status`        | ❌  | string  | \`pending\`: Pending ; \`processing\`: Processing ; \`success\`: Success ; \`failed\`: Failed ; \`dropping\`: Dropping ; \`drop\_failed\`: Drop Failed; |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### データテーブルの一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/sql-databases/{sqlDatabasePk}/tables/`

#### パラメータ

| パラメータ名          | 必須 | タイプ     | 説明                                                                                                                                                      |
| --------------- | -- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sqlDatabasePk` | ✅  | string  |                                                                                                                                                         |
| `page`          | ❌  | integer | A page number within the paginated result set.                                                                                                          |
| `pageSize`      | ❌  | integer | Number of results to return per page.                                                                                                                   |
| `query`         | ❌  | string  |                                                                                                                                                         |
| `status`        | ❌  | string  | \`pending\`: Pending ; \`processing\`: Processing ; \`success\`: Success ; \`failed\`: Failed ; \`dropping\`: Dropping ; \`drop\_failed\`: Drop Failed; |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/?page=1&pageSize=1&query=example&status=drop_failed", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "tableName": string // データベース内のテーブル名
      "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
      "status": 
      {
      }
      "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
      "sourceFile": 
      {
        "id": string (uuid)
        "name": string
        "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
      }
      "columns": [
        {
          "id": string (uuid)
          "columnName": string
          "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
          "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
          "isPrimaryKey"?: boolean // 任意
          "isNullable"?: boolean // 任意
          "createdAt": string (timestamp)
          "updatedAt": string (timestamp)
        }
      ]
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tableName": "レスポンス文字列",
      "description": "レスポンス文字列",
      "status": {},
      "errorMessage": "レスポンス文字列",
      "sourceFile": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "レスポンス文字列",
        "isFromKnowledgeBase": false
      },
      "columns": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "columnName": "レスポンス文字列",
          "columnType": "レスポンス文字列",
          "description": "レスポンス文字列",
          "isPrimaryKey": false,
          "isNullable": false,
          "createdAt": "レスポンス文字列",
          "updatedAt": "レスポンス文字列"
        }
      ],
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### データテーブルの作成 <a href="#undefined" id="undefined"></a>

POST `/api/sql-databases/{sqlDatabasePk}/tables/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明 |
| --------------- | -- | ------ | -- |
| `sqlDatabasePk` | ✅  | string |    |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 必須 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.post("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの作成 <a href="#undefined" id="undefined"></a>

POST `/api/v1/sql-databases/{sqlDatabasePk}/tables/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明 |
| --------------- | -- | ------ | -- |
| `sqlDatabasePk` | ✅  | string |    |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 必須 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定のデータテーブルの取得 <a href="#undefined" id="undefined"></a>

GET `/api/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定のデータテーブルの取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの更新 <a href="#undefined" id="undefined"></a>

PUT `/api/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 必須 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.put("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの更新 <a href="#undefined" id="undefined"></a>

PUT `/api/v1/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 必須 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.put("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 任意 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName"?: string // データベース内のテーブル名 (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.patch("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/v1/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### リクエスト内容

**リクエストパラメータ**

| フィールド       | タイプ    | 必須 | 説明                                   |
| ----------- | ------ | -- | ------------------------------------ |
| tableName   | string | 任意 | データベース内のテーブル名                        |
| description | string | 任意 | Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 |

**リクエスト構造の例**

```typescript
{
  "tableName"?: string // データベース内のテーブル名 (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
}
```

**リクエストの値の例**

```json
{
  "tableName": "サンプル文字列",
  "description": "サンプル文字列"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "tableName": "サンプル文字列",
    "description": "サンプル文字列"
  };

axios.patch("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "tableName": "サンプル文字列",
      "description": "サンプル文字列"
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "tableName": "サンプル文字列",
            "description": "サンプル文字列"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "tableName": string // データベース内のテーブル名
  "description"?: string // Text-to-SQL の理解を高めるための、テーブルとそのデータの説明 (任意)
  "status": 
  {
  }
  "errorMessage": string // テーブルの作成または削除が失敗した場合のエラー詳細
  "sourceFile": 
  {
    "id": string (uuid)
    "name": string
    "isFromKnowledgeBase": boolean // ソースファイルがナレッジベースのアップロード由来かどうかを判定します。

ファイルがナレッジベース経由でアップロードされた場合は True を、
データベースに直接アップロードされた場合は False を返します。
  }
  "columns": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "tableName": "レスポンス文字列",
  "description": "レスポンス文字列",
  "status": {},
  "errorMessage": "レスポンス文字列",
  "sourceFile": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "レスポンス文字列",
    "isFromKnowledgeBase": false
  },
  "columns": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ],
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データテーブルの削除 <a href="#undefined" id="undefined"></a>

DELETE `/api/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データテーブルの削除 <a href="#undefined" id="undefined"></a>

DELETE `/api/v1/sql-databases/{sqlDatabasePk}/tables/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                            |
| --------------- | -- | ------ | ----------------------------- |
| `id`            | ✅  | string | このデータベーステーブルを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                               |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データテーブルの一括削除 <a href="#undefined" id="undefined"></a>

POST `/api/sql-databases/{sqlDatabasePk}/tables/batch-delete/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明 |
| --------------- | -- | ------ | -- |
| `sqlDatabasePk` | ✅  | string |    |

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| ids   | array\[string] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "ids": [
    string (uuid)
  ]
}
```

**リクエストの値の例**

```json
{
  "ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/batch-delete/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  };

axios.post("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/batch-delete/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/batch-delete/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "ids": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/batch-delete/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "ids": [
                "550e8400-e29b-41d4-a716-446655440000"
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データテーブルの一括削除 <a href="#undefined" id="undefined"></a>

POST `/api/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明 |
| --------------- | -- | ------ | -- |
| `sqlDatabasePk` | ✅  | string |    |

#### リクエスト内容

**リクエストパラメータ**

| フィールド | タイプ            | 必須 | 説明 |
| ----- | -------------- | -- | -- |
| ids   | array\[string] | 必須 |    |

**リクエスト構造の例**

```typescript
{
  "ids": [
    string (uuid)
  ]
}
```

**リクエストの値の例**

```json
{
  "ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ]
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "ids": [
      "550e8400-e29b-41d4-a716-446655440000"
    ]
  };

axios.post("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "ids": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "ids": [
                "550e8400-e29b-41d4-a716-446655440000"
            ]
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データカラムの一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/`

#### パラメータ

| パラメータ名          | 必須 | タイプ     | 説明                                             |
| --------------- | -- | ------- | ---------------------------------------------- |
| `sqlDatabasePk` | ✅  | string  |                                                |
| `tablePk`       | ✅  | string  |                                                |
| `page`          | ❌  | integer | A page number within the paginated result set. |
| `pageSize`      | ❌  | integer | Number of results to return per page.          |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### データカラムの一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/`

#### パラメータ

| パラメータ名          | 必須 | タイプ     | 説明                                             |
| --------------- | -- | ------- | ---------------------------------------------- |
| `sqlDatabasePk` | ✅  | string  |                                                |
| `tablePk`       | ✅  | string  |                                                |
| `page`          | ❌  | integer | A page number within the paginated result set. |
| `pageSize`      | ❌  | integer | Number of results to return per page.          |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/?page=1&pageSize=1", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "columnName": string
      "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
      "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
      "isPrimaryKey"?: boolean // 任意
      "isNullable"?: boolean // 任意
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "columnName": "レスポンス文字列",
      "columnType": "レスポンス文字列",
      "description": "レスポンス文字列",
      "isPrimaryKey": false,
      "isNullable": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### 特定のデータカラムの取得 <a href="#undefined" id="undefined"></a>

GET `/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定のデータカラムの取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データカラムの更新 <a href="#undefined" id="undefined"></a>

PUT `/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ     | 必須 | 説明                                     |
| ------------ | ------- | -- | -------------------------------------- |
| columnName   | string  | 必須 |                                        |
| columnType   | string  | 任意 | カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） |
| description  | string  | 任意 | Text-to-SQL の理解を高めるための、カラムの説明          |
| isPrimaryKey | boolean | 任意 |                                        |
| isNullable   | boolean | 任意 |                                        |

**リクエスト構造の例**

```typescript
{
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
}
```

**リクエストの値の例**

```json
{
  "columnName": "サンプル文字列",
  "columnType": "サンプル文字列",
  "description": "サンプル文字列",
  "isPrimaryKey": true,
  "isNullable": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  };

axios.put("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "columnName": "サンプル文字列",
      "columnType": "サンプル文字列",
      "description": "サンプル文字列",
      "isPrimaryKey": true,
      "isNullable": true
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "columnName": "サンプル文字列",
            "columnType": "サンプル文字列",
            "description": "サンプル文字列",
            "isPrimaryKey": true,
            "isNullable": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データカラムの更新 <a href="#undefined" id="undefined"></a>

PUT `/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ     | 必須 | 説明                                     |
| ------------ | ------- | -- | -------------------------------------- |
| columnName   | string  | 必須 |                                        |
| columnType   | string  | 任意 | カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） |
| description  | string  | 任意 | Text-to-SQL の理解を高めるための、カラムの説明          |
| isPrimaryKey | boolean | 任意 |                                        |
| isNullable   | boolean | 任意 |                                        |

**リクエスト構造の例**

```typescript
{
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
}
```

**リクエストの値の例**

```json
{
  "columnName": "サンプル文字列",
  "columnType": "サンプル文字列",
  "description": "サンプル文字列",
  "isPrimaryKey": true,
  "isNullable": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  };

axios.put("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "columnName": "サンプル文字列",
      "columnType": "サンプル文字列",
      "description": "サンプル文字列",
      "isPrimaryKey": true,
      "isNullable": true
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "columnName": "サンプル文字列",
            "columnType": "サンプル文字列",
            "description": "サンプル文字列",
            "isPrimaryKey": true,
            "isNullable": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データカラムの部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ     | 必須 | 説明                                     |
| ------------ | ------- | -- | -------------------------------------- |
| columnName   | string  | 任意 |                                        |
| columnType   | string  | 任意 | カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） |
| description  | string  | 任意 | Text-to-SQL の理解を高めるための、カラムの説明          |
| isPrimaryKey | boolean | 任意 |                                        |
| isNullable   | boolean | 任意 |                                        |

**リクエスト構造の例**

```typescript
{
  "columnName"?: string // 任意
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
}
```

**リクエストの値の例**

```json
{
  "columnName": "サンプル文字列",
  "columnType": "サンプル文字列",
  "description": "サンプル文字列",
  "isPrimaryKey": true,
  "isNullable": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  };

axios.patch("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "columnName": "サンプル文字列",
      "columnType": "サンプル文字列",
      "description": "サンプル文字列",
      "isPrimaryKey": true,
      "isNullable": true
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "columnName": "サンプル文字列",
            "columnType": "サンプル文字列",
            "description": "サンプル文字列",
            "isPrimaryKey": true,
            "isNullable": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データカラムの部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}/`

#### パラメータ

| パラメータ名          | 必須 | タイプ    | 説明                                |
| --------------- | -- | ------ | --------------------------------- |
| `id`            | ✅  | string | このデータベーステーブルのカラムを識別する UUID 文字列です。 |
| `sqlDatabasePk` | ✅  | string |                                   |
| `tablePk`       | ✅  | string |                                   |

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ     | 必須 | 説明                                     |
| ------------ | ------- | -- | -------------------------------------- |
| columnName   | string  | 任意 |                                        |
| columnType   | string  | 任意 | カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） |
| description  | string  | 任意 | Text-to-SQL の理解を高めるための、カラムの説明          |
| isPrimaryKey | boolean | 任意 |                                        |
| isNullable   | boolean | 任意 |                                        |

**リクエスト構造の例**

```typescript
{
  "columnName"?: string // 任意
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
}
```

**リクエストの値の例**

```json
{
  "columnName": "サンプル文字列",
  "columnType": "サンプル文字列",
  "description": "サンプル文字列",
  "isPrimaryKey": true,
  "isNullable": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "columnName": "サンプル文字列",
    "columnType": "サンプル文字列",
    "description": "サンプル文字列",
    "isPrimaryKey": true,
    "isNullable": true
  };

axios.patch("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "columnName": "サンプル文字列",
      "columnType": "サンプル文字列",
      "description": "サンプル文字列",
      "isPrimaryKey": true,
      "isNullable": true
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "columnName": "サンプル文字列",
            "columnType": "サンプル文字列",
            "description": "サンプル文字列",
            "isPrimaryKey": true,
            "isNullable": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "columnName": string
  "columnType"?: string // カラムのデータ型（例: VARCHAR、INTEGER、TIMESTAMP） (任意)
  "description"?: string // Text-to-SQL の理解を高めるための、カラムの説明 (任意)
  "isPrimaryKey"?: boolean // 任意
  "isNullable"?: boolean // 任意
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "columnName": "レスポンス文字列",
  "columnType": "レスポンス文字列",
  "description": "レスポンス文字列",
  "isPrimaryKey": false,
  "isNullable": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース接続のテスト（汎用） <a href="#undefined" id="undefined"></a>

POST `/api/database-connection/test/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ    | 必須 | 説明                                                                                                                 |
| ------------ | ------ | -- | ------------------------------------------------------------------------------------------------------------------ |
| databaseType | object | 必須 | データベースのタイプ（MaiAgent 内部利用タイプは含まれません） `postgresql`: PostgreSQL ; `mysql`: MySQL ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl  | string | 必須 | データベース接続文字列                                                                                                        |

**リクエスト構造の例**

```typescript
{
  "databaseType":  // データベースのタイプ（MaiAgent 内部利用タイプは含まれません）

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
}
```

**リクエストの値の例**

```json
{
  "database_type": "postgresql",
  "database_url": "postgresql://user:password@localhost:5432/dbname"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/database-connection/test/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "database_type": "postgresql",
    "database_url": "postgresql://user:password@localhost:5432/dbname"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "database_type": "postgresql",
    "database_url": "postgresql://user:password@localhost:5432/dbname"
  };

axios.post("https://api.maiagent.ai/api/database-connection/test/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/database-connection/test/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "database_type": "postgresql",
      "database_url": "postgresql://user:password@localhost:5432/dbname"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/database-connection/test/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "database_type": "postgresql",
            "database_url": "postgresql://user:password@localhost:5432/dbname"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "status":  // 接続状態

* `success` - success
* `failed` - failed
  {
  }
  "responseTime"?: number (double) // レスポンス時間（秒） (任意)
  "message"?: string // 成功メッセージ (任意)
  "errorMessage"?: string // エラーメッセージ (任意)
}
```

**レスポンスの値の例**

```json
{
  "status": "success",
  "response_time": 0.123,
  "message": "PostgreSQL データベースへの接続に成功しました"
}
```

**ステータスコード: 400**

**レスポンス構造の例**

```typescript
{
  "detail"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "status": "success",
  "response_time": 0.123,
  "message": "PostgreSQL データベースへの接続に成功しました"
}
```

***

### データベース接続のテスト（汎用） <a href="#undefined" id="undefined"></a>

POST `/api/v1/database-connection/test/`

#### リクエスト内容

**リクエストパラメータ**

| フィールド        | タイプ    | 必須 | 説明                                                                                                                 |
| ------------ | ------ | -- | ------------------------------------------------------------------------------------------------------------------ |
| databaseType | object | 必須 | データベースのタイプ（MaiAgent 内部利用タイプは含まれません） `postgresql`: PostgreSQL ; `mysql`: MySQL ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl  | string | 必須 | データベース接続文字列                                                                                                        |

**リクエスト構造の例**

```typescript
{
  "databaseType":  // データベースのタイプ（MaiAgent 内部利用タイプは含まれません）

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
}
```

**リクエストの値の例**

```json
{
  "database_type": "postgresql",
  "database_url": "postgresql://user:password@localhost:5432/dbname"
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/database-connection/test/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "database_type": "postgresql",
    "database_url": "postgresql://user:password@localhost:5432/dbname"
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "database_type": "postgresql",
    "database_url": "postgresql://user:password@localhost:5432/dbname"
  };

axios.post("https://api.maiagent.ai/api/v1/database-connection/test/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/database-connection/test/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "database_type": "postgresql",
      "database_url": "postgresql://user:password@localhost:5432/dbname"
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/database-connection/test/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "database_type": "postgresql",
            "database_url": "postgresql://user:password@localhost:5432/dbname"
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "status":  // 接続状態

* `success` - success
* `failed` - failed
  {
  }
  "responseTime"?: number (double) // レスポンス時間（秒） (任意)
  "message"?: string // 成功メッセージ (任意)
  "errorMessage"?: string // エラーメッセージ (任意)
}
```

**レスポンスの値の例**

```json
{
  "status": "success",
  "response_time": 0.123,
  "message": "PostgreSQL データベースへの接続に成功しました"
}
```

**ステータスコード: 400**

**レスポンス構造の例**

```typescript
{
  "detail"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "status": "success",
  "response_time": 0.123,
  "message": "PostgreSQL データベースへの接続に成功しました"
}
```

***

### データベース接続文字列の例の一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/database-examples/`

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/database-examples/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/database-examples/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/database-examples/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/database-examples/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
[
  {
    "databaseType"?:  // データベースのタイプの選択肢

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
    {
    }
    "databaseTypeExample": string // 例: postgresql://db_user:db_password@db_ip:db_port/db_name
  }
]
```

**レスポンスの値の例**

```json
[
  {
    "databaseType": {},
    "databaseTypeExample": "レスポンス文字列"
  }
]
```

**ステータスコード: 401**

**レスポンス構造の例**

```typescript
{
  "detail"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "detail": "レスポンス文字列"
}
```

***

### データベース接続文字列の例の一覧取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/database-examples/`

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/database-examples/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/database-examples/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/database-examples/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/database-examples/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
[
  {
    "databaseType"?:  // データベースのタイプの選択肢

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
    {
    }
    "databaseTypeExample": string // 例: postgresql://db_user:db_password@db_ip:db_port/db_name
  }
]
```

**レスポンスの値の例**

```json
[
  {
    "databaseType": {},
    "databaseTypeExample": "レスポンス文字列"
  }
]
```

**ステータスコード: 401**

**レスポンス構造の例**

```typescript
{
  "detail"?: string // 任意
}
```

**レスポンスの値の例**

```json
{
  "detail": "レスポンス文字列"
}
```

***

### 特定の接続文字列の例の取得 <a href="#undefined" id="undefined"></a>

GET `/api/database-examples/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                              |
| ------ | -- | ------ | ------------------------------- |
| `id`   | ✅  | string | この データベース接続の例 を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/database-examples/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/database-examples/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/database-examples/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/database-examples/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "databaseType"?:  // データベースのタイプの選択肢

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
  {
  }
  "databaseTypeExample": string // 例: postgresql://db_user:db_password@db_ip:db_port/db_name
}
```

**レスポンスの値の例**

```json
{
  "databaseType": {},
  "databaseTypeExample": "レスポンス文字列"
}
```

***

### 特定の接続文字列の例の取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/database-examples/{id}/`

#### パラメータ

| パラメータ名 | 必須 | タイプ    | 説明                              |
| ------ | -- | ------ | ------------------------------- |
| `id`   | ✅  | string | この データベース接続の例 を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/database-examples/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/database-examples/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/database-examples/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/database-examples/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "databaseType"?:  // データベースのタイプの選択肢

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
  {
  }
  "databaseTypeExample": string // 例: postgresql://db_user:db_password@db_ip:db_port/db_name
}
```

**レスポンスの値の例**

```json
{
  "databaseType": {},
  "databaseTypeExample": "レスポンス文字列"
}
```

***

### AI アシスタントのデータベース設定の一覧取得 <a href="#ai" id="ai"></a>

GET `/api/chatbots/{chatbotPk}/databases/`

#### パラメータ

| パラメータ名      | 必須 | タイプ     | 説明                                             |
| ----------- | -- | ------- | ---------------------------------------------- |
| `chatbotPk` | ✅  | string  | この Chatbot ID を識別する UUID 文字列です                 |
| `page`      | ❌  | integer | A page number within the paginated result set. |
| `pageSize`  | ❌  | integer | Number of results to return per page.          |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "name": string // 表示用の名前。例: メイン業務DB、分析DB
      "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
      {
      }
      "databaseUrl": string // データベース接続文字列
      "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
      "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列",
      "databaseType": {},
      "databaseUrl": "レスポンス文字列",
      "includeTables": null,
      "isActive": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### AI アシスタントのデータベース設定の一覧取得 <a href="#ai" id="ai"></a>

GET `/api/v1/chatbots/{chatbotPk}/databases/`

#### パラメータ

| パラメータ名      | 必須 | タイプ     | 説明                                             |
| ----------- | -- | ------- | ---------------------------------------------- |
| `chatbotPk` | ✅  | string  | この Chatbot ID を識別する UUID 文字列です                 |
| `page`      | ❌  | integer | A page number within the paginated result set. |
| `pageSize`  | ❌  | integer | Number of results to return per page.          |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/?page=1&pageSize=1", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "count": integer
  "next"?: string (uri) // 任意
  "previous"?: string (uri) // 任意
  "results": [
    {
      "id": string (uuid)
      "name": string // 表示用の名前。例: メイン業務DB、分析DB
      "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
      {
      }
      "databaseUrl": string // データベース接続文字列
      "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
      "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
      "createdAt": string (timestamp)
      "updatedAt": string (timestamp)
    }
  ]
}
```

**レスポンスの値の例**

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "レスポンス文字列",
      "databaseType": {},
      "databaseUrl": "レスポンス文字列",
      "includeTables": null,
      "isActive": false,
      "createdAt": "レスポンス文字列",
      "updatedAt": "レスポンス文字列"
    }
  ]
}
```

***

### AI アシスタントのデータベース設定の追加 <a href="#ai" id="ai"></a>

POST `/api/chatbots/{chatbotPk}/databases/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                             |
| ----------- | -- | ------ | ------------------------------ |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 必須 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 必須 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 必須 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.post("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### AI アシスタントのデータベース設定の追加 <a href="#ai" id="ai"></a>

POST `/api/v1/chatbots/{chatbotPk}/databases/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                             |
| ----------- | -- | ------ | ------------------------------ |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 必須 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 必須 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 必須 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X POST "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.post("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.post(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->post("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 201**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定のデータベース設定の取得 <a href="#undefined" id="undefined"></a>

GET `/api/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### 特定のデータベース設定の取得 <a href="#undefined" id="undefined"></a>

GET `/api/v1/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X GET "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

axios.get("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.get(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->get("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース設定の更新 <a href="#undefined" id="undefined"></a>

PUT `/api/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 必須 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 必須 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 必須 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.put("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース設定の更新 <a href="#undefined" id="undefined"></a>

PUT `/api/v1/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 必須 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 必須 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 必須 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PUT "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.put("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.put(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->put("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース設定の部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 任意 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 任意 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 任意 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name"?: string // 表示用の名前。例: メイン業務DB、分析DB (任意)
  "databaseType"?:  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
  {
  }
  "databaseUrl"?: string // データベース接続文字列 (任意)
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.patch("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース設定の部分更新 <a href="#undefined" id="undefined"></a>

PATCH `/api/v1/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### リクエスト内容

**リクエストパラメータ**

| フィールド         | タイプ     | 必須 | 説明                                                                                                                                                           |
| ------------- | ------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name          | string  | 任意 | 表示用の名前。例: メイン業務DB、分析DB                                                                                                                                       |
| databaseType  | object  | 任意 | データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent `postgresql`: PostgreSQL ; `mysql`: MySQL ; `maiagent`: MaiAgent ; `oracle`: Oracle ; `mssql`: MSSQL; |
| databaseUrl   | string  | 任意 | データベース接続文字列                                                                                                                                                  |
| includeTables | object  | 任意 | クエリ対象のデータテーブルのリストを指定します。形式: {"tables": \["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません                                       |
| isActive      | boolean | 任意 | 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります                                                                                                                  |

**リクエスト構造の例**

```typescript
{
  "name"?: string // 表示用の名前。例: メイン業務DB、分析DB (任意)
  "databaseType"?:  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL (任意)
  {
  }
  "databaseUrl"?: string // データベース接続文字列 (任意)
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
}
```

**リクエストの値の例**

```json
{
  "name": "サンプル名",
  "databaseType": {},
  "databaseUrl": "サンプル文字列",
  "includeTables": null,
  "isActive": true
}
```

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X PATCH "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  }'

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
};

// リクエスト内容 (payload)
const data = {
    "name": "サンプル名",
    "databaseType": {},
    "databaseUrl": "サンプル文字列",
    "includeTables": null,
    "isActive": true
  };

axios.patch("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエスト内容 (payload)
data = {
      "name": "サンプル名",
      "databaseType": {},
      "databaseUrl": "サンプル文字列",
      "includeTables": null,
      "isActive": true
    }

response = requests.patch(url, json=data, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->patch("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY',
            'Content-Type' => 'application/json'
        ],
        'json' => {
            "name": "サンプル名",
            "databaseType": {},
            "databaseUrl": "サンプル文字列",
            "includeTables": null,
            "isActive": true
        }
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

**ステータスコード: 200**

**レスポンス構造の例**

```typescript
{
  "id": string (uuid)
  "name": string // 表示用の名前。例: メイン業務DB、分析DB
  "databaseType":  // データベースのタイプの選択肢: MySQL、PostgreSQL、MSSQL、Oracle、MaiAgent

* `postgresql` - PostgreSQL
* `mysql` - MySQL
* `maiagent` - MaiAgent
* `oracle` - Oracle
* `mssql` - MSSQL
  {
  }
  "databaseUrl": string // データベース接続文字列
  "includeTables"?: object // クエリ対象のデータテーブルのリストを指定します。形式: {"tables": ["table1", "table2"]}。MaiAgent タイプではアップロードされたファイルから自動的に取得されるため、手動で設定する必要はありません (任意)
  "isActive"?: boolean // 無効にすると、このデータベースは Text-to-SQL クエリで使用されなくなります (任意)
  "createdAt": string (timestamp)
  "updatedAt": string (timestamp)
}
```

**レスポンスの値の例**

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "レスポンス文字列",
  "databaseType": {},
  "databaseUrl": "レスポンス文字列",
  "includeTables": null,
  "isActive": false,
  "createdAt": "レスポンス文字列",
  "updatedAt": "レスポンス文字列"
}
```

***

### データベース設定の削除 <a href="#undefined" id="undefined"></a>

DELETE `/api/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***

### データベース設定の削除 <a href="#undefined" id="undefined"></a>

DELETE `/api/v1/chatbots/{chatbotPk}/databases/{id}/`

#### パラメータ

| パラメータ名      | 必須 | タイプ    | 説明                                    |
| ----------- | -- | ------ | ------------------------------------- |
| `chatbotPk` | ✅  | string | この Chatbot ID を識別する UUID 文字列です        |
| `id`        | ✅  | string | この Chatbot のデータベース設定を識別する UUID 文字列です。 |

#### コードサンプル

{% tabs %}
{% tab title="Shell/Bash" %}

```bash
# API 呼び出しの例 (Shell)
curl -X DELETE "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 実行前に YOUR_API_KEY を置き換え、リクエストデータを確認してください。
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

// リクエストヘッダーの設定
const config = {
  headers: {
    'Authorization': 'Api-Key YOUR_API_KEY'
  }
};

// リクエスト内容 (payload)
const data = null;

axios.delete("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", data, config)
  .then(response => {
    console.log('レスポンスの取得に成功しました:');
    console.log(response.data);
  })
  .catch(error => {
    console.error('リクエストでエラーが発生しました:');
    console.error(error.response?.data || error.message);
  });
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/"
headers = {
    "Authorization": "Api-Key YOUR_API_KEY"
}


response = requests.delete(url, headers=headers)
try:
    print("レスポンスの取得に成功しました:")
    print(response.json())
except Exception as e:
    print("リクエストでエラーが発生しました:", e)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

try {
    $response = $client->delete("https://api.maiagent.ai/api/v1/chatbots/550e8400-e29b-41d4-a716-446655440000/databases/550e8400-e29b-41d4-a716-446655440000/", [
        'headers' => [
            'Authorization' => 'Api-Key YOUR_API_KEY'
        ]
    ]);
    
    $data = json_decode($response->getBody(), true);
    echo "レスポンスの取得に成功しました:\n";
    print_r($data);
} catch (Exception $e) {
    echo 'リクエストでエラーが発生しました: ' . $e->getMessage();
}
?>
```

{% endtab %}
{% endtabs %}

#### レスポンス内容

| ステータスコード | 説明               |
| -------- | ---------------- |
| 204      | No response body |

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.maiagent.ai/api/api-doc-ja/api-reference/zi-liao-ku.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
