Arcstar Universal One 回線アラームAPI

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句の連続