1. APIのアクセス(認証)について¶
Bearer認証を使用して、API実行を行う場合、各利用者向けの「APIのアクセス(認証)について - Bearer認証」 の参照して、認証方式を変更してください。
警告
API実行時の言語について
最終ログイン時の言語情報が参照されます。
Tip
作成直後のユーザー情報で、Basic認証を使用したAPI実行について
初回ログイン後の設定が行われていない為、認証エラーとなります。 「初回ログイン」参照して、必要な対応を実施してください。
{
"data": null,
"message": "認証に失敗しました。",
"result": "401-00002",
"ts": "2023-10-13T08:19:22.913Z"
}
2. 登録、編集のAPI、関連APIの実行例¶
以下、登録、編集のAPI、及び関連APIの実行の例について記載します。
以下のAPI実行の説明において、認証方式は、Basic認証を使用しています。
Bearer認証を使用したAPIの実行を行う場合、「Bearer認証」を参照してください。
Tip
APIのエンドポイントで使用するメニュー名の確認方法ついて
「
」から該当するメニューのレコードを確認し、「 」の値を使用してください。
Tip
パラメータで使用する、JSONデータ、FOEMデータに関する補足
パラメータ指定時の形式、指定方法について
コンテンツタイプ、パラメータ指定の方法や、curlの実行環境等により、適切なもので対応してください。
JSONデータをJSONファイルで保存し、パラメータにJSONファイルを指定して使用する
JSONデータのシングルクォーテーション「'」が使用できない場合、ダブルクォーテーション「 "」 を用いて、かつ内部で使用されたダブルクォーテーションをエスケープした書き方に変更する
末尾の「\」、「^」については、ご利用環境で適切なものに変更する
以下、コンテンツタイプによるパラメータの指定方法の詳細は、「Content-Typeによるパラメータの構造の違いについて」を参照してください。
curl -X POST \
"http://servername/api/organization_1/workspaces/workspace_1/ita/menu/playbook_files/maintenance/all/" \
-H "Authorization: Basic dXNlcl9pZDpwYXNzd29yZA==" \
-H "Content-Type: application/json" \
--data-raw [ { \"file\": { \"playbook_file\": \"LSBuYW1lOiBydW4gImVjaG8iCiAgY29tbWFuZDogZWNobyB7eyBWQVJfU1RSXzEgfX0=\" }, \"parameter\": { \"discard\": \"0\", \"item_no\": null, \"playbook_name\": \"echo\", \"playbook_file\": \"echo.yml\", \"remarks\": null, \"last_update_date_time\": null, \"last_updated_user\": null }, \"type\": \"Register\" } ]
curl -X POST \
"http://servername/api/organization_1/workspaces/workspace_1/ita/menu/playbook_files/maintenance/all/" \
-H "Authorization: Basic dXNlcl9pZDpwYXNzd29yZA==" \
-H "Content-Type: application/json" \
-d @playbook_files_sample.json
[
{
"file": {
"playbook_file": "LSBuYW1lOiBydW4gImVjaG8iCiAgY29tbWFuZDogZWNobyB7eyBWQVJfU1RSXzEgfX0="
},
"parameter": {
"discard": "0",
"item_no": null,
"playbook_name": "echo",
"playbook_file": "echo.yml",
"remarks": null,
"last_update_date_time": null,
"last_updated_user": null
},
"type": "Register"
}
]
curl -X POST \
"http://servername/api/organization_1/workspaces/workspace_1/ita/menu/playbook_files/maintenance/all/" \
-H "Authorization: Basic dXNlcl9pZDpwYXNzd29yZA==" \
-F "json_parameters=[{\"parameter\":{\"discard\":\"0\",\"item_no\":null,\"playbook_name\":\"echo\",\"playbook_file\":\"echo.yml\",\"remarks\":null,\"last_update_date_time\":null,\"last_updated_user\":null},\"type\":\"Register\"}] " \
-F "0.playbook_file=@echo.yml"
3. パラメータ適用(API)¶
本APIは、オペレーションの生成からパラメータの適用までを行いConductor作業実行を行うAPIです。
尚、Conductor作業実行の完了確認は行いません。完了確認は、
より行って下さい。3.1. request形式¶
本APIのrequest形式についての説明を記載します。
項目 |
説明 |
---|---|
APIカテゴリ |
Apply |
API名 |
パラメータ適用 |
URL |
/api/{organizaiton_id}/workspaces/{workspace_id}/ita/apply/ |
method |
POST |
headers |
content-type: application/json
Authorization: Basic認証またはBearer認証
Bearer認証を使用したAPIの実行を行う場合、「Bearer認証」を参照してください。
|
Request body |
Request bodyを参照して下さい。
|
3.2. Request body¶
Request bodyについての説明を記載します。
キー |
項目 |
必須 |
型 |
説明 |
||
---|---|---|---|---|---|---|
conductor_class_name |
Conductor名 |
○ |
文字列 |
作業実行を要求するConductor名を指定します。
Conductor名は、
に登録されている を指定します。
に登録されていないConductor名を指定した場合はエラーになります。 |
||
operation_name |
オペレーション名 |
文字列 |
作業実行を行うオペレーション名を指定します。
|
|||
schedule_date |
予約日時 |
文字列 |
Conductor作業実行の予約日時を yyyy/mm/dd hh:mi:ss で指定します。
指定しない場合や省略した場合は、即時実行となります。
|
|||
parameter_info |
パラメータ情報 |
配列 |
登録/更新/廃止/復活の操作を行うパラメータ情報を指定します。
複数メニューが対象で順序性を考慮する必要がある場合は、配列の順番で調整して下さい。
Conductor作業実行のみを行う場合は省略して下さい。
|
|||
※1 |
(menu_name_rest) |
メニュー名(REST) |
配列 |
の を指定します。 複数レコードが対象で順序性を考慮する必要がある場合は、配列の順番で調整して下さい。
|
||
type |
レコード操作種別 |
文字列 |
以下のいずれかを指定します。
登録の場合: Register
更新の場合: Update
廃止の場合: Discard
復活の場合: Restore
|
|||
file |
アップロードファイル |
辞書 |
アップロードファイルカラムがある場合、カラムキーと値の組み合わせを指定します。
値には、ファイルデータをbase64でエンコードした文字列を指定します。
|
|||
parameter |
パラメータ |
辞書 |
対象メニューのカラムキーと値の組み合わせを指定します。
operation_nameで「新規オペレーション」や「オペレーション自動採番」を指定した場合、オペレーション名に相当するカラムキーと値の組み合わせの指定は必要ありません。
また、conductor_class_nameで、Conductor call function(以降、サブConductorと称す。)が含まれるConductor名を指定した場合で、サブConductorの個別オペレーションを明示的に指定する必要がある場合、該当のオペレーション名を指定します。
|
Tip
※1 (menu_name_rest) からparameterまでのRequest bodyは、以下のレコード操作を行うAPIと同じ仕様です。
・「Menu MaintenanceAll」
3.3. Request bodyの具体例¶
Request bodyの具体例を記載します。
3.3.1. 既存オペレーションで登録済みパラメータを使用したConductorの作業実行¶
{ "conductor_class_name" : "sample_conductor", "operation_name" : "sample_operation" }
3.3.2. 既存オペレーションで登録済みパラメータを使用したConductorの予約実行¶
{ "conductor_class_name" : "sample_conductor", "operation_name" : "sample_operation", "schedule_date" : "2024/12/31 23:59" }
3.3.3. 既存オペレーションでパラメータ適用をしたConductorの作業実行¶
{ "conductor_class_name": "sample_conductor", "operation_name" : "sample_operation", "schedule_date" : "", "parameter_info" : [ { "sample_menu_001" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "operation_name_select" : "2024/01/01 00:00_sample_operation", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] } ] }Tip
オペレーション「operation_name_select」の指定について既存オベーションの場合、オペレーション「operation_name_select」に設定する値は、該当オペレーションの「実施予定日」(YYYY/MM/DD hh:mm)_「オペレーション名」で指定します。
3.3.4. 新規オペレーションでパラメータ適用をしたConductorの作業実行¶
{ "conductor_class_name": "sample_conductor", "operation_name" : "new_operation", "schedule_date" : "", "parameter_info" : [ { "sample_menu_001" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] } ] }Tip
オペレーション「operation_name_select」の指定について新規オペレーションの場合、オペレーション「operation_name_select」の指定は不要です。
3.3.5. オペレーション自動採番でパラメータ適用をしたConductorの予約実行¶
{ "conductor_class_name": "sample_conductor", "schedule_date" : "", "parameter_info" : [ { "sample_menu_001" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] } ] }Tip
オペレーション「operation_name_select」の指定についてオペレーション自動採番の場合、オペレーション「operation_name_select」の指定は不要です。
3.3.6. 複数メニューに対して複数レコードのパラメータ適用をしたConductor作業実行¶
{ "conductor_class_name": "sample_conductor", "operation_name" : "", "schedule_date" : "", "parameter_info" : [ { "sample_menu_001" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "column_1" : "value11", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } },{ "type" : "Register", "parameter" : { "host_name" : "sample_host2", "column_1" : "value11", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] },{ "sample_menu_002" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } },{ "type" : "Register", "parameter" : { "host_name" : "sample_host2", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] } ] }
3.3.7. サブConductorの個別オペレーションを明示的に指定してパラメータ適用でConductor作業実行¶
{ "conductor_class_name": "sample_main_conductor", "operation_name" : "", "schedule_date" : "", "parameter_info" : [ { "sample_menu_001" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "column_1" : "value11", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } },{ "type" : "Register", "parameter" : { "host_name" : "sample_host2", "column_1" : "value11", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] },{ "sample_menu_002" : [ { "type" : "Register", "parameter" : { "host_name" : "sample_host1", "operation_name_select" : "2024/01/01 00:00_sample_operation", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } },{ "type" : "Register", "parameter" : { "host_name" : "sample_host2", "operation_name_select" : "2024/01/01 00:00_sample_operation", "column_1" : "value", "column_2" : "value.txt" }, "file" : { "column_2" : "c2FtcGxlIGZpbGU=" } } ] } ] }
3.4. response body¶
本APIのresponse bodyについての説明を記載します。
{ "data" : { "conductor_instance_id" : "conductord作業実行時に採番されたID" } , "message" : "SUCCESS", "result" : "000-00000", "ts" : "処理日時" } }{ "message" : "エラーメッセージ" "result" : "エラーコード" "ts" : "処理日時" }Request bodyで指定しているメニュー名(REST):sample_menu_001 の 1レコード目(0オリジン) の キー:column_1 に指定した値の文字数の不備でエラーが発生した場合の例 { "message": { "1": { メニュー名(REST)のレコード番号が0オリジンで表示されます。 "column_1": [ "文字長エラー (閾値 : 値<=8byte, 値 : 30byte), menu : sample_menu_001"] キー:エラーとなった項目のREST名、値:エラー内容、menu : エラーとなったメニュー名(REST) } }, "result": "499-00201", "ts": "実施日時" }
3.5. 留意事項¶
本APIは、ITAで更新可能なメニューに対してパラメータ適用を行う事が出来ます。
しかし、トランザクション処理の影響により、以下の留意事項があります。
3.5.1. ホストグループへのパラメータ適用¶
「」にパラメータ適用をした場合、指定されたホストグループに属するホスト解析が処理されない状態でconductor作業実行が行われます。「」へのパラメータ適用は、以下のレコード操作を行うAPIで事前に登録を行ってください。・「Menu MaintenanceAll」・「Menu Maintenance」
3.5.2. 変数抜出対象のメニューへのパラメータ適用¶
変数抜出対象のメニューにパラメータ適用は、指定されたパラメータ内で使用している変数の刈取りが処理されない状態でconductor作業実行が行われます。変数抜出対象のメニューへのパラメータ適用は、以下のレコード操作を行うAPIで事前に登録を行ってください。・「Menu MaintenanceAll」・「Menu Maintenance」
3.5.3. エラー時のロールバック¶
本APIは、トランザクション処理でデータベースの更新を行っています。Request bodyの指定不備などで、データベースの更新に失敗した場合は、トランザクション処理内で更新した情報はロールバックされます。