API

インシデント作成

説明
インシデントの作成をすることができます。PCおよびモバイルブラウザ画面にはない、トピックをインシデント作成と同時に複数作成することができます。APIで作成されたインシデントの指揮者は指定されず、一番最初にグループタイムライン画面にアクセスしたユーザが自動で指揮者となります。

notification_textに一斉通知内容を入れた場合に、ユーザの個人設定で連絡先の各デフォルトが有効なデバイスへインシデント作成と同時に一斉通知されますが、電話コールによる機械音声読み上げは、notification_callを明示的に指定する必要があります。

リクエストURL(POST)
https://<OrganizationID>.reactio.jp/api/v1/incidents
パラメータ
パラメータ名 説明 内容
name インシデントの名前を指定します(必須) string 自由形式
status インシデントのステータスを指定します(任意) string 選択形式(open)
  • open「発生中」
  • pend「暫定対応」
  • close「恒久対応」
parameters インシデントのオプション項目を指定します(任意) string key:value形式 (null)

 foo: bar,
 baz: qux

※インシデントのオプション項目で設定したAPIパラメータ名及びAPI文字列を指定してください。カンマで繋げて複数指定することができます。
detection
※廃止予定
インシデントの検知方法を指定します(任意) string 選択形式(null)
  • msp「監視委託」
  • system「システム発報」
  • client「クライアント」
  • internal「社内」
  • null「未選択」
cause>
※廃止予定
インシデントの発生原因を指定します(任意) string 選択形式(null)
  • over-capacity「アクセス過多」
  • bug「バグ」
  • operation-error「オペミス」
  • external-factor「外部要因」
  • degradation「老朽化」
  • unknown「不明」
  • null「未選択」
cause_supplement
※廃止予定
インシデントの発生原因補足を指定します(任意) string 自由形式
point
※廃止予定
インシデントの発生箇所です(任意) string 選択形式(null)
  • network「ネットワーク」
  • shared-hardware「共有ハードウェア」
  • hardware「専有ハードウェア」
  • os「OS」
  • middleware「ミドルウェア」
  • application「アプリケーション」
  • null「未選択」
scale
※廃止予定
インシデントの障害規模を指定します(任意) string 選択形式(null)
  • cross「サービス横断」
  • whole「サービス全体」
  • point「サービスの一部」
  • null「未選択」
pend_text
※廃止予定
インシデントの暫定対応内容を指定します(任意) string 自由形式
close_text
※廃止予定
インシデントの恒久対応案を指定します(任意) string 自由形式
topics インシデントの作成と同時に作成するトピックの名前を指定します(任意) array 自由形式
例)[“原因調査”, “復旧作業”]
notification_text インシデントの作成と同時に一斉通知する内容を指定します(任意) string 自由形式
notification_call notification_textを指定した際に架電での通知を行うかどうか指定します(任意)
※注意:notification_textの値がない場合は通知されません。
boolean 真理形式(false)
message インシデントの作成と同時にタイムライン画面にメッセージを指定します(任意) string 自由形式
(文字数制限 10,000文字)
※特定のHTMLタグが利用可能(a, b, br, img)
※廃止予定のパラメータで設定していた情報は、将来的に「parameters」でのみ設定できるようになります。現時点では、廃止予定のパラメータと「parameters」の両方を利用することができます。
リクエスト例(curlコマンドの場合)
curl -X POST https://<OrganizationID>.reactio.jp/api/v1/incidents \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz" \
-d '{
  "name": "サイト閲覧不可",
  "status": "open",
  "parameters": {
      "foo": "bar",
      "baz": "qux"
      },
  "detection": "msp",
  "cause": "over-capacity",
  "cause_supplement": "Webサーバがアクセス過多でダウン",
  "point": "middleware",
  "scale": "whole",
  "pend_text": "Webサーバの再起動を行う",
  "close_text": "Webサーバのスケールアウトを検討",
  "topics": ["原因調査", "復旧作業"],
  "notification_text": "Webサーバで障害が発生。至急対応をお願い致します。",
  "notification_call": true ,
  "message": "至急原因調査を実施!"
}'
レスポンス例(上記リクエスト例の結果)
{
  "id": 1,
  "name": "サイト閲覧不可",
  "manager": null,
  "status": "open",
  "parameters": {
    "detection": "msp",
    "cause": "over-capacity",
    "cause_supplement": "Webサーバがアクセス過多でダウン",
    "point": "middleware",
    "scale": "whole",
    "pend_text": "Webサーバの再起動を行う",
    "close_text": "Webサーバのスケールアウトを検討",
    "foo": "bar",
    "baz": "qux"
  },
  "close_text": "Webサーバのスケールアウトを検討",
  "closed_by": null,
  "closed_at": null,
  "pended_by": null,
  "pended_at": null,
  "created_by": 0,
  "created_at": 1430208000,
  "updated_by": 0,
  "updated_at": 1430208000,
  "topics": [
    {
      "id": 1,
      "name": "原因調査",
      "status": "open",
      "color": "#5661aa",
      "closed_by": null,
      "closed_at": null,
      "created_by": 0,
      "created_at": 1430208000,
      "updated_by": 0,
      "updated_at": 1430208000
    },
    {
      "id": 2,
      "name": "復旧作業",
      "status": "open",
      "color": "#077f40",
      "closed_by": null,
      "closed_at": null,
      "created_by": 0,
      "created_at": 1430208000,
      "updated_by": 0,
      "updated_at": 1430208000
    }
  ],
  "notifications": {
    "id": 1,
    "notification_text": "Webサーバで障害が発生。至急対応をお願い致します。",
    "notification_call": true,
    "notificated_for": {
      "phone": ["1", "3"],
      "email1": ["1", "2", "3"],
      "email2": ["1", "2"],
      "imkayac": ["1"]
    },
    "created_at": 1430208000
  }
}

