# インポートエクスポートコマンド

### 概要

Keeperコマンダーには、ボルトデータの移行や管理に使えるCLIコマンドが複数あります。さまざまな形式からデータをインポートしたり、ボルトの内容をエクスポートしたり、共有フォルダ権限やカスタムテンプレートを同期したりできます。

### コマンド

以下のコマンドを扱います。

1. [インポートコマンド](#import-command)
2. [エクスポートコマンド](#export-command)
3. [メンバーシップのダウンロードコマンド](#download-membership-command)
4. [メンバーシップの適用コマンド](#apply-membership-command)
5. [レコードタイプのダウンロードコマンド](#download-record-types-command)
6. [レコードタイプの取り込みコマンド](#load-record-types-command)

### インポートコマンド <a href="#import-command" id="import-command"></a>

ローカルファイルまたは外部のパスワードマネージャーから、レコードとフォルダをKeeperボルトにインポートします。

<details>

<summary>DotNet CLI</summary>

**注:** このコマンドの.NET実装でインポートできるのはJSONファイルのみです。

**コマンド:** `import`

**フラグ:**

`filename`: KeeperへインポートするJSONを含むファイル名

**例:**

```bash
MyVault> import <file_path.json>
```

</details>

<details>

<summary>DotNet SDK</summary>

**注:** この関数でインポートできるのは、JSON形式のレコードのみです。

**メソッド:**

```csharp
public static ImportFile LoadJsonDictionary(IDictionary<string, object> importFile)
```

**フラグ:**

* `importFile`: 個々のレコードやフォルダなどを構成するオブジェクトの辞書

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Import-KeeperVault`

**エイリアス:** `kimport`

**パラメータ:**

| フラグ         | 要否 | 説明                            |
| ----------- | -- | ----------------------------- |
| `-FileName` | 必須 | インポートするJSONファイルのパス            |
| `-Force`    | 任意 | ファイルが50MBより大きい場合の確認プロンプトを省略する |

**例:**

{% code expandable="true" %}

```ps1
PS > Import-KeeperVault "v1.json"
Importing 1 record(s), 0 shared folder(s)...

Import Summary:

Import completed successfully.
```

{% endcode %}

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `import`

**パラメータ:**

* `name`: ファイル名 (json, csv, keepass, 1password)、アカウント名 (lastpass\_lib)、または URL (Thycotic)

**オプション:**

* `--display-csv`, `-dc`: KeeperCSVインポート手順を表示する
* `--display-json`, `-dj`: KeeperJSONインポート手順を表示する
* `--format`: ファイル形式。`json`, `csv`, `keepass`, `lastpass`, `1password`, `bitwarden`, `thycotic` のいずれか
* `--dry-run`: インポートせず、対象となるレコードを表示する
* `--folder`: `IMPORT_INTO` で指定した別フォルダへインポートする
* `--filter-folder`: `FILTER_FOLDER` で指定したフォルダ内のデータのみインポートする
* `-s`, `--shared`: フォルダをKeeper共有フォルダとしてインポートする
* `-p`, `--permissions`: `PERMISSIONS` で共有フォルダの既定権限を指定。ユーザー管理 (U)、レコード管理 (R)、編集 (E)、共有 (S)、すべて (A)、なし (N)
* `--record-type`: `RECORD_TYPE` でレガシーレコードを指定のレコードタイプとしてインポートする。省略時は login
* `--show-skipped`: スキップしたレコードを表示する

**例:**

```sh
My Vault> import /Users/user/Desktop/records.json --format json
Record "My Record" was skipped: A full record match already exists
```

</details>

<details>

<summary>Python SDK</summary>

**使用するクラス:**

JSONレコードをインポートするには以下のクラスを使います。

```python
class KeeperJsonImporter(import_data.BaseFileImporter, KeeperJsonMixin):
```

LastPassからレコードをインポートするには以下のクラスを使います。

```python
class LastPassImporter(BaseImporter):
```

KeePassからインポートするには以下のクラスを使います。

```python
class KeepassImporter(import_data.BaseFileImporter):
```

このクラスのオブジェクトを、以下の関数に渡すインポーターとして使えます。

**関数:**

`keepersdk.importer.import_utils.py`

```python
def do_import_vault(vault: vault_online.VaultOnline,
                    data_source: import_data.BaseImporter,
                    *,
                    import_logger: Optional[import_data.IImportLogger]=None,
                    filter_folder: Optional[str]=None,
                    **kwargs
                    ) -> None:
```

`data_source` には、あらかじめ作成したインポーターインスタンスを指定します。

**引数**

* `vault`: 認証済みの `VaultOnline` インスタンス
* `data_source`: インポーターインスタンス
* `import_logger`: (任意) `ImportData` 用のロガーオブジェクト

</details>

### エクスポートコマンド <a href="#export-command" id="export-command"></a>

このコマンドで、ボルトデータ (レコード、フォルダ、共有フォルダ) をKeeperからローカルへエクスポートできます。

<details>

<summary>DotNet CLI</summary>

**注:** このコマンドの.NET実装は、レコード・フォルダ・共有フォルダ情報を含むボルトデータをJSONでエクスポートします。

**コマンド:** `export`

**フラグ:**

* **filename** (必須): ボルトデータをエクスポートする出力JSONファイル名
* **--force** または **-f** (任意): 確認なしで既存ファイルを上書きする
* **--exclude-shared-folders** または **-x** (任意): エクスポートから共有フォルダを除く

**例:**

```
MyVault> export vault_backup.json

MyVault> export vault_backup.json --force

MyVault> export vault_backup.json --exclude-shared-folders
```

</details>

<details>

<summary>DotNet SDK</summary>

**注:** この関数は、ボルトのレコード、フォルダ、共有フォルダ情報をJSON形式でエクスポートします。

**メソッド:**

1. **JSON文字列へエクスポート:**

```csharp
public static async Task<string> ExportVaultToJson(this VaultOnline vault, 
    IEnumerable<string> recordUids = null,
    bool includeSharedFolders = true,
    Action<Severity, string> logger = null)
```

2. **ファイルへエクスポート:**

```csharp
public static async Task ExportVaultToFile(this VaultOnline vault,
    string filename,
    IEnumerable<string> recordUids = null,
    bool includeSharedFolders = true,
    Action<Severity, string> logger = null)
```

**フラグ:**

* **vault**: 認証済みの `VaultOnline` インスタンス
* **filename**: 出力JSONファイルのパス
* **recordUids**: エクスポートする特定のレコードUIDのリスト (任意、nullのときはすべて)
* **includeSharedFolders**: 共有フォルダ情報を含めるか (既定: true)
* **logger**: 任意のログコールバック

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Export-KeeperVault`

**エイリアス:** `kexport`

**パラメータ**

<table><thead><tr><th width="226.9501953125">パラメータ</th><th>説明</th></tr></thead><tbody><tr><td><strong>FileName</strong></td><td>出力パスまたはファイル名。末尾が <code>.json</code> でなければ <code>.json</code> を付与する。</td></tr><tr><td><strong>Force</strong></td><td>確認なしで既存ファイルを上書きする。</td></tr><tr><td><strong>ExcludeSharedFolders</strong></td><td>レコードのみエクスポートし、JSONから共有フォルダを省略する。</td></tr></tbody></table>

**例**

**基本的なエクスポート**

ボルトを `vault_backup.json` にエクスポートします。ファイルが存在する場合は上書き確認が表示されます。

```powershell
Export-KeeperVault -FileName "vault_backup.json"
```

フルパスを指定する例です。

```powershell
Export-KeeperVault -FileName "C:\Backups\keeper_vault.json"
```

**確認なしで上書き**

既存ファイルを確認なしで上書きするには `-Force` を使います。

```powershell
Export-KeeperVault -FileName "vault.json" -Force
```

**レコードのみ (共有フォルダなし)**

共有フォルダのデータを除き、ボルトのレコードのみエクスポートします。

```powershell
Export-KeeperVault -FileName "records_only.json" -ExcludeSharedFolders
```

**エイリアスの使用**

```powershell
kexport -FileName "backup" -Force
```

***

**出力**

コマンドは指定パスにJSONを書き込んだあと、以下のようなサマリーを表示します。

```
Exporting vault data...

Export Summary:
    Records Exported: 42
    Shared Folders: 5
    File Size: 125,340 bytes
    Output File: C:\Backups\vault_backup.json

Export completed successfully.
```

`-ExcludeSharedFolders` を指定した場合は、共有フォルダ件数の行は表示されません。

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `export`

**パラメータ:**

* `name`: ファイル名。省略時はコンソールへ出力

**オプション:**

* `--format {json,csv,keepass}`: ファイル形式
* `--max-size MAX_SIZE`: 添付ファイルの最大サイズ。例: 100K, 50M, 2G。既定: 10M
* `--file-password FILE_PASSWORD`: エクスポートファイルのパスワード
* `--zip`: 添付ファイル用にZIPアーカイブを作成する (JSONのみ)
* `--force`: 対話を省略し「yes」とみなす
* `--folder FOLDER`: 指定フォルダ内のデータのみエクスポートする

**例:**

```bash
My Vault> export "export-command.json" --folder "example folder" --format json
5 records exported
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `KeeperJsonExporter.vault_export`

```python
from keepersdk.importer import keeper_format

exporter = KeeperJsonExporter
exporter.vault_export(items: List[Union[import_data.Record, import_data.SharedFolder, import_data.Team]])
```

</details>

### メンバーシップのダウンロードコマンド <a href="#download-membership-command" id="download-membership-command"></a>

共有フォルダの共有設定をダウンロードします。内容には以下が含まれます。

* アクセス権を持つユーザー**または**チーム
* 権限 (読み取り専用、編集、管理)

<details>

<summary>DotNet CLI</summary>

**注:** .NET実装は、移行向けに共有フォルダとチームのメンバーシップ情報をダウンロードします。データ取得元は現時点でKeeperのみです。

**コマンド:** `download-membership`

**パラメータ:**

* **`--source`:** メンバーシップの取得元。有効値: `keeper`, `lastpass`, `thycotic` (現時点で実装済みは `keeper` のみ)

**フラグ:**

* `filename`: 出力JSONファイル名 (既定: `shared_folder_membership.json`)
* `--force` または `-f`: 既存ファイルを上書きする。未指定時は既存ファイルとマージする
* `--folders-only`: 共有フォルダのみダウンロードし、チームをスキップする
* `--permissions` または `-p`: 共有フォルダ権限を強制する。値: `U` (ユーザー管理)、`R` (レコード管理)
* `--restrictions` または `-r`: 共有フォルダ制限を強制する。値: `U` (ユーザー管理)、`R` (レコード管理)
* `--sub-folder`: 共有サブフォルダの扱い。値: `ignore`, `flatten`

**例:**

```
MyVault> download-membership --source keeper

MyVault> download-membership --source keeper membership.json

MyVault> download-membership --source keeper --force --folders-only

MyVault> download-membership --source keeper --permissions UR

MyVault> download-membership --source keeper --sub-folder flatten
```

</details>

<details>

<summary>DotNet SDK</summary>

**注:** この関数はボルトから共有フォルダとチームのメンバーシップ情報をダウンロードします。

**メソッド:**

1. **ExportFileオブジェクトへダウンロード:**

```csharp
public static async Task<ExportFile> DownloadMembership(this VaultOnline vault,
    DownloadMembershipOptions options = null,
    Action<Severity, string> logger = null)
```

2. **JSON文字列へダウンロード:**

```csharp
public static async Task<string> DownloadMembershipToJson(this VaultOnline vault,
    DownloadMembershipOptions options = null,
    Action<Severity, string> logger = null)
```

3. **ファイルへダウンロード:**

```csharp
public static async Task DownloadMembershipToFile(this VaultOnline vault,
    string filename,
    DownloadMembershipOptions options = null,
    Action<Severity, string> logger = null)
```

4. **既存ファイルとマージ:**

```csharp
public static async Task MergeMembershipToFile(this VaultOnline vault,
    string filename,
    DownloadMembershipOptions options = null,
    Action<Severity, string> logger = null)
```

**DownloadMembershipOptions:**

* **FoldersOnly**: 共有フォルダーのみ含め、チームをスキップする (既定: false)
* **ForceManageUsers**: 全ユーザーにユーザー管理権限を強制する (nullable bool)
* **ForceManageRecords**: 全ユーザーにレコード管理権限を強制する (nullable bool)
* **SubFolderHandling**: サブフォルダ処理モード。値は `"ignore"` または `"flatten"`

**フラグ:**

* **vault**: 認証済みの `VaultOnline` インスタンス
* **filename**: 出力JSONファイルのパス
* **options**: ダウンロード操作の設定
* **logger**: 任意のログコールバック

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Export-KeeperMembership`

**フラグ:**

* `-FileName` (任意, 既定: `shared_folder_membership.json`) - 出力JSONファイル名。拡張子`.json`が省略されていれば自動付与。
* `-Force` (任意) - 既存ファイルを上書きする。このフラグがない場合は既存ファイルとマージする。
* `-FoldersOnly` (任意) - 共有フォルダのみダウンロードし、チームをスキップする
* `-ForceManageUsers` (任意) - すべての共有フォルダですべてのユーザーに「ユーザー管理」権限を強制有効にする
* `-ForceManageRecords` (任意) - すべての共有フォルダですべてのユーザーに「レコード管理」権限を強制有効にする
* `-RestrictManageUsers` (任意) - すべての共有フォルダですべてのユーザーに「ユーザー管理」権限を強制無効にする
* `-RestrictManageRecords` (任意) - すべての共有フォルダですべてのユーザーに「レコード管理」権限を強制無効にする
* `-SubFolderHandling` (任意) - 共有サブフォルダの扱い。有効値: `ignore`, `flatten`

**注:**

* `-ForceManageUsers` と `-RestrictManageUsers` は同時に指定できない
* `-ForceManageRecords` と `-RestrictManageRecords` は同時に指定できない
* 出力ファイルが存在し、`-Force` がない場合、新データはUIDでマージされる (新規エントリは上書き、追加エントリは保持)
* 親ディレクトリが存在しなければ自動作成される

**例:**

```powershell
PS> Export-KeeperMembership                  
Downloading shared folder membership from Keeper...

Download Summary:
    Shared Folders: 6
    Teams: 7
    Output File: /Users/satish/Desktop/sdk-dotnet/keeper-sdk-dotnet/shared_folder_membership.json

Download membership completed successfully.
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `download-membership`

**パラメータ:**

* `--source {keeper,lastpass,thycotic}`: 共有フォルダのメンバーシップの取得元

**オプション:**

* `-p`, `--permissions`: `PERMISSIONS` で共有フォルダ権限を強制する。ユーザー管理 (U)、レコード管理 (R)
* `-r`, `--restrictions`: `RESTRICTIONS` で共有フォルダ制限を強制する。ユーザー管理 (U)、レコード管理 (R)
* `--folders-only`: 共有フォルダのみ出力する。チームをスキップする
* `--sub-folder`, `-sf {ignore,flatten}`: 共有サブフォルダの扱い
* `name`: 出力ファイル名。省略時は `shared_folder_membership.json`

**例:**

```bash
My Vault> download-membership --source keeper
10 shared folder memberships added.
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `download_membership`

```python
download_membership(self, folders_only: Optional[bool] = False, **kwargs
                            ) -> Iterable[Union[import_data.SharedFolder, import_data.Team]]:
```

</details>

### メンバーシップの適用コマンド <a href="#apply-membership-command" id="apply-membership-command"></a>

`download-membership` で作成したJSONファイルから、共有フォルダ権限を復元または適用します。

* フォルダに正しいユーザー/チームを追加する
* 権限を自動設定する

#### JSONファイル形式

入力ファイルは有効なJSONで、トップレベルに `shared_folders` 配列が必要です。各共有フォルダは `uid` または `path` で識別でき、`permissions` 配列を含みます。

#### 構造

```json
{
  "shared_folders": [
    {
      "uid": "VPBeke23vou0z-zg2j30iA",
      "path": "My Shared Folder",
      "can_edit": true,
      "can_share": true,
      "manage_records": true,
      "manage_users": true,
      "permissions": [
        {
          "name": "user@company.com",
          "manage_records": true,
          "manage_users": true
        },
        {
          "uid": "team_uid_base64",
          "name": "Engineering Team",
          "manage_records": false,
          "manage_users": true
        }
      ]
    }
  ]
}
```

#### 共有フォルダオブジェクト

| フィールド            | 型       | 必須    | 説明                                                 |
| ---------------- | ------- | ----- | -------------------------------------------------- |
| `uid`            | string  | いいえ\* | 共有フォルダUID (base64url)。`uid` または `path` のいずれかを指定する。 |
| `path`           | string  | いいえ\* | 共有フォルダのパス (例: フォルダ名)。ボルト内の対応する共有フォルダにマッピングされる。     |
| `can_edit`       | boolean | いいえ   | フォルダレベルの編集フラグ                                      |
| `can_share`      | boolean | いいえ   | フォルダレベルの共有フラグ                                      |
| `manage_records` | boolean | いいえ   | フォルダレベルのレコード管理                                     |
| `manage_users`   | boolean | いいえ   | フォルダレベルのユーザー管理                                     |
| `permissions`    | array   | はい    | 適用するユーザー/チーム権限のリスト                                 |

\* 共有フォルダを特定するには、`uid` または `path` の少なくとも一方が必要。

#### 権限オブジェクト (ユーザー/チームごと)

| フィールド            | 型       | 必須  | 説明                                    |
| ---------------- | ------- | --- | ------------------------------------- |
| `name`           | string  | はい  | ユーザーのメールアドレス、またはチーム名 (ユーザー/チームの解決に使用) |
| `uid`            | string  | いいえ | チームUID (チーム用)。指定がある場合はチームの検索に使用。      |
| `manage_records` | boolean | いいえ | メンバーが共有フォルダでレコードを管理できるようにする           |
| `manage_users`   | boolean | いいえ | メンバーが共有フォルダでユーザーを管理できるようにする           |

#### サンプルファイル

```json
{
  "shared_folders": [
    {
      "path": "Team Credentials",
      "uid": "VPBeke23vou0z-zg2j30iA",
      "permissions": [
        {
          "name": "alice@company.com",
          "manage_records": true,
          "manage_users": true
        },
        {
          "name": "bob@company.com",
          "manage_records": false,
          "manage_users": true
        }
      ]
    }
  ]
}
```

<details>

<summary>DotNet CLI</summary>

**コマンド:** `apply-membership [filename] [options]`

**パラメータ:**

<table><thead><tr><th width="144.875">パラメータ</th><th>既定</th><th>説明</th></tr></thead><tbody><tr><td><code>filename</code></td><td><code>shared_folder_membership.json</code></td><td>JSONメンバーシップファイルのパス</td></tr><tr><td><code>--full-sync</code></td><td>false</td><td>指定すると、ボルトのメンバーシップをファイルの内容に合わせ、<strong>更新</strong>および<strong>削除</strong>も行う</td></tr></tbody></table>

**例:**

```console
My Vault> apply-membership /path/to/membership.json
//or 
My Vault> apply-membership --full-sync
//or
My Vault> apply-membership ./prod-membership.json --full-sync
```

</details>

<details>

<summary>DotNet SDK</summary>

**名前空間:** `KeeperSecurity.Vault`

**メソッド:** `KeeperApplyMembership.ApplyMembership` (`VaultOnline` 向け拡張)

```csharp
public static async Task<MembershipSummary> ApplyMembership(
    this VaultOnline vault,
    ImportFile importFile,
    ApplyMembershipOptions options = null)
```

**型:**

* **`ImportFile`** – 解析済みJSON入力 (`KeeperSecurity.Commands` から)。`SharedFolders` 配列を含む。
* **`ApplyMembershipOptions`** – 任意。`FullSync = true` でメンバーの更新・削除も行う。
* **`MembershipSummary`** – 結果: `TeamsAdded`, `UsersAdded`, `TeamsUpdated`, `UsersUpdated`, `TeamsRemoved`, `UsersRemoved`。

**例:**

```cs
using System;
using System.IO;
using System.Threading.Tasks;
using KeeperSecurity.Commands;
using KeeperSecurity.Utils;
using KeeperSecurity.Vault;

var fileName = "shared_folder_membership.json";
var jsonBytes = File.ReadAllBytes(fileName);
var importFile = JsonUtils.ParseJson<ImportFile>(jsonBytes);

var options = new ApplyMembershipOptions
{
    FullSync = true   // optional: also update and remove members
};

var membershipSummary = await vault.ApplyMembership(importFile, options);
```

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Import-KeeperMembership`

**パラメータ:**

* **`FileName`:** `download-membership` で出力したJSONメンバーシップファイルのパス。
* **`FullSync`:** 指定すると、ボルト側のメンバーシップをファイルの内容に合わせて更新・削除も行う。省略時は主に追加のみ。

**例:**

```
PS PowerCommander> Import-KeeperMembership -FileName "/<PATH_TO_JSON>/shared_folder_membership.json" -FullSync
Processing 1 shared folder(s)...

1 user(s) added to shared folders

Apply membership completed successfully.
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `apply-membership`

**パラメータ:**

* `name`: 入力ファイル名。省略時は `shared_folder_membership.json`

**オプション:**

* `--full-sync`: メンバーシップの更新と削除も行う。

**例:**

```bash
My Vault> apply-membership ./shared_folder_membership.json
1 user(s) added to shared folders
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** `import_user_permissions`

```python
from keepersdk.importer import import_utils
import_utils.import_user_permissions(vault: vault_online.VaultOnline,
                            shared_folders: List[import_data.SharedFolder],
                            full_sync=False) -> UserPermissionSummary:
```

</details>

### レコードタイプのダウンロードコマンド <a href="#download-record-types-command" id="download-record-types-command"></a>

カスタムレコードタイプ (サーバーログイン、SSH鍵など、特別なデータ用のテンプレート) をJSONファイルにダウンロードします。

<details>

<summary>DotNet CLI</summary>

**コマンド:** `download-record-types`

**パラメータ:**

* `source`: レコードタイプの取得元

**例:**

```sh
My Vault> download-record-types keeper
Downloaded 12 record types to "<some_path>/record_types.json"
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:**

```csharp
vault.RecordTypes.ToList()
```

**例:**

```csharp
var recordTypes = vault.RecordTypes.ToList();
// write recordTypes to file
```

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Export-KeeperRecordTypes`

**パラメータ:**

* **`Source`:** 現時点で利用できるのは `keeper` のみ。
* **`FileName`:** 出力先のファイル名。フルパスでも可。
* **`SSHKeyAsFile`:** SSH鍵をレコードデータとして保持するか、ファイルとして保存するか。`true` のときファイルとしてダウンロードする。

**例:**

```powershell
PS> Export-KeeperRecordTypes 
Downloaded 12 record types to '/<some path>/record_types.json'
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `download-record-types`

**パラメータ:**

* `--source {keeper}`: レコードタイプの取得元。現時点で利用できるのは `keeper` のみ。

**オプション:**

* `--ssh-key-file`: SSH鍵をレコードのフィールドではなく、ファイル添付として保存する
* `--name`: 出力ファイル名を指定する。省略時は `record_types.json`

**例:**

```bash
My Vault> download-record-types --name record_type.json --source keeper
Downloaded 13 record types to "file-path"
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** 非対応

</details>

### レコードタイプの取り込みコマンド <a href="#load-record-types-command" id="load-record-types-command"></a>

JSONファイルからカスタムレコードタイプをKeeperにアップロードします。

* 別アカウントで作成したテンプレート
* チーム間でテンプレートを揃えたい場合

<details>

<summary>DotNet CLI</summary>

**コマンド:** `load-record-types`

**パラメータ:**

* `--help`: このヘルプを表示する
* `--version`: バージョン情報を表示する
* 位置引数 (第1引数): レコードタイプ定義を読み込むファイルのパス

**例:**

```sh
My Vault> load-record-types ../custom-record.json
Record types loaded: 1
Existing Record Types which are skipped: None
Failed Record Types: None
```

</details>

<details>

<summary>DotNet SDK</summary>

**メソッド:**

```csharp
Task<string> AddRecordType(string recordTypeData)
```

**フラグ:**

* `recordTypeData`

**例:**

```csharp
var parsedRecord = RecordTypeService.CreateRecordTypeObject(recordType);
var recordTypeID = await context.Vault.AddRecordType(Encoding.UTF8.GetString(JsonUtils.DumpJson(parsedRecord)));
```

</details>

<details>

<summary>PowerCommander</summary>

**コマンド:** `Import-KeeperRecordTypes`

**フラグ:**

* `-FilePath`: レコードタイプファイルのパス

**例:**

```powershell
PS> Import-KeeperRecordTypes -FilePath ./record_type.json
```

</details>

<details>

<summary>Python CLI</summary>

**コマンド:** `load-record-types`

**パラメータ:**

* `--file FILE`: レコードタイプ定義を含むJSONファイルのパス

**例:**

```sh
My Vault> load-record-types --file ./record_type.json
Custom record types imported successfully. 1 record types were added.
```

</details>

<details>

<summary>Python SDK</summary>

**関数:** 非対応

</details>


---

# Agent Instructions: 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:

```
GET https://docs.keeper.io/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/import-export-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
