1. APIのアクセス(認証)について

利用する対象の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のエンドポイントで使用するメニュー名の確認方法ついて
  • 管理コンソール ▶ メニュー管理」から該当するメニューのレコードを確認し、「メニュー名(rest) 」の値を使用してください。

Tip

パラメータで使用する、JSONデータ、FOEMデータに関する補足
パラメータ指定時の形式、指定方法について
コンテンツタイプ、パラメータ指定の方法や、curlの実行環境等により、適切なもので対応してください。
  • JSONデータをJSONファイルで保存し、パラメータにJSONファイルを指定して使用する

  • JSONデータのシングルクォーテーション「'」が使用できない場合、ダブルクォーテーション「 "」 を用いて、かつ内部で使用されたダブルクォーテーションをエスケープした書き方に変更する

  • 末尾の「\」、「^」については、ご利用環境で適切なものに変更する

以下、コンテンツタイプによるパラメータの指定方法の詳細は、「Content-Typeによるパラメータの構造の違いについて」を参照してください。
リスト 2.53 JSONデータを使用する場合
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\" } ]
リスト 2.54 JSONファイルを使用する場合
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
リスト 2.55 playbook_files_sampleの内容
[
    {
        "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"
    }
]
リスト 2.56 シングルクォーテーションを使用しない場合
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"

2.3. APIのパラメータ関連情報(Menu Info メニュー情報の取得)

レコードの一括操作パラメータの作成について
レコードの一括操作のパラメータ、項目の構成については、以下を参照してください。

2.3.1. メニュー情報

登録、編集(Menu MaintenanceAll レコードの一括操作) で使用する、メニューの構成情報、カラムグループ、カラムに関する設定値を取得できます。
  • /api/{organization_id}/workspaces/{workspace_id}/ita/menu/{menu}/info/
    リスト 2.68 メニューの構成情報取得API
    BASEURL="https://servername"
    ORGANAIZATION_ID="オーガナイゼーションID"
    WORKSPACE_ID="ワークスペースID"
    MENU="対象メニュー"
    USERNAME="ユーザー名"
    PASSWORD="パスワード"
    BASE64_BASIC=$(echo -n "ユーザー名を設定してください:パスワードを設定してください" | base64)
    
    curl -X GET \
      "${BASEURL}/api/${ORGANAIZATION_ID}/workspaces/${WORKSPACE_ID}/ita/menu/${MENU}/info/" \
      -H "Authorization: Basic ${BASE64_BASIC}" \
    
    リスト 2.69 メニューの構成情報について
    {
        "data": {
            "column_group_info": {},
            "column_info": {
                "cX": {
                    "column_name": "",     # 画面で表示される項目名
                    "column_name_rest":"", # APIのパラメータで指定する項目名
                    "auto_input": "",      # 自動入力フラグ
                    "input_item": "",      # 入力対象フラグ
                    "view_item": ""        # 出力対象フラグ
                    "required_item": "",   # 必須入力フラグ
                    "unique_item": "",     # 一意制約フラグ
                    "...省略...": "",      #
                },
            },
            "custom_menu": {
                "...省略...": "",
            },
            "menu_info": {
                "...省略...": "",
            }
        },
        "message": "SUCCESS",
        "result": "000-00000",
        "ts": "2023-10-11T05:41:27.678Z"
    }
    

Tip

レコードの一括操作のパラメータに関するメニューの項目情報と設定値について
メニューの情報取得APIの、項目情報(column_info)のキーと設定値について
表 2.96 メニューの項目情報のキーと設定値

キー

説明

設定値

column_name

画面で表示される項目名

文字列

column_name_rest

APIのパラメータで指定する項目名

文字列

auto_input

自動入力フラグ
システムで自動入力される項目
"0":非対象
"1":対象

input_item

入力対象フラグ
登録、編集のAPI実行時の入力対象項目
"0": 非対象
"1": 対象
"2": 非表示

view_item

出力対象フラグ
filterのAPI実行時の出力対象項目
"0": 非対象
"1": 対象

required_item

必須入力フラグ
登録、編集のAPI実行時の必須対象項目
"0": 非対象
"1": 対象

unique_item

一意制約フラグ
登録、編集のAPI実行時の一意制約対象項目
"0": 非対象
"1": 対象
※バリデーションについては、各メニューのマニュアルを参照してください。

2.3.2. パラメータの項目情報

登録、編集(Menu MaintenanceAll レコードの一括操作) で使用するパラメータの情報、を取得できます。
より詳細な設定を確認したい場合は、メニュー情報 も併せて参照してください。
  • /api/{organization_id}/workspaces/{workspace_id}/ita/menu/{menu}/info/column/
    リスト 2.70 パラメータの項目取得API
    BASEURL="https://servername"
    ORGANAIZATION_ID="オーガナイゼーションID"
    WORKSPACE_ID="ワークスペースID"
    MENU="対象メニュー"
    USERNAME="ユーザー名"
    PASSWORD="パスワード"
    BASE64_BASIC=$(echo -n "ユーザー名を設定してください:パスワードを設定してください" | base64)
    
    curl -X GET \
      "${BASEURL}/api/${ORGANAIZATION_ID}/workspaces/${WORKSPACE_ID}/ita/menu/${MENU}/column/" \
      -H "Authorization: Basic ${BASE64_BASIC}" \
    
    • 例: 「Playbook素材集」のレスポンス
    リスト 2.71 メニューのカラム情報について:Playbook素材集
    {
        "data": {
            "discard": "廃止フラグ",
            "item_no": "項番",
            "last_update_date_time": "最終更新日時",
            "last_updated_user": "最終更新者",
            "playbook_file": "Playbook素材",
            "playbook_name": "Playbook素材名",
            "remarks": "備考"
        },
        "message": "SUCCESS",
        "result": "000-00000",
        "ts": "2023-10-11T06:48:10.697Z"
    }
    