インシデント一覧

説明
インシデントの一覧を降順(新しい順)で取得することができます。取得する際に、「作成日時」「ステータス」「ページ」の三つの情報から絞り込むことができます。「作成日時」は、インシデントを作成した日を指定したいつから(from)といつまで(to)二つの絞り込み方法を同時に利用できます。「ページ」は、ページに含まれる数(per_page)ごとで取得したいページ番号(page)を指定することができ、指定しない場合には1ページ目の20件が取得されます。

リクエストURL(GET)
https://<OrganizationID>.reactio.jp/api/v1/incidents
パラメータ
パラメータ名 説明 内容
from 作成日時でいつからの情報から取得したいかを指定します(任意) unixtime 日付形式
to 作成日時でいつまでの情報から取得したいかを指定します(任意) unixtime 日付形式
status 取得したいインシデントのステータスを指定します(任意) string 選択形式(open)
  • open「発生中」
  • pend「暫定対応」
  • close「恒久対応」
page ページを指定できるようになっており、1から始まるページ番号を表すパラメータで、初期値は1、最大値は100に設定されています(任意) integer 数値形式
per_page 1ページあたりに含まれる要素数を表すパラメータで、初期値は20、最大値は100に設定されています(任意) integer 数値形式
リクエスト例(curlコマンドの場合)
curl -X GET https://<Organization_ID>.reactio.jp/api/v1/incidents\
?from=1430208000&to=1440210000&status=open&page=2&per_page=15 \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz"
レスポンス例(上記リクエスト例の結果)
[
  {
    "id": 1,
    "name": "サイト閲覧不可",
    "manager": null,
    "status": "open",
    "parameters": {
      "detection": "msp",
      "cause": "over-capacity",
      "cause_supplement": "Webサーバがアクセス過多でダウン",
      "point": "middleware",
      "scale": "whole",
      "pend_text": "Webサーバの再起動を行う",
      "close_text": "Webサーバのスケールアウトを検討",
      "foo": "bar",
      "baz": "qux"
    },
    "close_text": "Webサーバのスケールアウトを検討",
    "closed_by": null,
    "closed_at": null,
    "pended_by": null,
    "pended_at": null,
    "created_by": 0,
    "created_at": 1430209000,
    "updated_by": 0,
    "updated_at": 1430209000
  },
  {
    "id": 2,
    "name": "WEBサーバがDOWN",
    "manager": null,
    "status": "open",
    "parameters": {
      "detection": "msp",
      "cause": "over-capacity",
      "cause_supplement": "Webサーバがアクセス過多でダウン",
      "point": "middleware",
      "scale": "whole",
      "pend_text": "Webサーバの再起動を行う",
      "close_text": "Webサーバのスケールアウトを検討",
      "foo": "bar",
      "baz": "qux"
    },
    "closed_by": null,
    "closed_at": null,
    "pended_by": null,
    "pended_at": null,
    "created_by": 0,
    "created_at": 1430208000,
    "updated_by": 0,
    "updated_at": 1430208000
  }
]

インシデント詳細

説明
特定のインシデントの詳細情報を取得することができます。インシデントには<Incident_ID>というユニークなIDがあり、インシデント一覧画面もしくはインシデント一覧APIから確認することができます。

リクエストURL(GET)
https://<OrganizationID>.reactio.jp/api/v1/incidents/<Incident_ID>
リクエスト例(curlコマンドの場合)
curl -X GET https://<Organization_ID>.reactio.jp/api/v1/incidents/1 \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz"
レスポンス例(上記リクエスト例の結果)
{
  "id": 1,
  "name": "サイト閲覧不可",
  "manager": null,
  "status": "open",
  "parameters": {
    "detection": "msp",
    "cause": "over-capacity",
    "cause_supplement": "Webサーバがアクセス過多でダウン",
    "point": "middleware",
    "scale": "whole",
    "pend_text": "Webサーバの再起動を行う",
    "close_text": "Webサーバのスケールアウトを検討",
    "foo": "bar",
    "baz": "qux"
  },
  "closed_by": null,
  "closed_at": null,
  "pended_by": null,
  "pended_at": null,
  "created_by": 0,
  "created_at": 1430209000,
  "updated_by": 0,
  "updated_at": 1430209000,
  "topics": [
    {
      "id": 1,
      "name": "原因調査",
      "status": "open",
      "color": "#5661aa",
      "closed_by": null,
      "closed_at": null,
      "created_by": 0,
      "created_at": 1430209000,
      "updated_by": 0,
      "updated_at": 1430209000
    },
    {
      "id": 2,
      "name": "復旧作業",
      "status": "open",
      "color": "#077f40",
      "closed_by": null,
      "closed_at": null,
      "created_by": 0,
      "created_at": 1430209000,
      "updated_by": 0,
      "updated_at": 1430209000
    }
  ],
  "files": [
    {
      "name": "障害報告書",
      "path": "https://.reactio.jpdata/reactio-mvp/files/incident/1/_bYMRLTxj75lcXCWN0iaAZud2CuGqFFL/data.docx"
    }
  ],
  "users": [
    {
      "id": 1
    },
    {
      "id": 2
    }
  ]
}

