Overview
本APIはArcstrar Universal Oneで発生中の回線アラームを取得するAPIです。
最大過去90日前から発生中のアラームを取得することができます。
Resource URL
グローバル共通ドメインの利用、または個別リージョンドメインをご利用ください。
グローバル共通ドメインを利用する場合、お客様のご利用箇所の状況に応じて、
一番近いAPIゲートウェイに接続します。
1.Base Path(Global Load Balance)
https://api.ntt.com/v1/circuitalarms
2.Base Path(Region)
https://{region}.api.ntt.com/v1/circuitalarms
- region is jp|us|uk
- e.g. https://us.api.ntt.com/v1/circuitalarms
- 指定できるregionは、将来拡充予定
Resource Information
Key | Value |
---|---|
リクエストフォーマット | JSON |
レスポンス フォーマット | JSON |
認証(OAuth) | Yes |
回線アラーム情報参照
GET /v1/circuitalarms/alarms
Example Request
GET https://api.ntt.com//v1/circuitalarms/alarms
HEADER Authorization: Bearer [YOUR_ACCESS_TOKEN]*
* トークンの取得についてはOAuth APIのページをご参照ください。
Response Parameters
Name | Description | type |
---|---|---|
contractId | サービスの契約ID | String |
vpnGroupId | VPNグループID | String |
customerId | 共通顧客ID | String |
originalAlarmName | アラーム名 | String |
originalEventTime | アラーム発生時刻 | DateTimeOffset |
alarmDescription | アラーム説明 | String |
rootCauseDescription | 根本原因説明 | String |
requestDescription | お客様対応依頼内容 | String |
plannedOutage | 計画工事フラグ | Boolean |
noManageReason | 静観(お客様工事)フラグ | Boolean |
Example Result
{
"value": [
{
"plannedOutage": false,
"originalAlarmName": BGPDown,
"noManageReason": false,
"alarmDiscription": "BGPDown was detected",
"vpnGroupId": "V********",
"contractId":"N********",
"originalEventTime": "2016-11-14T04:01:57Z",
},
{
"plannedOutage":false,
"originalAlarmName":"AccessDown(UNI)",
"noManageReason":true,
"alarmDescription":"Link down was detected from LAN side of customer Optical Network Unit",
"rootCauseDescription":"Link down of customer connecting port of our unit may caused by customer work",
"contractId":"N********"",
"requestDescription":"Please check a state of the power failure or customer work, or make inquires to us",
"vpnGroupId":"V********",
"originalEventTime":"2016-11-15T06:08:11Z"
}
],
"@odata.count": 2
}
Query Parameters
GETリクエストURLのクエリに設定できるパラメータは以下の通り。
Name | Description |
---|---|
$filter | 検索条件を指定します。SQLの where 句に相当する。 |
$select | 取得するプロパティを指定します。SQLの select 句に相当する。 |
$orderby | 検索条件の並べ替えのキーとなるプロパティおよび順序を指定します。SQLの order by 句に相当する。 |
$top, $skip, maxpagesize | サーバサイド ページングを行うためのパラメータ |
なお、取得できるアラームについて、10件表示を標準仕様としているため、
11件以上の情報取得にはサーバサイドのページング制御が必要となる。
使用例は次の通り。
11件目以降を取得する場合
GET /v1/circuitalarms/alarms?$skip=10
21件目以降を取得する場合
GET /v1/circuitalarms/alarms?$skip=20
ページングを無効にする場合
GET /v1/circuitalarms/alarms?odata.maxpagesize=0
上位5件を取得する場合
GET /v1/circuitalarms/alarms?$top=5
比較演算子
[左辺値] [演算子] [右辺値] の形式で取得する対象レコードの絞り込みを行うことができる。
以下の比較演算子を利用することができる。
比較演算子 | 意味 | $filter クエリ例 | 説明 | 左辺に設定できるデータ型 |
---|---|---|---|---|
eq | 等号 | ?$filter=originalAlarmName eq 'LinkDown' | OriginallAlarmName(String型)が 'LinkDown' と等しい | Boolean, Number, String, DateTimeOffset |
ne | 不等号 | ?$filter=clearanceReportFlag ne true | clearanceReportFlag(Boolean)型)が true ではない | Boolean, Number, String, DateTimeOffset |
gt | より大きい | ?$filter=lastModificationTime gt 2016-07-29T12:34:56.012345Z | lastModificationTime(DateTimeOffset型)が 2016/7/29 12:34:56.012345 (UTC) より大きい | Number, DateTimeOffset |
セキュリティ上の理由により、左辺値は必ずプロパティ名, 右辺値はリテラルではなればならない。
リテラル
Null型
検索対象のプロパティが null かどうかを調べるために Null型を使うことができる
指定方法は eq null もしくは ne null である。
Boolean型
検索対象のプロパティが Boolean型の場合
nullを許容するデータに対するオペレータは次の通り。booleanValueというnullを許容するBoolean型があると想定した評価パターンは以下の通り
データ | $filter クエリ | 評価結果 |
---|---|---|
(null) | $filter=booleanValue eq true | false |
(null) | $filter=booleanValue ne true | true |
(null) | $filter=booleanValue eq false | false |
(null) | $filter=booleanValue ne false | true |
String型
検索対象のプロパティがString型の場合、シングルクォートで囲んで設定する(完全一致)。
検索対象文字列のエンコーディングはUTF-8でなければならない。また、セキュリティ上ASCIIコントロールコードを含めることはできない。
シングルクォート(')を含んだ文字列を検索したい場合、連続するシングルクォートにより指定することができる
検索対象文字列が長さゼロの文字列かどうか評価する場合に eq '' もしくは ne '' による検索を行うことはできない。代わりに eq null もしくは ne null を使用する。
パターン | $filter クエリ例 | 説明 |
---|---|---|
正しい指定方法 | $filter=stringValue eq 'hogehoge' | stingValue が hogehoge に一致するアラームがヒットされる |
正しい指定方法 | $filter=stingrValue eq 'Don''t touch me.' | stringValue が Don't touch me. に完全一致するアラームが検索される |
正しい指定方法 | $filter=stingValue eq null | stringValueがnullまたは長さゼロの文字列のアラームがヒットする |
誤った指定方法 | $filter=stingValue eq '' | エラー |
DatetimeOffset型
検索対象のプロパティがDateTimeOffset型の場合、次のように指定する
時刻はかならずUTCで指定しなければならない。
時刻指定はマイクロ秒の精度まで指定することができる(ただし、検索対象のDateTimeOffset型プロパティがマイクロ秒まで保持しているとは限らない)
パターン | $filter クエリ例 |
---|---|
正しい指定方法 | $filter=dateTimeOffset Value gt 2016-07-30T12:34:56Z |
正しい指定方法 | $filter=dateTimeOffset Value gt 2016-07-30T12:34:56.123Z |
正しい指定方法 | $filter=dateTimeOffset Value gt 2016-07-30T12:34:56.123456Z |
論理演算子
以下の論理演算子を用いることができる。
比較演算子 | 意味 | $filter クエリ例 | 説明 |
---|---|---|---|
and | かつ | $filter=a eq 1 and b eq 2 | a が 1 かつ b が 2 |
or | または | $filter=a eq 1 or b eq 2 | a が 1 または b が 2 |
not | 否定 | $filter=not a eq 1 | a が 1 ではない(a eq 1 の否定) |
演算子の優先順位、グルーピング
演算子の優先順位は not > gt,ge,lt,le,eq,ne > and > or の順序となる。
括弧を使うことにより論理演算の優先順位を制御することができる。
パターン | $filter クエリ例 |
---|---|
正しい指定方法 | $filter=numberValue1 eq 1 and (numberValue2 eq 2 or numberValue3 eq 3) |
正しい指定方法 | $filter=numberValue1 eq 1 or not (numberValue2 ne 2 and numberValue3 ne 3) |
誤った指定方法 | $filter=not not numberValue1 eq 1 |
正しい指定方法 | $filter=not (not numberValue1 eq 1) |
$select
$select クエリパラメータにカンマ区切りでプロパティ名を指定することで、取得するプロパティを制限することができる。
$select クエリパラメータを省略した場合、$select=* が指定された場合と等価になる
パターン | $filter クエリ例 | 説明 |
---|---|---|
正しい指定方法 | $select=eventTime,alarmName | eventTime と alarmName だけ取得する |
正しい指定方法 | $select=* | 全てのプロパティを取得する |
$orderby
$orderby クエリパラメータに [プロパティ名] [asc/desc] を指定することで、取得順序を制御することができる。
[asc/desc] 指定を省略すると、asc(昇順)が指定されたこととなる
カンマ区切りで連続してソート順序に優先度を持たせることができる。
$orderby クエリパラメータを省略した場合、$orderby=lastModificationTime desc が指定された場合と等価になる。
データベースの性能上の問題により $orderby に指定可能なプロパティには制限があり、指定不可能なプロパティを設定するとエラーになる。
パターン | $filter クエリ例 | 説明 |
---|---|---|
正しい指定方法 | $orderby=alarmName desc,optionService | alarmNameの降順(第一優先),optionSericeの昇順(第二優先) |
正常系応答
リクエストが正しく処理され、正常な応答が得られた場合に 200 OK が返却される。
正常系の応答は 200 OK のみであり、その他のステータスコードはすべて異常系である。
検索の結果、件数が0件だった場合においてもステータスコードは 200 OK である。
返却される応答のjsonフォーマットは以下
キー | 値 |
---|---|
value | アラームオブジェクトの配列 |
@odata.count | 応答件数 |
オブジェクトが未定義もしくはデータが null の場合、"キー": null 表記ではなく、キー自体の出力を省略する
jsonの仕様上、オブジェクト内のキーの出現順序には決まりがない
異常系応答
400 Bad Request
リクエストURIが不正な場合
キー | 説明 |
---|---|
error | エラー内容が格納されたオブジェクト |
message | エラーメッセージ |
position | クエリオプションのエラー検出位置(0から数える)。ない場合もある |
405 Method Not Allowed
リクエストに GET 以外のメソッドが使われた場合
500 Internal Server Error
サーバ内部の予期しないエラーが発生した場合
503 Service Unavailable
何らかの原因によりAPIサーバがデータベースにアクセスできなかった場合
参考: エラーメッセージ一覧
message | 説明 |
---|---|
failed to parse query string | クエリストリングの文法エラー |
invalid identifier: %s | 不正なプロパティ名の指定 |
identifier "%s" is not allowed to $orderby parameter | $orderby に指定できないプロパティが指定された |
identifier "%s" is not allowed to $filter parameter | $filter に指定できないプロパティが指定された |
logical operator "%s" is not allowed to %s type Literal: %s | リテラルに対して指定できない論理演算子が指定された |
datatype mismatch: "%s" is %s type | データ型の不一致 |
date %s is not valied for month specified: %s-%s | 不正な日付 |
invald byte sequence in UTF-8 | UTF-8として不正なバイトシーケンス |
some control characters in string parameter are not allowed for security reasons | セキュリティ上の理由により許容されない制御文字 |
zero-length string is not allowed. (must use "eq null" or "ne null" operator) | String型に対して、長さがゼロの文字列の比較を行おうとしたとき |
unable to process multiple query parameters of the same name | 同じ名前のクエリパラメータの複数の指定 |
syntax of "not not" is not allowed | not句の連続 |