2.3.3. プルダウン項目で使用可能なリスト

登録、編集(Menu MaintenanceAll レコードの一括操作) で使用可能なプルダウン項目の一覧を取得できます。
  • /api/{organization_id}/workspaces/{workspace_id}/ita/menu/{menu}/info/pulldown/
    リスト 2.72 プルダウン項目情報取得API
    BASEURL="https://servername"
    ORGANAIZATION_ID="オーガナイゼーションID"
    WORKSPACE_ID="ワークスペースID"
    MENU="対象メニュー"
    USERNAME="ユーザー名"
    PASSWORD="パスワード"
    BASE64_BASIC=$(echo -n "ユーザー名を設定してください:パスワードを設定してください" | base64)
    
    curl -X GET \
      "${BASEURL}/api/${ORGANAIZATION_ID}/workspaces/${WORKSPACE_ID}/ita/menu/${MENU}/info/pulldown/" \
      -H "Authorization: Basic ${BASE64_BASIC}" \
    
    • 例: 「機器一覧」のレスポンス
    リスト 2.73 プルダウン項目の一覧について:機器一覧
    {
        "data": {
            "authentication_method": {
                "1": "鍵認証(パスフレーズなし)",
                "2": "パスワード認証",
                "4": "鍵認証(パスフレーズあり)",
                "5": "パスワード認証(winrm)"
            },
            "connection_type": {
                "1": "machine",
                "4": "network"
            },
            "hw_device_type": {
                "1": "SV",
                "2": "ST",
                "3": "NW"
            },
            "instance_group_name": {
            },
            "lang": {
                "1": "utf-8",
                "2": "shift_jis",
                "3": "euc"
            },
            "os_type": {
            },
            "protocol": {
                "1": "telnet",
                "2": "ssh"
            }
        },
        "message": "SUCCESS",
        "result": "000-00000",
        "ts": "2023-10-13T09:07:04.036Z"
    }
    

3. パラメータ適用(API)

本APIは、オペレーションの生成からパラメータの適用までを行いConductor作業実行を行うAPIです。
尚、Conductor作業実行の完了確認は行いません。完了確認は、 Conductor ▶ Conductor作業一覧 より行って下さい。

3.1. request形式

本APIのrequest形式についての説明を記載します。
表 3.84 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についての説明を記載します。
表 3.85 Request bodyについての説明

キー

項目

必須

説明

conductor_class_name

Conductor名

文字列

作業実行を要求するConductor名を指定します。
Conductor名は、Conductor ▶ Conductor一覧 に登録されている Conductor名称 を指定します。
Conductor ▶ Conductor一覧 に登録されていないConductor名を指定した場合はエラーになります。

operation_name

オペレーション名

文字列

作業実行を行うオペレーション名を指定します。
  • 既存オペレーション
    基本コンソール ▶ オペレーション一覧 に登録されている オペレーション名 を指定します。
  • 新規オペレーション
    基本コンソール ▶ オペレーション一覧 に登録されていない オペレーション名 を指定します。
    指定されたoperation_nameが 基本コンソール ▶ オペレーション一覧 に登録されます。
  • オペレーション自動採番
    operation_nameの指定がない場合や省略した場合は、以下の採番ルールで オペレーション名 を採番し基本コンソール ▶ オペレーション一覧 に登録されます。
     採番ルール:「yyyymmddhhmissffffffN」
     y:年 m:月 d:日 h:時 mi:分 s:秒 f:マイクロ秒 N:0-9の通番

schedule_date

予約日時

文字列

Conductor作業実行の予約日時を yyyy/mm/dd hh:mi:ss で指定します。
指定しない場合や省略した場合は、即時実行となります。

parameter_info

パラメータ情報

配列

登録/更新/廃止/復活の操作を行うパラメータ情報を指定します。
複数メニューが対象で順序性を考慮する必要がある場合は、配列の順番で調整して下さい。
Conductor作業実行のみを行う場合は省略して下さい。

※1

(menu_name_rest)

メニュー名(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の作業実行

../../_images/Apply_API_request_body_exp3.png
{
    "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の作業実行

../../_images/Apply_API_request_body_exp4.png
{
    "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の予約実行

../../_images/Apply_API_request_body_exp5.png
{
    "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作業実行

../../_images/Apply_API_request_body_exp6.png
{
    "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作業実行

../../_images/Apply_API_request_body_exp7.png
{
    "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についての説明を記載します。
リスト 3.14 正常時
{
    "data" : {
    "conductor_instance_id" : "conductord作業実行時に採番されたID"
    }      ,
    "message" : "SUCCESS",
    "result"  : "000-00000",
    "ts"      : "処理日時"
    }
}
リスト 3.15 異常時
{
    "message" : "エラーメッセージ"
    "result"  : "エラーコード"
    "ts"      : "処理日時"
}
リスト 3.16 エラーメッセージの例
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」
変数抜出対象のメニューについては、「Terraform driver 共通 -> 変数の取り扱い」「Ansible共通 -> 変数抜出対象資材」を参照してください。

3.5.3. エラー時のロールバック

本APIは、トランザクション処理でデータベースの更新を行っています。
Request bodyの指定不備などで、データベースの更新に失敗した場合は、トランザクション処理内で更新した情報はロールバックされます。