ステータス変更

説明
すでに作成済みのインシデントのステータスを変更をすることができます。

リクエストURL(POST)
https://<OrganizationID>.reactio.jp/api/v1/incidents/<Incident_ID>/status
パラメータ
パラメータ名 説明 内容
status インシデントのステータスを指定します(任意) string 選択形式(open)
  • open「発生中」
  • pend「暫定対応」
  • close「恒久対応」
リクエスト例(curlコマンドの場合)
curl -X POST https://<OrganizationID>.reactio.jp/api/v1/incidents/<Incident_ID>/status \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz" \
-d '{
  "status": "pend"
}'
レスポンス例(上記リクエスト例の結果)
{"success":true}

一斉通知作成

説明
すでに作成済みのインシデントにて、追加で一斉通知を行うことができます。インシデント作成と同様に、電話コールによる機械音声読み上げは、notification_callを明示的に指定する必要があります。

リクエストURL(POST)
https://<Organization_ID>.reactio.jp/api/v1/notifications
パラメータ
パラメータ名 説明 内容
incident_id 一斉通知を実施するインシデントのIDを指定します(必須) integer 数値形式
notification_text インシデントの作成と同時に一斉通知する内容を指定します(任意) string 自由形式
notification_call notification_textを指定した際に架電での通知を行うかどうか指定します(任意) boolean 真理形式(false)
リクエスト例(curlコマンドの場合)
curl -X POST https://<Organization_ID>.reactio.jp/api/v1/notifications \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz" \
-d '{
  "incident_id": 1,
  "notification_text": "Webサーバで障害が発生しました。至急対応をお願い致します。",
  "notification_call": true
}'
レスポンス例(上記リクエスト例の結果)
{
  "id": 33,
  "notification_text": "Webサーバで障害が発生しました。至急対応をお願い致します。",
  "notification_call": true,
  "notificated_for": {
    "phone": ["1", "3"],
    "email1": ["1", "2", "3"],
    "email2": ["1", "2"],
    "imkayac": ["1"]
  },
  "created_at": 1430208000
}

メッセージ作成

説明
作成済みのインシデント内のタイムライン画面へ、任意のメッセージを通知することができます。

リクエストURL(POST)
https://<Organization_ID>.reactio.jp/api/v1/messages
パラメータ
パラメータ名 説明 内容
incident_id メッセージを通知するインシデントのIDを指定します(必須) integer 数値形式
message タイムライン画面にメッセージを指定します(必須) string 自由形式
(文字数制限 10,000文字)
※特定のHTMLタグが利用可能(a, b, br, img)
リクエスト例(curlコマンドの場合)
curl -X POST https://<Organization_ID>.reactio.jp/api/v1/messages \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-Api-Key: 1234567890abcdefghtjklmnopqrstuvwkyz" \
-d '{
  "incident_id": 1,
  "message": "LoadAverageが50に上昇しました。",
}'

エラーレスポンス

説明
APIにリクエストを送信した場合に、リクエスト内容に誤りがある場合にはエラーレスポンスが返ってきます。エラーレスポンスの内容を元にリクエストを修正してください。

認証エラー

APIキーが指定されていない
401 Unauthorized

{
  "type": "authentication_error",
  "message": "api key required"
}
APIキーが正しくない
401 Unauthorized

{
  "type": "authentication_error",
  "message": "invalid api key"
}

POST系エラー

パラメータが指定されていない
400 Bad Request

{
  "type": "invalid_request_body",
  "message": "invalid request body"
}
パラメータが正しくない
400 Bad Request

{
  "type": "validation_error",
  "message": "validation error",
  "errors": [
    {
      "field": "name",
      "code": "missing_field"
    }
  ]
}
一斉通知時に通知先が存在しない
400 Bad Request

{
  "type": "notification_error",
  "message": "Notification destination can not be found."
}
指定したインシデントが存在しない
400 Bad Request

{
  "type": "incident_not_found",
  "message": "Incident not found."
}

GET系エラー

他プロジェクトのリソースを参照しようとした
403 Forbidden

{
  "type": "forbidden",
  "message": "Forbidden"
}
リソースが存在しない
404 Not Found

{
  "type": "not_found",
  "message": "Not Found"
}

その他エラー

想定外のエラーが発生しています。(※Reactio運営事務局までおしらせください)
500 Internal Server Error

{
  "type": "internal_server_error",
  "message": "Internal Server Error"
}