ライフサイクルプロファイルの作成
新しいライフサイクルプロファイルを作成します。この操作には管理者権限が必要です。
必要な権限
ADMIN以上のロールが必要です。
HTTPリクエスト
POST /api/sonar/lifecycle-profiles
cURL例
curl -H "Authorization: Bearer <API_KEY>" \
-d name="default" \
-d description="default profile" \
-d configs="{"hot": {"retention": 10}, "cold": {"base_path": "/cold", "retention": 375, "options": {"quota_per_node_unit": "tb", "quota_per_node": 200, "direct_copy": false}}}" \
-X POST "https://HOSTNAME/api/sonar/lifecycle-profiles"
リクエストパラメータ
| キー | 必須 | 型 | 説明 | 備考 |
|---|---|---|---|---|
| guid | × | 文字列 | ライフサイクルプロファイルGUID | 36文字。デフォルトはランダム生成 |
| name | ○ | 文字列 | ライフサイクルプロファイル表示名 | 最小1文字、最大50文字 |
| description | × | 文字列 | ライフサイクルプロファイルの説明 | 最大2,000文字 |
| configs | × | 文字列キー/値 | 設定値 | JSON形式文字列 |
Tip
現在、nameが "default" のプロファイルのみ使用できます。
configsはJSON形式の文字列であり、以下の属性を含みます:
- hot/warm/cold(マップ):ストレージ階層(Hot、Warm、Cold)ごとの設定
- base_path(文字列、必須):データ保存の基本パス。warm/cold階層でのみ指定可能で、hot階層では使用できません。
- retention(32ビット整数、必須):日単位のデータ保持期間。作成日を基準に保持期間を過ぎると下位階層へ移動(1~9999日)
- options(マップ、任意):ライフサイクルプロファイルの追加オプション
- quota_per_node(32ビット整数、任意):ノード単位で割り当てるストレージ容量。設定時は
quota_per_node_unitも必須です。 - quota_per_node_unit(文字列、任意):quota_per_nodeの単位。
mb、gb、tbのいずれかを指定してください。quota_per_node設定時は必須です。 - direct_copy(ブーリアン、任意):ロールオーバー時に直接コピーするかどうか。デフォルト値は階層ごとに異なります(warm:
false、cold:true)。 - rollover_on_diskfull(ブーリアン、任意):ディスク容量不足時にロールオーバーを実行するか(デフォルト:
false)
- quota_per_node(32ビット整数、任意):ノード単位で割り当てるストレージ容量。設定時は
正常応答
{}
エラー応答
guidパラメータの型が不正な場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-param-type",
"error_msg": "guid should be guid type."
}
guidが重複している場合
HTTPステータスコード 500 応答
{
"error_code": "illegal-state",
"error_msg": "duplicated profile guid: 4ab572a7-f052-4f90-82db-320444e229a3"
}
nameパラメータ値の長さが不正な場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "'name' must be less than or equal to 50 characters."
}
nameが重複している場合
HTTPステータスコード 500 応答
{
"error_code": "illegal-state",
"error_msg": "duplicated profile name: default"
}
descriptionパラメータ値の長さが不正な場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "'description' must be less than or equal to 2000 characters."
}
configsのJSONパースエラーが発生した場合
HTTPステータスコード 500 応答
{
"error_code": "illegal-state",
"error_msg": "invalid-configs"
}
base_pathをHotストレージ階層に設定した場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "'base_path' cannot be set in the 'hot' tier."
}
retention値が負の場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "'retention' must be grater than 0: warm"
}
quota_per_node値が負の場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "'quota_per_node' must be grater than 0"
}
quota_per_node_unitが未設定の場合
HTTPステータスコード 500 応答
{
"error_code": "illegal-state",
"error_msg": "'quota_per_node_unit' must also be set, if 'quota_per_node' is configured."
}
サポートされていないquota_per_node_unitタイプの場合
HTTPステータスコード 400 応答
{
"error_code": "invalid-argument",
"error_msg": "unsupported 'quota_per_node_unit' type: invalid_unit"
}
ライフサイクルプロファイル作成権限がない場合
HTTPステータスコード 500 応答
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}