NAV
cURL

はじめに

このAPIドキュメントページはEagle Eye Networksが作成したものを、株式会社イグアスが独自に日本語化したものです。

最新版または英語版のAPIドキュメントは、こちらを御覧ください。

またEagle Eye製品の詳しい説明は、株式会社イグアス Eagle Eye製品ページを御覧ください。

Eagle Eye ビデオAPIは録画やインデックス化、カメラ動画の保管を包括的にサポートするRESTベースのAPIです。 Eagle Eye ビデオAPIはカメラに関連する動画の録画やクラウドへのセキュアなビデオ転送、動画保管、自分のアプリケーションで利用するための動画作成など、負荷の高い作業を取り扱います。 Eagle Eye セキュリティ カメラ VMSのユーザーインターフェース(Web、iOS、Android)は、全てこのAPIを使用して作られています。

私たちはcURLを言語バインディングとしているので、右側のダークグレーのエリアにcURLコードのサンプルが表示されます。また将来的な拡張としては右上のタブでプログラム言語を切り替えることが可能です。

はじめよう

Eagle Eye ビデオAPIはセキュアな録画、管理、様々なカメラからの動画再生をどこからでも、いつでも実行できます。 強力なアノテーション インターフェイスと高機能な帯域幅管理は、テラバイトの生動画を役に立つデータに変えることができます。

このAPIはREST原理に基づいているため、非常に簡単にアプリケーションの記述とテストが可能です。ブラウザでURLにアクセスすることもでき、また他のプログラム言語のように多くの異なるHTTPクライアントを使うことが可能です。

APIキーを手に入れる

開発者アカウントを作成

Eagle Eye ビデオAPIを使いはじめるには APIキー が必要になります。これはあなた自身とあなたのアプリケーションを識別するために使われます。APIキーを使うことで全てをセキュアにすることもできます。APIキー を入手するにはアカウント(どこかでテストを行うために)が必要になります。アカウントは既存のアカウントでも、作成した 開発者アカウント でも利用可能です。既存のアカウントを使う場合には、アカウント設定 から APIキー を作成できます。

開発者アカウント を作成するにはeメールアドレスの認証が必要です。APIキー の作成を依頼するとeメールでショートカットが送られます。ショートカットのリンクをクリックすることで APIキー が作成され、コードの作成が可能になります。

場合によっては私達から開発用ハードウェアキット(カメラを接続するために必要です)を購入したいと思うかもしれません。開発者には大幅な値引きが可能です。これにより開発とテスト用にEagle Eyeブリッジとカメラを私たちから入手することができますので、eメールでより詳しい情報と価格をお尋ねください。

APIキー はヘッダの '認証' キーの下部にコロン付きで記述される必要があります。

パスワードによる認証の代替手段についてはシングル・サインオン(訳注:未実装です)セクションを御覧ください。

画像によるステップ説明

alt text alt text alt text alt text alt text

形式

形式 内容
EENTimestamp YYYYMMDDhhmmss.xxx 形式
ユニバーサル時間を構成
例 2018年1月2日 08:30:20.00 == 20180102083020.000

認証

概要

Eagle Eye APIにアクセスするには2ステージのプロセスが必要です: クライアントは初めに使い捨ての認証トークンを取得するために証明書とレルムを示します。この使い捨てトークンは発行されて30秒間または使用されるまで有効です。一度認証トークンを取得した場合は、リソースへのアクセスを行うためのセッションID (“auth-key"クッキーを通じて)を認可サービスを呼び出して利用しなければなりません。この2つのフェーズの手法は、複数のドメインで認証と操作を行うことを提供します。この最初のステップは認証することで完了します。次のステップは認可することで完了します。認証コールはHTTPS接続を使用する必要があることに注意してください。

上記の単純な認証方法に加えて、2要素認証Two-Factor Authentication = TFA)として知られているより安全な認証方法も使用できます。TFAは、2つの異なるコンポーネントの組み合わせを利用してユーザーの身元を確認する方法です。第1のコンポーネントはユーザのパスワードであり、第2のコンポーネントは別の通信チャネルを介してユーザに配信される1回限りのTFAコードであり、電子メールまたはユーザの携帯電話に送信されるテキストメッセージを介して利用されます。

特定のユーザのログインに対してシンプルまたは2要素認証方式が使用されるかどうかは、システム内でのそのユーザに対しての設定によって決まります。ただし、アカウント管理者は、特定のアカウントのすべてのユーザーにTFAスキームを使用させることも可能です

TFA方式が使用されている場合、認可コールは、認証コールから取得されたトークンに加えてTFAコードが渡されることを想定します

一度認可コールによって 'auth_key' クッキーを取得すると、引き続きAPIをコールするために2つの方法でセッションIDを使用することができます。最初は全てのAPI要求に対して 'auth_key' クッキーを単純に渡す方法です。2つ目は 'auth_key' クッキーの値を 'A' パラメータとして渡す方法です。'A' パラメータはあらゆるメソッド(GET, PUT, POST, DELETE)で使用することが可能です。セッションIDを検索する優先順位は以下のとおりです:

  1. 全てのメソッド(GET, PUT, POST, DELETE) のクエリ文字列に含まれる "A” パラメータ
  2. POSTデータ内の “A” パラメータ
  3. 要求ボディ(PUTなど)に含まれる “A” パラメータ
  4. “auth_key” クッキー

ステータス・コードはすべて優先順位でリストされます。最初にリストされたものは、それぞれの条件が満たされる場合に返されたものを意味します。また最後にリストされたものは、それ以前のコードの条件のどれにも合致しなかったことを意味します。

ステップ 1: 認証

ログインは、単純な認証では2段階の、TFAを使用した場合には3段階のプロセスで行われます

単純方式:

認証し、認証によって返されたトークンで認可します

TFA 方式:

認証し、システムにTFAコードをユーザーに送信するよう指示し、ステップ1から受け取ったトークンとステップ2から受け取ったTFAコードを使用して認可します

要求

curl -v --request POST https://login.eagleeyenetworks.com/g/aaa/authenticate --data-urlencode "username=[USERNAME]" --data-urlencode "password=[PASSWORD]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/authenticate

パラメータ データ形式 必須?
username 文字列 true
password 文字列 true

JSON 応答 (単純認証)

{
    "token": "O3k0hNH3jQgjaxC0bLG9/5cM+Z7eWdPe0c+UpEZNXOs7PTFH45Dr9M3wxLkP6GjcPuCw8lXVTkHGA1zgx/q44HBv3Xmcj4/XzN2f6Hv+mZVIy8LorX8N5a6fNVRknWWW86nCHfbLvOP6TPcmBP1dD10ynnGeAdlQHTqMN5mvKH24WwZgVFbM4DyhyWu+eTN+t1XNROegJdZRjhaYCZ1FVKkdnrlsrMD6JSr/tE7byCLVjPcwzVabA+x0tDbGipystTNYPZyDVr3DQM70SV6kfqg2irlC8/zDu7a2EhI1IQWuZZ2GQIQm5jBtj9UR/p7ainHVhEc/bSFYUCvziepcAa=="
}

Json 応答 (2要素認証)

{
    "token": "MiDUwMQqwP1JsfKqbqT1DQ8hJFHEOZfROEUtBvnuqv0ICxvcOybkS1n9/awjrJ9YKijb60GqdUDPP8TW4o8Ei8iI8OXC/dj74KC2cLMxJ2vs/hmYPfbW8OpCwf0k683a2LfIbjcC3Uy/SmDpOsxVdPMTXQEGJHXD3ItmAvoQ5MOoRKfHBNOu7OJBWQjPUjeP0fkHSrx8JgAHSqT5SwRM0mLysFmiFHF0h7/5Apt81dDhZwLBDwwSrl+kTqgn+wnw6rJ432liESdK+yp3Qefk1wAtytoTJkkBE2srqsHJdW4ryVYKk9SKA62Cz7pO3VUaD8Yxx9Ff2Os9ez6TdfBmqg==",
    "two_factor_authentication_code":
    {
        "sms": "*** *** 779",
        "email": "***********@gmail.com"
    }
}

HTTP 応答 (JSON 属性)

応答パラメータ データ形式 詳細
token 文字列 認可で使用されるトークン
two_factor_authentication_code Json dictionary with two keys:
sms - scrubbed user’s SMS number,
email - scrubbed user’s e-mail address (present in response only if TFA scheme is being used).
Code required to complete the Two-Factor Authentication

注記 1:

トークンは以下の時間で期限が切れます:

注記 2:

TFA方式の場合、システムはユーザー モデル のパラメータ 'sms_phone' を使用します。 SMSベースの認証を使用する場合、そのパラメータはユーザの作成時に指定する必要があります(ユーザーの作成 を参照)) ユーザーのパラメータ 'sms_phone' が設定されていない場合、 sms キーの値は 'No sms phone found' になります

注記 3:

TFA関連のユーザ データ(すなわちSMS電話またはEメール)は、ユーザのアカウント作成時に一度設定されると、そのユーザだけが変更することが可能です。この部分の変更は、TFAで認証で使用されます。アカウントのスーパーユーザーは、セキュリティ上の理由からこの部分のデータを変更することはできません

エラー ステータス コード

HTTP ステータス コード 詳細
400 いくつかの引数が不足しているか不正です
401 与えられた認証情報が不正です
402 アカウントは休止中です
460 アカウントは非アクティブです
461 アカウントは保留中です
412* アカウントは無効です
462 ユーザーは保留中です。これはユーザー名が正しく、アカウントがアクティブな際に 401 の前に投げられます。
200 ユーザーが認証されました。ボディにはJSON形式の結果が含まれます

* TFAを使用し、TFAコードを使用して3回以上失敗したためにユーザーのアカウントがロックされている場合は、コード412も返されます

ステップ 2: TFA コードの送信 (TFA方式使用時のみ)

このステップは、ユーザログインにTFA方式が使用されている場合にのみ実行されます(つまり認証コールが応答で 'two_factor_authentication_code' キーを返した場合) それ以外の場合は、ステップ3:認可 に進んで下さい

リクエスト(単純認証)

curl -D - --request POST https://login.eagleeyenetworks.com/g/aaa/two_factor_authenticate --data-urlencode "token=[TOKEN]" "two_factor_authentication_type=sms"
curl -D - --request POST https://login.eagleeyenetworks.com/g/aaa/two_factor_authenticate --data-urlencode "token=[TOKEN]" "two_factor_authentication_type=email"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/two_factor_authenticate

パラメータ データ形式 詳細 必須?
token 文字列 ステップ 1 で受け取ったトークンは true
two_factor_authentication_type 文字列 TFA 形式 ('sms' または 'email' のいずれか) true

HTTP 応答

この API コールは応答時にデータを返しません

注記 1:

TFA コードは 15 分 で期限が切れます

応答状態コード

HTTP 状態コード 詳細
400 いくつかの引数が不足しているか不正です
412 選択したTFAタイプのTFAコードを送信できません
415 指定されたTFAタイプはサポートされていません
200 要求は成功しました(TFAコードがユーザーに送信されました)

Step 3: 認可

認可はログイン プロセスの最終ステップで、最初のステップ(認証)で作成されたトークンを使用します。もし TFA方式を使用している場合には、TFAコードがEメールまたはSMSによってユーザーに送信されています この応答はユーザーオブジェクトの認可を行い、'auth_key' クッキーに設定します。この後に実行するAPIコールでは、可能であればクッキー、またはクッキー内の値を 'A' パラメータとしての、いずれかの方法で送信します。 TFA方式を使用している場合には、このコールはクッキーに 'tfa_key' も設定します。このクッキーの詳細については、認証済みデバイス の項目を参照して下さい。

APIコールはオリジナルの “https://login.eagleeyenetworks.com"(ホストURL) に対して行いますが、APIは認可後に返される ブランド サブドメイン に対して実行しなければなりません。ブランドホストURLは "https://[アクティブなブランド サブドメイン].eagleeyenetworks.com” となり、アクティブなブランド サブドメイン フィールドは認可の応答で返されます。

たとえば右側の応答例では、承認後のホストのURLを 'https://c001.eagleyenetworks.com' に変更する必要があります

それぞれのアカウントは常に同じ ブランド サブドメイン が使用され、同様に同一セッション中も変更されません。 サブドメインのキャッシュは、認可後の active_brand_subdomain に対してクライアント ソフトウェアの確認をより長期間にすることで安全に保ちます。ブランド サブドメイン を使用することは、速度と頑健性上重要です。

要求 (単純認証方式)

curl -D - --request POST https://login.eagleeyenetworks.com/g/aaa/authorize --data-urlencode "token=[TOKEN]"

要求 (TFA方式)

curl -D - --request POST https://login.eagleeyenetworks.com/g/aaa/authorize --data-urlencode "token=[TOKEN]" "two_factor_authentication_code=[TFA_CODE]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/authorize

パラメータ データ形式 詳細 必須?
token 文字列 ステップ 1 で受け取ったトークン true
two_factor_authentication_code 文字列 4桁の数字
TFA方式時のみに使用されます(単純認証で許可する場合は使用されません)

注記 1:

TFAコードによる認証に3回以上失敗すると、ユーザーのアカウントがロックされます。 Eagle Eyeのテクニカルサポート担当者のみがロックを解除することが可能です ユーザーのアカウントがロックされると、ユーザーはこの事象をEメールで通知されます

JSON 応答

{
    "is_sms_include_picture": 0,
    "last_name": "",
    "uid": " ",
    "is_export_video": 1,
    "layouts": [
        "217f0fd4-450f-11e4-a983-ca8312ea370c"
    ],
    "account_map_lines": null,
    "postal_code": null,
    "is_account_superuser": 1,
    "timezone": "US/Pacific",
    "active_brand_subdomain": "c001",
    "sms_phone": null,
    "city": null,
    "first_name": null,
    "user_id": "ca0e1cf2",
    "is_notify_enable": 1,
    "owner_account_id": "00004206",
    "json": "{}",
    "id": "ca0e1cf2",
    "is_superuser": 0,
    "state": null,
    "last_login": "20141006173752.672",
    "is_recorded_video": 1,
    "camera_access": [
        [
            "1005f2ed",
            "r"
        ],
        [
            "100bd708",
            "r"
        ]
    ],
    "notify_period": [
        "0-0000-2359",
        "1-0000-2359",
        "2-0000-2359",
        "3-0000-2359",
        "4-0000-2359",
        "5-0000-2359",
        "6-0000-2359"
    ],
    "email": "john.doe@fakeemail.com",
    "utc_offset": -25200,
    "mobile_phone": null,
    "street": [],
    "notify_rule": [
        "one-email-0"
    ],
    "is_active": 1,
    "is_user_admin": 1,
    "phone": null,
    "is_layout_admin": 1,
    "is_live_video": 1,
    "is_device_admin": 1,
    "is_branded": 1,
    "alternate_email": null,
    "active_account_id": "00004206",
    "access_period": [],
    "is_staff": 0,
    "country": "US",
    "is_master": 0,
    "is_pending": 0
}

HTTP 応答 (JSON 属性)

When successful, this API call returns Json data structure following the User Model 成功すると、このAPI呼び出しは ユーザー モデル に準じたJSONデータ構造を返します。

エラー状態コード

単純認証方式使用時

HTTP 状態コード 詳細
400 いくつかの引数が不足しているか不正です
401 無効なトークンが提供されました
200 ユーザーはそのレルムへのアクセスを許可されました

TFA方式使用時

HTTP 状態コード 詳細
400 いくつかの引数が不足しているか不正です
401 トークンが無効か、TFAコードが見つからないか、有効期限が切れたTFAコードで認証しようとしました
406 無効なTFAが提供されたか、無効なTFAと無効なトークンが提供されました
429 このユーザーのアカウントは、認証を3回以上失敗したためにロックされました
200 ユーザーはそのレルムへのアクセスを許可されました

TFA方式の強制化とオプション時の違い

ユーザーが所属するアカウントに対してTFAを実施するかどうかに応じて、ユーザーは将来、ログイン用にTFAではなく単純認証を選択できる場合があります アカウントがTFAを強制するかどうかを調べるには、アカウントの取得 API呼び出しによって返されたアカウントレコードの 'is_two_factor_authentication_forced' フラグを調べます

このフラグは、アカウントのスーパーユーザーがアカウントの更新 API呼び出しを使用して設定またはクリアすることができます 'is_two_factor_authentication_forced' が0に設定されている場合、ユーザーは単純認証方式に切り替えることができます これはユーザーレコードの 'is_two_factor_authentication_enabled' フラグをクリアすることで実現されます これはアカウントのスーパーユーザーではなく、ユーザー自身によってのみ実施可能です ユーザレコード内のTFA関連フィールドの更新は、専用のTFAアップデートエンドポイント '/g/aaa/two_factor_authenticate/update' によって実行されます。次のセクションを参照してください

TFAの更新

ユーザーレコードに存在するTFA方式に影響を及ぼすデータは、セキュリティ上重要であるため、操作自体がTFAで保護されている専用のエンドポイントを使用してのみ変更することができます このデータは、以下の3つのフィールドを持つユーザー モデルで構成されます:

フィード 詳細 備考 必須?
sms_phone TFAコードを含むテキストメッセージ(SMS)が配信される電話番号 TFAコードの配信にSMSを使用する場合にのみ変更可能
コードは新しい電話番号に配信されます
true
email TFAコードを含むメッセージが配信される電子メールアドレス TFAコードの配信に電子メールを使用する場合にのみ変更可能
コードは新しい電子メールアドレスに配信されます
true
is_two_factor_authentication_enabled 1 - ユーザーはTFAで認証される必要があります
0 - ユーザーは単純な方式で認証されます
TFAコードはSMSまたは電子メール配信で更新可能 true

上記のフィールドは一度に1つずつしか変更できません

TFAの更新は2段階のプロセスです:

1. 更新の要求

この手順は、TFAデータ更新プロセスを開始します

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/two_factor_authenticate/update

パラメータ データ形式 詳細 必須?
two_factor_authentication_type 'sms' または 'email' この更新要求を確認するためにTFAコード配信に使用するメソッドを定義します true
password 文字列 ユーザーのパスワード true
update_json 更新されたフィールドの名前とその新しい値を含むJson構造体。
一度に更新できるフィールドは1つだけです
例:
{
    'sms_phone':'+123456789'
}
true

HTTP 応答

このAPIはデータを返しません

HTTP 状態コード 詳細
400 いくつかの引数が不足しているか不正です (例 'sms_phone'の更新時は、 'two_factor_authentication_type''email' に設定されているか、またはその逆の状態)
401 資格情報が無効です
415 'two_factor_authentication_type' で指定されたTFAコードの配信方法が無効です
200 要求は成功しました(検証に進みます)

2. TFA更新の検証

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/two_factor_authenticate/verify

パラメータ データ形式 詳細 必須?
two_factor_authentication_code 文字列 SMSまたは電子メールで受信した4桁のコード true

HTTP 応答

このAPIはデータを返しません

HTTP Status Code Description
400 いくつかの引数が不足しているか不正です
406 TFAコードが無効です
200 要求が成功しました

認証済みデバイス

ログインプロセスをユーザにとって可能な限り便利にするために、システムは、そのユーザによって以前にTFAベースのログイン成功時に使用されたデバイス上で、単純認証方式の使用を可能にします。Upon a successful TFA-based log in, 認可 API呼び出しは、ブラウザ内のクッキー 'tfa_key' を設定します その後の 認可 API コールの正しいユーザー名とパスワードでの実行は、 認可 の応答に 'two_factor_authentication_code’フィールドがないことを伝える、単純認証方式から始まります。このような場合、 TFAコードの送信 APIコールをスキップして、即座に 認可 APIコールを実行することができます。これは、TFA非対応のユーザーログインのプロセスと同様です

注記 1:

同じ 'tfa_key' 値は、特定のデバイスから過去に正常に認証された複数のユーザーで使用できます 注記 2:

任意のユーザの許可されたデバイスのリストはユーザーレコードの 'user_authenticated_clients' フィールドに保存されます。詳細は ユーザー モデル を参照してください

認証, 認可, アカウント

概要

このサービスは独立した新しいカウントの作成と、アカウントの回復を提供します。もし現在のアカウントに紐付いたサブアカウントの作成を行う場合には、 アカウント を参照してください。

アカウントの作成

これはアカウントに新規のユーザー及びスーパーユーザーを作成する際に使用します。作成プロセスの一部として、サービスはリンクを含んだ確認用のEメールを送信し、ユーザーはそれをクリックしてアカウントのアクティベーションを行う必要があります(アカウントはアクティブ化するまで使用することはできません)

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/create_account --data "email=[EMAIL]&password=[PASSWORD]"

=======

HTTP要求

POST https://login.eagleeyenetworks.com/g/aaa/create_account

パラメータ データ型式 詳細 以下で必須
email 文字列 Eメールアドレス POST
password 文字列 パスワード POST
name 文字列 アカウント名
realm 文字列 レルム (デフォルトは現在のユーザーレルム)
first_name 文字列 ユーザーの名前
last_name 文字列 ユーザーの姓
timezone 文字列 タイムゾーン名
is_api_acces_needed ブール この新規アカウントにAPIアクセス権を与える

エラー状態コード

HTTP 状態コード データ型式
400 無効なセッションクッキーにより認証されませんでした
406 レルムがルート・レルムではないため不正です
409 Eメールアドレスが指定されたレルムに既に登録済みです
202 アカウントは作成され、提供されたEメールアドレスに対して確認Eメールが送信されました

アカウントの確認

これはアカウントの作成時に提供された電子メールアドレスを確認するために使用されます。成功するとアカウントはアクティブに設定され、ユーザーセッションが作成されます。ユーザーは再度ログインする必要はありません。

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/validate_account --data "id=[ID]&token=[TOKEN]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/validate_account

パラメータ データ型式 詳細 必須?
id 文字列 アカウントID true
token 文字列 アカウント検証トークン true

JSON 応答

{
    "user_id": "ca103fea"
}

HTTP要求

POST https://login.eagleeyenetworks.com/g/aaa/validate_account

パラメータ データ型式 詳細 以下で必須
id 文字列 アカウントID POST
token 文字列 アカウント検証トークン POST

HTTP Json Attributes

パラメータ データ型式 詳細
user_id 文字列 検証されたユーザーの一意の識別子

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
406 検証できな情報が与えられました
409 アカウントは既にアクティブ化済みです
412 ユーザーが無効です
460 アカウントは非アクティブです
200 ユーザーにレルムに対してのアクセス許可を与えられました

パスワードの紛失

パスワードリカバリは、複数のステップからなるプロセスです:

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/forgot_password --data "email=[EMAIL]"

HTTP要求

POST https://login.eagleeyenetworks.com/g/aaa/forgot_password

パラメータ データ型式 詳細 必須
email 文字列 Eメール アドレス True

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
406 検証できな情報が与えられました
412 ユーザーが無効です
460 アカウントは非アクティブです
461 アカウントは保留中です
462 ユーザーは保留中です
202 指定されたEメールアドレスにリセット用のEメールが送信されました。これはEメールアドレスが見つからなかった場合でも実行されます。これにより、攻撃者がユーザーアカウントを探す事を防くことができます。

パスワードのリセット トークンの確認

これはパスワード回復/リセットプロセスのステップ2です。提供されたトークンが有効なリセット トークンであることを確認します。

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/check_pw_reset_token --data "token=[TOKEN]"

HTTP要求

POST https://login.eagleeyenetworks.com/g/aaa/check_pw_reset_token

パラメータ データ型式 詳細 必須?
token 文字列 電子メールでパスワードリセットトークンを提供 True

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
406 検証できな情報が与えられました
412 ユーザーが無効です
460 アカウントは非アクティブです
461 アカウントは保留中です
202 トークンは有効です

パスワードのリセット

これはパスワード回復/リセットプロセスのステップ3です。どちらも、提供されたトークンが有効なリセットトークンであることを検証し、有効であればトークンに関連付けられたパスワードを新しく提供されたパスワードにリセットします。完了すると、ユーザーログインセッションが作成されます

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/reset_password --data "token=[TOKEN]&password=[PASSWORD]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/reset_password

パラメータ データ型式 詳細 必須?
token 文字列 Eメールで提供されたパスワード リセット トークン true
password 文字列 新しいパスワード true
accepted_terms_of_service_urls 文字列 新しい利用規約の確認URL

JSON 応答

{
    "user_id": "ca0e1cf2"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
user_id 文字列 検証されたユーザーの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
406 検証できな情報が与えられました
412 ユーザーが無効です
460 アカウントは非アクティブです
461 アカウントは保留中です
200 ユーザーにレルムに対してのアクセス許可を与えられました

登録用Eメールの再送

アカウントに登録ずみであるにもかかわらず、登録の確認していないユーザーに使用します。これにより、登録確認メールを再送信することができます

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/resend_registration_email --data "email=[EMAIL]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/resend_registration_email

パラメータ データ型式 詳細 必須?
email 文字列 保留中のアカウントのアカウント担当者のEメールアドレス true
realm 文字列 レルム (デフォルトは現在のユーザーレルム)

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
404 指定されたEメール アドレスとレルムのユーザーが見つかりません
409 アカウントは既にアクティブ化済みです(非保留)
412 ユーザーが無効です
460 アカウントは非アクティブです
202 ユーザーは存在し、検証ため保留状態になりました。確認Eメールが再作成され、Eメールアドレスに送信されました

ユーザー確認用Eメールの再送

ユーザーアカウントが作成済みであるにもかか、ユーザーアカウントを確認していないユーザーに使用します。これにより、ユーザーに確認メールを再送信することができます

要求

curl --request POST https://login.eagleeyenetworks.com/g/aaa/resend_user_verification_email --data "email=[EMAIL]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/resend_user_verification_email

パラメータ データ型式 詳細 必須?
email 文字列 新規ユーザーのEメール アドレス true
realm 文字列 レルム (デフォルトは現在のユーザーレルム)

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
402 アカウントは停止中です
404 指定されたEメール アドレスとレルムのユーザーが見つかりません
409 アカウントは既にアクティブ化済みです(非保留)
412 ユーザーが無効です
460 アカウントは非アクティブです
461 アカウントは保留中です
202 ユーザーは存在し、検証ため保留状態になりました。確認Eメールが再作成され、Eメールアドレスに送信されました

パスワードの変更

これを使用することで、認証済みのユーザーはパスワードを直接変更することができます。また、スーパーユーザーは管理対象のユーザーのパスワードを変更することもできます。

要求

curl --cookie "auth_key=[AUTH_KEY]&api_key=[API_KEY]" --request POST https://login.eagleeyenetworks.com/g/aaa/change_password --data "password=[PASSWORD]&current_password=[CURRENT_PASSWORD]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/change_password

パラメータ データ型式 詳細 必須?
password 文字列 新しいパスワード true
id 文字列 パスワードを変更したユーザのID。これはオプションです。デフォルトでは認証されたユーザーのIDです。空の場合、または認証されたユーザと等しい場合は、「current_password」が必要になります
current_password 文字列 ユーザーの現在のパスワード。これはオプションです。"id"引数が空であるか、認証されたユーザのIDと等しい場合、この項目は必須です

JSON 応答

{
    "id": "ca02c000"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 パスワードを変更したユーザーの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
404 提供された 'id' のユーザーは見つかりませんでした
406 提供された 'current_password' は認証されたユーザーのパスワードと一致しませんでした

アカウントの切り替え

ユーザーは、アクセス権を持つ別のアカウントに「ログイン」することができます([アカウント一覧の取得](#get-list-of-accounts)を参照)。一般的には、これは、サブアカウントにアクセスするマスターアカウントユーザーに必要な機能です。 [アカウント](#アカウント)モデルのアカウントにのみ適用されます

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/aaa/switch_account

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/switch_account

パラメータ データ型式 詳細
account_id 文字列 ログインするアカウントのID。これはオプションです。デフォルトはユーザーが所属するアカウントのIDです

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
404 'account_id' が提供されているアカウントが見つかりませんでした
200 アカウントのコンテキスト切り替えに成功しました

シングル・サインオン

SSOを使用すると、リセラーはアカウント管理を維持しながら、ユーザーがIDプロバイダシステムにログインした後にシステムプロキシにEagle Eye Networkサーバーへの認証要求を行うためのIDプロバイダとして機能することができます

これは標準のSAML(Security Assertion Markup Language)によって行われます。そのため、IDプロバイダは brand_saml_publickey_ret および brand_saml_namedid_path でアカウントを設定します

アイデンティティプロバイダのアカウントがSSO用に登録されると、アイデンティティプロバイダはユーザを検証し、ユーザの電子メールアドレスとリターンリンクを使用してシングルサインオン要求を行うことができます この64ビットの暗号化されたメッセージはヘッダーから展開され、saml公開鍵で使用するためにデコードと検証が行われます 次に、samlという名前のIDパスを使用して、ユーザーの電子メールが抽出され、そのユーザーに対してauth_keyが提供されます

要求

curl --request POST https://login.eagleeyenetworks.com/g/sso

HTTP要求

POST https://login.eagleeyenetworks.com/g/sso

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
404 'account_id' が提供されているアカウントが見つかりませんでした
200 アカウントコンテキストの切り替えに成功しました

ログアウト

ユーザーをログアウトして、HTTPセッションCookieを無効にします

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/aaa/logout

HTTP 要求

POST https://login.eagleeyenetworks.com/g/aaa/logout

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
204 ユーザーはログアウトされました

アカウント

概要

アカウントサービスはスーパーユーザー及びアカウントスーパーユーザーによって管理します

アカウント モデル

アカウント モデル

{
    "is_master_video_disabled_allowed": 1,
    "is_inactive": 0,
    "is_suspended": 0,
    "brand_name": null,
    "alert_mode": [
        "default",
        "Weekend"
    ],
    "is_master_video_disabled": 0,
    "contact_state": null,
    "first_responders": [
        [
            "mark@responders.com",
            "Mark",
            "O'Malley",
            "Responders",
            "Fake Account"
        ],
        [
            "jeff@noaccount.com",
            "Jeff",
            "O'Unverified",
            "Unverified Organization",
            "No Account"
        ],
        ...
    ],
    "contact_first_name": "Willem",
    "is_disable_all_settings": 0,
    "timezone": "US/Pacific",
    "id": "11111111",
    "contact_country": "US",
    "is_system_notifications_disabled": 0,
    "camera_shares": [
        [
            "12345678",
            "joe@em.com,His account",
            "joe2@dd.com,That account"
            ...
        ],
        ...
    ],
    "owner_account_id": "1010101b",
    "product_edition": null,
    "cc_info": [
        {
            "city": "",
            "name": "",
            "default": "",
            "street1": "",
            "street2": "",
            "number": "",
            "state": "",
            "tag": "",
            "postal_code": "",
            "expire": "",
            "country": "US",
            "type": ""
        }
    ],
    "brand_saml_publickey_cert": null,
    "brand_support_email": null,
    "is_billing_disabled": 0,
    "is_advanced_disabled": 0,
    "inactive_session_timeout": 720,
    "brand_logo_large": null,
    "brand_corp_url": null,
    "responder_active": true,
    "contact_street": [],
    "is_system_notification_images_enabled": 1,
    "is_custom_brand_allowed": 0,
    "holiday": [
        "20180101",
        "20180527",
        "20180704",
        "20180902",
        "20181128",
        "20181225"
    ],
    "is_rtsp_cameras_enabled": 0,
    "brand_saml_nameid_path": null,
    "is_contract_recording": 0,
    "utc_offset": -28800,
    "session_duration": 480,
    "is_custom_brand": 0,
    "contact_postal_code": null,
    "brand_logo_small": null,
    "is_active": 1,
    "work_days": "1111111",
    "is_add_delete_disabled": 0,
    "is_master": 0,
    "contact_email": "support@eagleeyenetworks.com",
    "responder_cameras": [
        "1010fake",
        "not1c4mr"
    ],
    "brand_support_phone": null,
    "map_lines": null,
    "contact_mobile_phone": null,
    "work_hours": [
        "0800",
        "1730"
    ],
    "login_attempt_limit": null,
    "default_cluster": "c000",
    "customer_id": "1234",
    "name": "Account Name",
    "contact_city": null,
    "default_camera_passwords": "pwordpword",
    "contact_phone": null,
    "access_restriction": [
        "enable_mobile"
    ],
    "active_alert_mode": "default",
    "allowable_ip_address_range": [],
    "contact_last_name": "Dafoe",
    "contact_utc_offset": null,
    "camera_quantity": null,
    "brand_subdomain": "c000"
}

アカウント (属性)

パラメータ データ形式 詳細 編集可 必須
id 文字列 Unique identifier of the account


name 文字列 Name of the account
contact_first_name 文字列 First name of primary contact for account
contact_last_name 文字列 Last name of primary contact for account
contact_email 文字列 Email of primary contact for account
contact_street 配列[文字列] Array of strings containing street addresses of the primary contact for account ['address line 1', 'address line 2']
contact_city 文字列 City of primary contact for account
contact_state 文字列 State/province of primary contact for account
contact_postal_code 文字列 Zip/postal code of primary contact for account
contact_country 文字列 Country code of primary contact for account
contact_phone 文字列 Phone number of primary contact for account
contact_mobile_phone 文字列 Mobile phone number of primary contact for account
owner_account_id 文字列 ID of the parent account. Defaults to the account of the creating user
timezone 文字列 Timezone of the account. Defaults to 'US/Pacific'

Possible values:
'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage', 'UTC', …
status 配列[文字列] Account status. This can only be edited by superusers and account superusers from the parent/owner account

Possible values:
'active' - normal working state
'inactive' - logins are not allowed
'suspended' - effectively no longer operational
'pending_validation' - default state after account creation (before the user has validated the account)
utc_offset 整数 Signed integer offset in seconds of the timezone from UTC. Automatically generated based on the timezone field
access_restriction 配列[文字列] Array of strings containing access restrictions. Possible values: 'enable_mobile' = If present this account has access to mobile clients. 'enable_ip_restrictions' = if present and if 'allowable_ip_address_range' has been specified, limits logins to the address ranges specified
allowable_ip_address_range 配列[文字列] Each entry in the array specifies one address range. Entries use the '/' format. For example, to limit access to '192.168.123.0-192.168.123.255', the entry would be '192.168.123.0/24'. If no entries are present, '0.0.0.0/0' is implied
session_duration 整数 Session duration in minutes. Session duration of 0 means stay logged in forever
holiday 配列[文字列] Array of strings containing dates during which holidays are observed. Format for dates is YYYYMMDD
work_days 文字列 String of length 7. Each position in the string corresponds to a day of the week. Monday is position 0, Tuesday is position 1, etc. Each character in the string can have a value of 1 or 0. 1 means that this day is a work day
work_hours 配列[文字列] Two entries. Each entry containing a time expressed in local time. The first entry in the array is the work day start time. The second entry in the array is the stop time. Times are represented using a 24 hour clock and are formatted as HHMM

Example: 8AM would be 0800 and 5PM would be 1700
alert_mode 配列[文字列] Array of strings containing possible alert modes as defined for this account. Accepts an array of any number of strings of varying length. This controls what values are able to be chosen for the 'active_alert_mode' field
active_alert_mode 文字列 A string chosen from values in the account 'alert_mode' array. Must be blank or one of the values defined in the alert_mode array. This is used to determine when to send motion alert notifications (defined by camera settings in the device model). If a motion alert is defined with an alert mode from one of the strings in the account ‘alert_mode’ array, then the notifications triggered from that motion alert will only be sent when the account 'active_alert_mode' is also set to that same alert mode string defined for that motion alert
default_camera_passwords 文字列 Comma-delimited string of default camera passwords
camera_shares 配列[配列[文字列]] Array of arrays with each sub-array representing a camera to be shared to 1 or more recipients. First element is camera ID. Second element is a string containing 1 or multiple recipients. All recipients are a single string value of 'email,account,email,account,...'

Example: [['12345678', 'joe@em.com,His account,joe2@dd.com,That account']]
is_revoke_admins 整数 Indicates whether to revoke all admin permissions for the users in the account (1) or not (0). This field doesn’t save anything on the account itself. It will revoke admin privileges of any admins in the account
is_master 整数 Indicates whether the account is a master account (1) or not (0)
is_active 整数 Indicates whether the account is active (1) or not (0)
is_inactive 整数 Indicates whether the account is inactive (1) or not (0)
is_suspended 整数 Indicates whether the account is suspended (1) or not (0)
product_edition 文字列 Product edition the account is using
camera_quantity 整数 Total number of cameras the account is allowed to use
is_custom_brand_allowed 整数 Indicates whether the account is allowed to have branding (1) or not (0)
is_custom_brand 整数 Indicates whether the account has branding enabled (1) or not (0)
brand_logo_small 文字列 Base64 encoded image for the branded small logo (PNG, 160x52, transparent background)
brand_logo_large 文字列 Base64 encoded image for the branded large logo (PNG, 460x184, white background)
brand_subdomain 文字列 Sub domain for the branded url
brand_corp_url 文字列 Corporate website url
brand_name 文字列 Branded company name
brand_saml_publickey_cert 文字列 Public certificate which Eagle Eye Networks will use to decrypt the SAML for SSO
brand_saml_nameid_path 文字列 The path within the SAML xml to find the users email address
is_without_initial_user 文字列 Indicates whether to create the new account without an initial user (1) or not (0). Defaults to 0, meaning an initial user with 'is_account_superuser=1' will be created using the arguments 'contact_first_name/contact_last_name/contact_email' specified upon account creation
customer_id 文字列 Arbitrary ID assigned to a sub-account by a master account
is_master_video_disabled_allowed 整数 Indicates whether a sub-account can block video access to reseller (1) or not (0)
is_master_video_disabled 整数 Indicates whether video access is blocked to reseller (1) or not (0)
is_contract_recording 整数 Indicates whether the account is of type contract_recording. Controls whether contract recording features are enabled for the users in this account on the front-end GUI (1) or not (0)
is_advanced_disabled 整数 Indicates whether the reseller has disabled advanced functionality (1) or not (0) If this is set for a sub-account, the users in the sub-account cannot change any settings related to bandwidth, billing (retention and resolution) and certain account settings. Master users switched in still can modify these things if their permissions allow it
is_billing_disabled 整数 Indicates whether the reseller has disabled editing settings in a sub-account that affect billing (1) or not (0). This controls whether users can change camera resolution/retention, add/delete cameras, etc
is_add_delete_disabled 整数 Indicates whether the reseller has disabled adding or deleting devices (1) or not (0)
is_disable_all_settings 整数 Indicates whether the reseller has disabled all device and most account settings (1) or not (0). Does not affect editing users, layouts, or sharing
first_responders 配列[配列[文字列]] Array of arrays with each sub-array representing an emergency responder. Accounts can identify a list of email accounts that will serve as emergency responders. Emergency responders get access to the identified 'responder_cameras' during an emergency (triggered by setting 'responder_active'). A responder is identified by their email, first name, last name, company and their account

Example: [['mark@responders.com', 'Mark', 'O'Malley', 'Responders', 'Fake Account']]
responder_active Indicates whether the responder cameras can be seen by the users defined under 'first_responders'
responder_cameras 配列[文字列] Array of camera ESNs that are shared to first responders
inactive_session_timeout 整数 Maximum time period in seconds without activity before web session expires
login_attempt_limit 整数 Maximum incorrect login attempts before the user account access becomes locked
is_rtsp_cameras_enabled 整数 Indicates whether the account can have cameras attached over RTSP (instead of ONVIF) (1) or not (0)
brand_support_phone 文字列 Branded support phone number
default_cluster 文字列 Indicates the data center cluster the account is assigned to
is_system_notification_images_enabled 整数 Indicates whether email notifications about online/offlice status should contain images from those cameras (1) or not (0)
map_lines json This is used by the front end to overlay lines over a map of the cameras for the account
contact_utc_offset 整数 This field is no longer being used (DEPRECATED)

アカウントの取得

アカウント オブジェクトをIDで返します

要求

curl -G https://login.eagleeyenetworks.com/g/account -d "id=[ID]&A=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/account

パラメータ データ型式 詳細 必須?
id string アカウントの一意の識別子 true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限が見つからなかったため禁止されました
404 提供された ID によるアカウントが見つかりませんでした
200 要求は成功しました

アカウントの作成

新規アカウントを作成します

要求

curl -X PUT https://login.eagleeyenetworks.com/g/account -d '{"name": "[NAME]", "contact_first_name": "[CONTACT_FIRST_NAME]", "contact_last_name": "[CONTACT_LAST_NAME]", "contact_email": "[CONTACT_EMAIL]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/account

パラメータ データ型式 詳細 必須?
name 文字列 Name of the account true
contact_first_name 文字列 First name of primary contact for account true
contact_last_name 文字列 Last name of primary contact for account true
contact_email 文字列 Email of primary contact for account true
contact_street 配列[文字列] Array of strings containing street addresses of the primary contact for account ['address line 1', 'address line 2']
contact_city 文字列 City of primary contact for account
contact_state 文字列 State/province of primary contact for account
contact_postal_code 文字列 Zip/postal code of primary contact for account
contact_country 文字列 Country code of primary contact for account
owner_account_id 文字列 ID of the parent account. Defaults to the account of the creating user
timezone 文字列 Timezone of the account. Defaults to 'US/Pacific'

Possible values:
'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage', 'UTC', …
status 配列[文字列] Account status. This can only be edited by superusers and account superusers from the parent/owner account

Possible values:
'active' - normal working state
'inactive' - logins are not allowed
'suspended' - effectively no longer operational
'pending_validation' - default state after account creation (before the user has validated the account)
access_restriction 配列[文字列] Array of strings containing access restrictions. Possible values: 'enable_mobile' = If present this account has access to mobile clients. 'enable_ip_restrictions' = if present and if 'allowable_ip_address_range' has been specified, limits logins to the address ranges specified
allowable_ip_address_range 配列[文字列] Each entry in the array specifies one address range. Entries use the '/' format. For example, to limit access to '192.168.123.0-192.168.123.255', the entry would be '192.168.123.0/24'. If no entries are present, '0.0.0.0/0' is implied
session_duration 整数 Session duration in minutes. Session duration of 0 means stay logged in forever
holiday 配列[文字列] Array of strings containing dates during which holidays are observed. Format for dates is YYYYMMDD
work_days 配列[文字列] String of length 7. Each position in the string corresponds to a day of the week. Monday is position 0, Tuesday is position 1, etc. Each character in the string can have a value of 1 or 0. 1 means that this day is a work day
work_hours 配列[文字列] Two entries. Each entry containing a time expressed in local time. The first entry in the array is the work day start time. The second entry in the array is the stop time. Times are represented using a 24 hour clock and are formatted as HHMM

Example: 8AM would be 0800 and 5PM would be 1700
alert_mode 配列[文字列] Array of strings containing possible alert modes as defined for this account. Accepts an array of any number of strings of varying length. This controls what values are able to be chosen for the 'active_alert_mode field'
active_alert_mode 文字列 A string chosen from values in the account 'alert_mode' array. Must be blank or one of the values defined in the alert_mode array. This is used to determine when to send motion alert notifications (defined by camera settings in the device model). If a motion alert is defined with an alert mode from one of the strings in the account 'alert_mode’ array, then the notifications triggered from that motion alert will only be sent when the account 'active_alert_mode' is also set to that same alert mode string defined for that motion alert
default_camera_passwords 文字列 Comma-delimited string of default camera passwords
is_without_initial_user 整数 Indicates whether to create the new account without an initial user (1) or not (0). Defaults to 0, meaning an initial user with 'is_account_superuser=1' will be created using the arguments 'contact_first_name/contact_last_name/contact_email' specified upon account creation
is_initial_user_not_admin 整数 Indicates whether the initial user is an admin (0) or not (1)

JSON応答

{
    "id": "1234abcd"
}

HTTP 応答 (JSON属性)

パラメータ データ形式 詳細
id 文字列 アカウントの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
409 指定された連絡先メールアドレスを持つ別のアカウントが既に存在します

アカウントの更新

アカウント情報を更新します

要求

curl -X POST https://login.eagleeyenetworks.com/g/account -d '{"id": "[ACCOUNT_ID]", "contact_first_name": "[CONTACT_FIRST_NAME]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/account

パラメータ データ形式 詳細 必須?
id 文字列 Unique identifier of the account true
name 文字列 Name of the account
contact_first_name 文字列 First name of primary contact for account
contact_last_name 文字列 Last name of primary contact for account
contact_email 文字列 Email of primary contact for account
contact_street 配列[文字列] Array of strings containing street addresses of the primary contact for account ['address line 1', 'address line 2']
contact_city 文字列 City of primary contact for account
contact_state 文字列 State/province of primary contact for account
contact_postal_code 文字列 Zip/postal code of primary contact for account
contact_country 文字列 Country code of primary contact for account
contact_phone 文字列 Phone number of primary contact for account
contact_mobile_phone 文字列 Mobile phone number of primary contact for account
timezone 文字列 Timezone of the account. Defaults to 'US/Pacific'

Possible values:
'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage', 'UTC', …
status 配列[文字列] Account status. This can only be edited by superusers and account superusers from the parent/owner account

Possible values:
'active' - normal working state
'inactive' - logins are not allowed
'suspended' - effectively no longer operational
'pending_validation' - default state after account creation (before the user has validated the account)
access_restriction 配列[文字列] Array of strings containing access restrictions. Possible values: 'enable_mobile' = If present this account has access to mobile clients. 'enable_ip_restrictions' = if present and if 'allowable_ip_address_range' has been specified, limits logins to the address ranges specified
allowable_ip_address_range 配列[文字列] Each entry in the array specifies one address range. Entries use the '/' format. For example, to limit access to '192.168.123.0-192.168.123.255', the entry would be '192.168.123.0/24'. If no entries are present, '0.0.0.0/0' is implied
session_duration 整数 Session duration in minutes. Session duration of 0 means stay logged in forever
holiday 配列[文字列] Array of strings containing dates during which holidays are observed. Format for dates is YYYYMMDD
work_days 配列[文字列] String of length 7. Each position in the string corresponds to a day of the week. Monday is position 0, Tuesday is position 1, etc. Each character in the string can have a value of 1 or 0. 1 means that this day is a work day
work_hours 配列[文字列] Two entries. Each entry containing a time expressed in local time. The first entry in the array is the work day start time. The second entry in the array is the stop time. Times are represented using a 24 hour clock and are formatted as HHMM

Example: 8AM would be 0800 and 5PM would be 1700
alert_mode 配列[文字列] Array of strings containing possible alert modes as defined for this account. Accepts an array of any number of strings of varying length. This controls what values are able to be chosen for the 'active_alert_mode field'
active_alert_mode 文字列 A string chosen from values in the account 'alert_mode' array. Must be blank or one of the values defined in the alert_mode array. This is used to determine when to send motion alert notifications (defined by camera settings in the device model). If a motion alert is defined with an alert mode from one of the strings in the account 'alert_mode' array, then the notifications triggered from that motion alert will only be sent when the account 'active_alert_mode' is also set to that same alert mode string defined for that motion alert
default_camera_passwords 文字列 Comma-delimited string of default camera passwords
camera_shares 配列[配列[文字列]] Array of arrays with each sub-array representing a camera to be shared to 1 or more recipients. First element of the sub-array is action, with 'M' for add/update or 'D' for delete. Second element is camera ID. Third element is a string containing 1 or multiple recipients. All recipients are a single string value of 'email,account,email,account,...' and are only present in the 'M' action

Example: [['M', '12345678', 'joe@em.com,His account,joe2@dd.com,That account']]
is_revoke_admins 整数 Indicates whether to revoke all admin permissions for the users in the account (1) or not (0). This field doesn’t save anything on the account itself. It will revoke admin privileges of any admins in the account
is_custom_brand 整数 Indicates whether the account has branding enabled (1) or not (0)
brand_logo_small 文字列 Base64 encoded image for the branded small logo (PNG, 160x52, transparent background)
brand_logo_large 文字列 Base64 encoded image for the branded large logo (PNG, 460x184, white background)
brand_subdomain 文字列 Sub domain for the branded url
brand_corp_url 文字列 Corporate website url
brand_name 文字列 Branded company name
brand_saml_publickey_cert 文字列 Public certificate which Eagle Eye Networks will use to decrypt the SAML for SSO
brand_saml_nameid_path 文字列 The path within the SAML xml to find the users email address
is_master_video_disabled_allowed 整数 Indicates whether a sub-account can block video access to reseller (1) or not (0)
is_master_video_disabled 整数 Indicates whether video access is blocked to reseller (1) or not (0)
is_contract_recording 整数 Indicates whether the account is of type contract_recording. Controls whether contract recording features are enabled for the users in this account on the front-end GUI (1) or not (0)
is_advanced_disabled 整数 Indicates whether the reseller has disabled advanced functionality (1) or not (0). If this is set for a sub-account, the users in the sub-account cannot change any settings related to bandwidth, billing (retention and resolution) and certain account settings. Master users switched in still can modify these things if their permissions allow it
is_billing_disabled 整数 Indicates whether the reseller has disabled editing settings in a sub-account that affect billing (1) or not (0). This controls whether users can change camera resolution/retention, add/delete cameras, etc
is_add_delete_disabled 整数 Indicates whether the reseller has disabled adding or deleting devices (1) or not (0)
is_disable_all_settings 整数 Indicates whether the reseller has disabled all device and most account settings (1) or not (0). Does not affect editing users, layouts, or sharing
first_responders 配列[配列[文字列]] Array of arrays with each sub-array representing an emergency responder. Accounts can identify a list of email accounts that will serve as emergency responders. Emergency responders get access to the identified 'responder_cameras' during an emergency (triggered by setting 'responder_active'). A responder is identified by their email, first name, last name, company and their account

Example: [['mark@responders.com', 'Mark', 'O'Malley', 'Responders', 'Fake Account']]
responder_active Indicates whether the responder cameras can be seen by the users defined under 'first_responders'
responder_cameras 配列[文字列] Array of camera ESNs that are shared to first responders
inactive_session_timeout 整数 Maximum time period in seconds without activity before web session expires
login_attempt_limit 整数 Maximum incorrect login attempts before the user account access becomes locked
is_rtsp_cameras_enabled 整数 Indicates whether the account can have cameras attached over RTSP (instead of ONVIF) (1) or not (0)
brand_support_phone 文字列 Branded support phone number
default_cluster 文字列 Indicates the data center cluster the account is assigned to
customer_id 文字列 Arbitrary ID assigned to a sub-account by a master account
is_system_notification_images_enabled 整数 Indicates whether email notifications about online/offlice status should contain images from those cameras (1) or not (0)
map_lines 文字列 This is used by the front end to overlay lines over a map of the cameras for the account
contact_utc_offset 整数 This field is no longer being used (DEPRECATED)

JSON応答

{
    "id": "1234abcd"
}

HTTP 応答 (JSON属性)

パラメータ データ形式 詳細
id 文字列 アカウントの一意の識別子

エラー状態コード

HTTP状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限が見つからなかったため禁止されました
404 提供された ID によるアカウントが見つかりませんでした
200 要求は成功しました

アカウントの削除

アカウントを削除します

要求

curl -X DELETE https://login.eagleeyenetworks.com/g/account -d "id=[ACCOUNT_ID]" -G -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

DELETE https://login.eagleeyenetworks.com/g/account

パラメータ データ型式 詳細
id 文字列 アカウント ID

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限が見つからなかったため禁止されました
404 提供された ID によるアカウントが見つかりませんでした
200 削除は成功しました

アカウント リストの取得

ユーザーが使用できるアカウントを表すそれぞれにサブ配列を持つ配列の配列を返します。

要求

curl --request GET https://login.eagleeyenetworks.com/g/account/list --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/account/list

JSON 応答

[
    [
        "00004206",
        "Greater God",
        0,
        0,
        1,
        0,
        0,
        1,
        null,
        0,
        0,
        0,
        0,
        0,
        0,
        "20180228234555.722",
        0,
        "Greater ID"
    ],
    [...],
    [...]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ形式 詳細
0 id 文字列 Unique identifier for the account
1 name 文字列 Name of the account
2 camera_online_count 整数 Number of cameras currently online in the account
3 camera_count 整数 Number of cameras currently in the account
4 user_count 整数 Number of users currently in the account
5 is_suspended 整数 Indicates whether the account is suspended (1) or not (0)
6 is_inactive 整数 Indicates whether the account is inactive (1) or not (0)
7 is_active 整数 Indicates whether the account is active (1) or not (0)
8 product_edition 文字列 Product edition the account is using
9 bridge_online_count 整数 Number of online bridges owned by the account
10 bridge_active_count 整数 Number of active bridges owned by the account
11 bridge_count 整数 Number of bridges owned by the account
12 camera_off_count 整数 Number of account cameras that are currently offline
13 camera_available_count 整数 Number of available cameras in the account
14 is_account_active 整数 Indicates the account is active (1) or not (0)
15 last_login 文字列 EEN timestamp of the last login by this account
16 average_retention_days 整数 The average number of retention days for the account
17 customer_id 文字列 The customer ID assigned to this account

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限が見つからなかったため禁止されました
200 要求は成功しました

ユーザー

概要

ユーザーサービスでは、権限レベルに合わせてユーザーを管理できます

ユーザー モデル

ユーザー モデル

{
    "id": "ca0e1cf2",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email": "john.doe@fakeemail.com",
    "owner_account_id": "00004206",
    "active_account_id": "00004206",
    "uid": " ",
    "is_superuser": 0,
    "is_account_superuser": 1,
    "is_staff": 0,
    "is_active": 1,
    "is_pending": 0,
    "is_master": 1,
    "is_user_admin": 1,
    "is_layout_admin": 1,
    "is_live_video": 1,
    "is_device_admin": 1,
    "is_export_video": 1,
    "is_recorded_video": 1,
    "is_edit_cameras": 1,
    "is_edit_all_users": 1,
    "is_edit_account": 1,
    "is_system_notifications_disabled": 0,
    "is_edit_ptz_stations": 1,
    "is_view_preview_video": 1,
    "is_edit_camera_on_off": 1,
    "is_edit_camera_less_billing": 1,
    "is_edit_all_and_add": 1,
    "is_edit_sharing": 1,
    "is_mobile_branded": 0,
    "is_edit_admin_users": 1,
    "is_view_contract": 1,
    "is_ptz_live": 1,
    "is_view_audit_trail": 1,
    "is_edit_users": 1,
    "is_edit_motion_areas": 1,
    "is_two_factor_authentication_enabled": 0,
    "user_authenticated_clients": null,
    "account_utc_offset": -21600,
    "account_work_days": "1111100",
    "account_work_hours": ["0800", "1730"],
    "language": "en-us",
    "inactive_session_timeout": 15,
    "street": ["address line 1", "address line 2"],
    "city": "New York",
    "state": "Alaska",
    "country": "US",
    "postal_code": "9980-999",
    "phone": "111111111",
    "mobile_phone": "000000000",
    "utc_offset": -21600,
    "timezone": "US/Pacific",
    "last_login": "20181006173752.672",
    "alternate_email": "alternate.email@fakeemail.com",
    "sms_phone": "222111222",
    "is_sms_include_picture": 0,
    "json": "{}",
    "camera_access": [
        [
            "1005f2ed",
            "r"
        ],
        [
            "100bd708",
            "r"
        ]
    ],
    "layouts": [
        "217f0fd4-450f-11e4-a983-ca8312ea370c"
    ],
    "is_notify_enable": 1,
    "notify_period": [
        "0-0000-2359",
        "1-0000-2359",
        "2-0000-2359",
        "3-0000-2359",
        "4-0000-2359",
        "5-0000-2359",
        "6-0000-2359"
    ],
    "notify_rule": [
        "one-email-0"
    ],
    "is_branded": 1,
    "active_brand_subdomain": "login",
    "account_map_lines": null,
    "access_period": [
        "0-0000-2359",
        "1-0000-2359",
        "2-0000-2359",
        "3-0000-2359",
        "4-0000-2359",
        "5-0000-2359",
        "6-0000-2359"
    ],
    "is_terms_noncompliant": 1
}

ユーザー (属性)

パラメータ データ形式 説明 編集可能 必須?
id 文字列 ユーザーの一意な識別子

first_name 文字列 ユーザーの名
last_name 文字列 ユーザーの姓
email 文字列 認可されたユーザーのEメール (このEメールはASCII文字のみ必要)
owner_account_id 文字列 ユーザーが所属するアカウントの一意の識別子
active_account_id 文字列 ユーザーのアクティブなアカウントの一意の識別子。サブアカウントに切り替えると、そのユーザーのセッションの 'active_account_id' が、切り替えられたサブアカウントの一意の識別子になります
uid 文字列 ユーザーの識別子 (内部利用のみ)
is_staff 整数 ユーザーがスタッフであるか(1)、ないか(0) (内部利用のみ)
is_superuser 整数 ユーザーがスーパーユーザーであるか(1)、ないか(0)かを示します。スーパーユーザーだけがこれを設定できます (内部利用のみ)
is_account_superuser 整数 ユーザーがアカウントのスーパーユーザーである(1)かないか(0)を示します
is_active 整数 ユーザーがアクティブか(1)、ないか(0)を示します
is_pending 整数 ユーザーが保留中か(1)、ないか(0)を示します
is_master 整数 ユーザーがマスターアカウントにあるか(1)、ないか(0)を示します
is_user_admin 整数 これは下位互換性のためのパラメータです (廃止予定)
is_layout_admin 整数 ユーザーがレイアウト管理者か(1)、ないか(0)を示します
is_live_video 整数 ユーザーがライブビデオにアクセスする権限を持っているか(1)、ないか(0)を示します
is_device_admin 整数 これは下位互換性のためのパラメータです (廃止予定)
is_export_video 整数 ユーザーがビデオのエクスポートを許可を持っているか(1)、ないか(0)を示します
is_recorded_video 整数 ユーザーが記録されたビデオを見る権限を持っているか(1)、ないか(0)を示します
is_edit_cameras 整数 ユーザーがカメラの編集権限を持っているか(1)、ないか(0)を示します
is_edit_all_users 整数 マスターアカウントの管理者でないユーザーで、ユーザーを管理する権限が付与されているか(1)、ないか(0)を示します
is_edit_account 整数 ユーザーがアカウント設定を編集する権限を持っているか(1)、ないか(0)を示します
is_system_notifications_disabled 整数 ユーザーが所属するアカウントにシステム通知が無効か(1)、ないか(0)かが反映されます。trueの場合、ユーザーはアカウント内のカメラのシステムアラート通知を受け取ることができません
is_edit_ptz_stations 整数 ユーザーがPTZステーションを編集する権限を持っているか(1)、ないか(0)を示します
is_view_preview_video 整数 ユーザーがカメラからプレビュー画像を表示する権限を持っているか(1)、ないか(0)を示します
is_edit_camera_on_off 整数 ユーザーがカメラをオンまたはオフにする権限を持っているか(1)、ないか(0)を示します
is_edit_camera_less_billing 整数 ユーザーが保存期間およびフルビデオの解像度以外のすべてのカメラ設定を編集する権限を持っているか(1)、ないか(0)を示します
is_edit_all_and_add 整数 ブリッジとカメラの追加/編集/削除権限がユーザーに付与されているか(1)、ないか(0)を示します
is_edit_sharing 整数 ユーザーがアカウント設定内の 共有レスポンダー タブの表示/編集する権限を持っているか(1)、ないか(0)を示します
is_mobile_branded 整数 モバイル デバイスで使用
is_edit_admin_users 整数 ユーザーがサブアカウント内のすべてのユーザーを管理する権限を持っているか(1)、ないか(0)を示します
is_view_contract 整数 ユーザーが契約の表示/再生ができるか(1)、ないか(0)を示します  
is_ptz_live 整数 PTZカメラのプレビューまたはライブビデオを表示しているときにパン、チルト、ズーム、ステーションへのリコールを制御する権限があるか(1)、ないか(0)を示します
is_view_audit_trail 整数 ユーザーが監査証跡機能の表示を許可されているか(1)、ないか(0)を示します
is_edit_users 整数 サブアカウントの管理者でないユーザーを管理する権限がユーザーに付与されているか(1)、ないか(0)を示します
is_edit_motion_areas 整数 カメラ設定内の モーション タブを表示および編集する権限があるか(1)、ないか(0)を示します
is_two_factor_authentication_enabled 整数
user_authenticated_clients
account_utc_offset 整数 UTCからのタイムゾーンの秒単位の符号付き整数オフセット。これは、ユーザの関連するアカウントモデルからの 'utc_offset' の値です
account_work_days 文字列 ユーザーの関連するアカウントモデルの 'work_days' 値。どの日が稼働日であるかを示します
account_work_hours 配列[文字列] ユーザーの関連するアカウントモデルの 'work_hours' 値。 アカウントの稼働時間を示します
language 文字列 言語コード。現在、APIはGUIの表示言語として英語(en-us)と日本語(ja)のみをサポートしています。有効な言語コードを入力として受け取りますが、サポートされていない言語の場合は英語のテキストが表示されます
inactive_session_timeout 整数 Webセッションの有効期限が切れるまでの最大時間(秒単位)。ユーザーが所属するアカウントの設定で定義されます
street 配列[文字列] 住所を含む文字列の配列 ['address line 1', 'address line 2']
city 文字列 都市名(訳注: 日本では市区町村)
state 文字列 週/地方(訳注: 日本では都道府県)
country 文字列 2文字の国コード
postal_code 文字列 郵便番号
phone 文字列 電話番号
mobile_phone 文字列 携帯電話番号
utc_offset 整数 UTCからのタイムゾーンの秒単位の符号付き整数オフセット。タイムゾーンフィールドに基づいて自動的に生成されます
timezone 文字列 ユーザーのタイムゾーン。 可能な値:'US/Pacific'

利用可能な値:
'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage', 'UTC' など
last_login 文字列 EENユーザーによる最後のログインのタイムスタンプ。 フォーマット:YYYYMMDDHHMMSS.NNN
alternate_email 文字列 別のEメールアドレス
sms_phone 文字列 SMS通知に使用する電話番号
is_sms_include_picture 整数 画像つきアラート通知をMMS経由で sms_phone 番号に通知するか(1)、ないか(0)を示します
json 文字列 JSON文字列としてのユーザーのその他の設定 (UserJson)
camera_access 配列[配列[文字列]] デバイス単位で定義された配列の配列(スーパーユーザーまたはアカウントスーパーユーザーのみがこのフィールドを編集できます)。各サブアレイには2つの要素が含まれています。最初のフィールドはデバイスの一意な識別子で、2番目のフィールドはユーザーのアクセス権限を示す1文字以上の文字列です

例:
['1005f2ed','RWS'] = ユーザはこのデバイスを表示、変更、削除できます

権限は次のとおりです:
'R' - ユーザーはこのカメラの画像とビデオの表示権限があります
'W' - ユーザーはこのカメラの変更と削除が可能です
'S' - このカメラをグループシェアで共有することができます
layouts 配列[文字列] ユーザーがアクセスできるレイアウトの一意の識別子のリスト
is_notify_enable 整数 ユーザーに対して通知が有効か(1)無効か(0)を示します
notify_period 配列[文字列] ユーザーがアラート通知を受信する期間。配列の各要素には、ダッシュで区切られた3つのフィールドがあります。最初のフィールドは、月曜日を0とする週の曜日です。2番目の要素は開始時刻です。3番目の要素は終了時刻です。空の場合、ユーザーはアラート通知を受信しません

すべての時刻はローカルタイムで表され、HHMMとしてフォーマットされた24時間の時計を使用します
notify_rule 配列[文字列] アラート通知ルール。各ルールは、'Alert_Label-Notification_Method-Delay' というフォームの中にダッシュで区切られた3つのフィールドを含みます

'Alert_Label' - ユーザが定義した名前
'Notification_Method' - 'email''SMS' または 'GUI'
'Delay' - 各通知の間隔時間(分)
is_branded 整数 ユーザーが関連しているアカウントで現在ブランディングが有効になっているか(1)、ないか(0)を示します
active_brand_subdomain 文字列 ユーザーが関連しているアカウントがブランディングを有効にしている場合、ここには存在しているそのブランドのサブドメインが示されます
account_map_lines JSON ユーザーの現在のアカウント設定 'map_lines' から自動的に取得されます
access_period 配列[文字列] ユーザーがアカウントにアクセスできる期間が含まれます。配列の各要素には、ダッシュで区切られた3つのフィールドが含まれています。最初のフィールドは、月曜日を0とする週の曜日が含まれます。2番目の要素は開始時刻です。3番目の要素は終了時刻です。空の場合、ユーザーはアカウントへのアクセスに時間制限がありません。すべての時間はローカルタイムで表され、HHMMで表される24時間形式の時計を使用します
is_terms_noncompliant 整数 利用規約がユーザーによって受け入れられたか(0)、いないか(1)を示します

UserJson属性

パラメータ データ形式 詳細
een 文字列 EEN オブジェクト (UserJsonEEN)

UserJsonEEN 属性

パラメータ データ形式 詳細
show_AMPM ブーリアン 時刻をAM / PMで表示するか(True)、否か(False)を示します
milliseconds_display ブーリアン 時間をミリ秒で表示するか(True)、否か(False)を示します
layout_rotation_seconds 整数 設定されている場合は、自動ローテーション中のレイアウト変更の待機時間を示します。設定されていない場合、または0に設定されている場合は自動ローテーションは行われません
motion_boxes ブーリアン モーションボックスを表示するか(True)、表示しないか(False)を示します
notify_levels 配列[整数] ユーザーへの通知を行うレベルを示す整数値の配列

通知レベル:
1 - 'Low' - 低アラート通知設定
2 - 'High' - 高アラート通知設定
3 - 'System' - 非ユーザー定義の通知設定(カメラの状態変更を含む:オンライン/オフライン/オフ/インターネットオフライン/ …)

カメラでモーションアラートが作成された場合、モーションボックストリガには、'High' または 'Low' を割り当てることができます。カメラの状態が変化した場合、'System' アラート通知を受け取る設定をしているユーザーは、自分のアカウントのカメラ状態の変化が通知されます。イベントが 'High' に設定されたモーションボックス内でモーションアラートが発報されると、通知レベルが 'High' を受け取る設定をしているすべてのユーザに状態が通知されます
permissions JSON これは下位互換性のためのパラメータです (廃止予定)
employee_id 文字列 必要な権限を持つユーザーが他のユーザーに設定できる識別子
layouts JSON アカウントの一意の識別子をキーとしたJson形式のデータ。各値は、アカウント内のレイアウトのグローバルな一意の識別子の配列であり、ユーザーがGUIで表示する際の順序が付けられます

権限

ユーザーにはいくつかのタイプがあります:

アカウント スーパーユーザー

アカウントのスーパーユーザーには全ての権限があります。このユーザーは、アカウントとサブアカウントのすべてのユーザーを管理できます

一般ユーザー

一般ユーザーは作成された後、いくつかのデフォルトのアクセス権が付与されます: 'is_live_video', 'is_recorded_video', 'is_export_video'

権限のリスト

必要なパラメータ 詳細
is_superuser (内部利用のみ)
is_staff (内部利用のみ)
is_account_superuser ユーザーで可能な最も高い権限レベル。すべての権限が有効になります(表示権限を含む)
is_edit_account すべてのアカウント設定(次のカテゴリーを含みます: コントロール、日数、セキュリティ、カメラ、アラート、通知、プライバシー、共有、レスポンダーなど)を表示および編集することができます
is_edit_camera_on_off カメラの電源をオンまたはオフにすることができます。これが唯一のカメラ権限の場合は、他のすべてのカメラ機能は隠されます
is_edit_cameras すべてのカメラ設定を編集できます(カメラの追加や削除はできません)。この権限でプレビュー表示が自動的に有効になります
is_edit_motion_areas カメラ設定の モーション タブを有効にします。この権限によってプレビューの表示と録画されたビデオの表示が自動的に有効になります
is_edit_ptz_stations カメラ設定の PTZ タブを有効にします。PTZモードの設定と、ステーションを追加/編集/削除が行えます。この権限によりプレビューの表示が自動的に有効になります
is_edit_sharing アカウント設定の 共有レスポンダー タブを有効にします(この設定は 'is_edit_account' が有効な場合は不要です)
is_edit_users サブアカウントの管理者以外のユーザーの管理(ユーザーの追加/削除/変更)を有効にします。カメラとレイアウトへのアクセスを許可する権限が付与されます
is_export_video プレビューおよびフル解像度のビデオをダウンロードできます。プレビューの表示が自動的に有効になります
is_edit_all_and_add ブリッジとカメラの管理(追加/編集/削除)を有効にします。 デバイスのみを参照します。この権限でプレビューの表示が自動的に有効になります
is_edit_camera_less_billing 保存期間およびフルビデオの解像度(追加/削除機能なし)以外のすべてのカメラ設定を編集できます。プレビューの表示は、この権限で自動的に有効になります
is_layout_admin レイアウトの管理を可能にします(ユーザーは自分のレイアウトを作成/編集/削除できます。ユーザーのレイアウトは常に管理者ユーザーに表示されます)
is_live_video カメラのフル解像度のライブビデオの表示を許可します。プレビューの表示は、この権限で自動的に有効になります
is_ptz_live PTZカメラのプレビューまたはライブビデオの表示中に、パン、チルト、ズーム、ステーションへのリコールを制御できます。プレビュー表示は、この権限で自動的に有効になります
is_recorded_video ヒストリブラウザとカメラからの保存されたビデオを表示します。プレビューの表示は、この権限で自動的に有効になります
is_view_preview_video カメラからの画像のプレビューを可能にします
is_edit_admin_users サブアカウントのすべてのユーザーの管理を有効にします(管理者を含むすべてのユーザーの追加/削除/変更。マスターユーザーのみ利用可能)
is_edit_all_users 管理者ではないマスターユーザー(マスターアカウントユーザーの追加/削除/変更)の管理を可能にします

サブアカウントへのアクセスを許可します。サブアカウントにはユーザー権限は与えられていません。マスターアカウントユーザーのみ利用可能です
is_device_admin これは下位互換性のためのパラメータです (廃止予定)
is_user_admin これは下位互換性のためのパラメータです (廃止予定)

ユーザー権限対応表

以下の表は、ユーザが所属するアカウントと有効にした許可フラグによって実行できるユーザ管理アクションを示しています

どのユーザーか
マスターアカウント内 サブアカウント内
アカウントスーパーユーザー (ASU) 一般ユーザー (RU) アカウントスーパーユーザー (ASU) 一般ユーザー (RU)
何ができるか 自分のアカウント内 対ASU 取得、作成、更新、削除 なし 取得、作成、更新、削除 なし
対RU 取得、作成、更新、削除 is_edit_all_users == Trueの場合は取得、作成、更新、削除 取得、作成、更新、削除 is_edit_users == Trueの場合は取得、作成、更新、削除
ユーザーリストの取得 はい いいえ はい いいえ
親アカウント内 対ASU マスターアカウントには親はありません なし なし
対RU なし なし
ユーザーリストの取得 いいえ いいえ
子アカウント内 対ASU 取得、作成、更新、削除 is_edit_admin_users == Trueの場合は取得、作成、更新、削除 子アカウントには子はありません
対RU 取得、作成、更新、削除 is_edit_users == True または is_edit_admin_users==Trueの場合は取得、作成、更新、削除
ユーザーリストの取得 はい is_edit_admin_users == Trueの場合は はい
兄弟アカウント内 対ASU マスターアカウントには兄弟関係はありません なし なし
対RU なし なし
ユーザーリストの取得 いいえ いいえ

ユーザー情報の取得

IDが与えられるとユーザー オブジェクトを返します。

要求

curl -G https://login.eagleeyenetworks.com/g/user -d "A=[AUTH_KEY]"

または

curl -G https://login.eagleeyenetworks.com/g/user -d "id=[USER_ID]" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/user

パラメータ データ形式 詳細 必須?
id 文字列 ユーザーの一意の識別子 false

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 不正なセッションCookieのため認可できませんでした
403 ユーザーに必要な権限がないため拒否されました
404 指定された一意の識別子のユーザーが見つかりません
200 要求は成功しました

ユーザーの作成

新しいユーザーを作成します。 作成後、ユーザーは保留状態になります('is_pending=1', 'is_active=0')。ユーザー作成通知電子メールは、作成要求時に渡された電子メールアドレスに送信されます。その後、ユーザーはパスワードを入力することができます(この手順では、 利用規約) を受け入れる必要があります)。この操作の後、ユーザーはアクティブになります('is_pending=0', 'is_active=1')

要求

curl -X PUT https://login.eagleeyenetworks.com/g/user -d '{"first_name": "[FIRST_NAME]", "last_name": "[LAST_NAME]", "email": "[EMAIL]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP Request

PUT https://login.eagleeyenetworks.com/g/user

パラメータ データ形式 詳細 必須?
first_name 文字列 ユーザーの名 true
last_name 文字列 ユーザーの姓 true
email 文字列 ユーザーのEメール true
sms_phone 文字列 SMS通知に使用する電話番号

JSON 応答

{
    "id": "ca0ffa8c"
}

HTTP 応答 (JSON 属性)

パラメータ データ形式 詳細
id 文字列 ユーザーの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 不正なセッションCookieのため認可できませんでした
403 ユーザーに必要な権限がないため拒否されました
409 指定されたEメールアドレスはすでに使用されています
200 要求は成功しました

ユーザー情報の更新

ユーザー情報を更新します

要求

curl -X POST https://login.eagleeyenetworks.com/g/user -d '{"id": "[USER_ID]", "first_name": "[FIRST_NAME]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/user

パラメータ データ形式 説明 必須?
id 文字列 ユーザーの一意な識別子 true
first_name 文字列 ユーザーの名
last_name 文字列 ユーザーの姓
email 文字列 認可されたユーザーのEメール (このEメールはASCII文字のみ必要)
phone 文字列 電話番号
mobile_phone 文字列 携帯電話番号
uid 文字列 ユーザーの識別子。スーパーユーザーだけがこれを設定できます (内部利用のみ)
street 配列[文字列] 住所を含む文字列の配列 ['address line 1', 'address line 2']
city 文字列 都市名(訳注: 日本では市区町村)
state 文字列 週/地方(訳注: 日本では都道府県)
country 文字列 2文字の国コード
postal_code 文字列 郵便番号
json 文字列 JSON文字列としてのユーザーのその他の設定 (UserJson) is_staff 整数
is_superuser 整数 ユーザーがスーパーユーザーであるか(1)、ないか(0)かを示します。スーパーユーザーだけがこれを設定できます (内部利用のみ)
is_account_superuser 整数 ユーザーがアカウントのスーパーユーザーである(1)かないか(0)を示します。スーパーユーザーまたはアカウントスーパーユーザーだけがこれを設定できます
is_layout_admin 整数 ユーザーがレイアウト管理者か(1)、ないか(0)を示します
is_device_admin 整数 これは下位互換性のためのパラメータです (廃止予定)
is_user_admin 整数 これは下位互換性のためのパラメータです (廃止予定)
is_live_video 整数 ユーザーがライブビデオにアクセスする権限を持っているか(1)、ないか(0)を示します
is_export_video 整数 ユーザーがビデオのエクスポートを許可を持っているか(1)、ないか(0)を示します
is_recorded_video 整数 ユーザーが記録されたビデオを見る権限を持っているか(1)、ないか(0)を示します
is_edit_cameras 整数 ユーザーがカメラの編集権限を持っているか(1)、ないか(0)を示します
is_edit_all_users 整数 マスターアカウントの管理者でないユーザーで、ユーザーを管理する権限が付与されているか(1)、ないか(0)を示します
is_edit_account 整数 ユーザーがアカウント設定を編集する権限を持っているか(1)、ないか(0)を示します
is_edit_ptz_stations 整数 ユーザーがPTZステーションを編集する権限を持っているか(1)、ないか(0)を示します
is_view_preview_video 整数 ユーザーがカメラからプレビュー画像を表示する権限を持っているか(1)、ないか(0)を示します
is_edit_camera_on_off 整数 ユーザーがカメラをオンまたはオフにする権限を持っているか(1)、ないか(0)を示します
is_edit_camera_less_billing 整数 ユーザーが保存期間およびフルビデオの解像度以外のすべてのカメラ設定を編集する権限を持っているか(1)、ないか(0)を示します
is_edit_all_and_add 整数 ブリッジとカメラの追加/編集/削除権限がユーザーに付与されているか(1)、ないか(0)を示します
is_edit_sharing 整数 ユーザーがアカウント設定内の 共有レスポンダー タブの表示/編集する権限を持っているか(1)、ないか(0)を示します
is_edit_admin_users 整数 ユーザーがサブアカウント内のすべてのユーザーを管理する権限を持っているか(1)、ないか(0)を示します
is_view_contract 整数 ユーザーが契約の表示/再生ができるか(1)、ないか(0)を示します
is_ptz_live 整数 PTZカメラのプレビューまたはライブビデオを表示しているときにパン、チルト、ズーム、ステーションへのリコールを制御する権限があるか(1)、ないか(0)を示します
is_edit_users 整数 サブアカウントの管理者でないユーザーを管理する権限がユーザーに付与されているか(1)、ないか(0)を示します
is_edit_motion_areas 整数 カメラ設定内の モーション タブを表示および編集する権限があるか(1)、ないか(0)を示します
camera_access 配列 デバイス単位で定義された配列の配列(スーパーユーザーまたはアカウントスーパーユーザーのみがこのフィールドを編集できます)。各サブアレイには2つの要素が含まれています。最初のフィールドはデバイスの一意な識別子で、2番目のフィールドはユーザーのアクセス権限を示す1文字以上の文字列です

例:
['1005f2ed','RWS'] = ユーザはこのデバイスを表示、変更、削除できます

権限は次のとおりです:
'R' - ユーザーはこのカメラの画像とビデオの表示権限があります
'W' - ユーザーはこのカメラの変更と削除が可能です
'S' - このカメラをグループシェアで共有することができます
sms_phone 文字列 SMS通知に使用する電話番号
is_sms_include_picture 整数 画像つきアラート通知をMMS経由で sms_phone 番号に通知するか(1)、ないか(0)を示します
alternate_email 文字列 別のEメールアドレス
timezone 文字列 ユーザーのタイムゾーン。 可能な値:'US/Pacific'

Possible values:
'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage', 'UTC' など
access_period 配列 ユーザーがアカウントにアクセスできる期間が含まれます。配列の各要素には、ダッシュで区切られた3つのフィールドが含まれています。最初のフィールドは、月曜日を0とする週の曜日が含まれます。2番目の要素は開始時刻です。3番目の要素は終了時刻です。空の場合、ユーザーはアカウントへのアクセスに時間制限がありません。すべての時間はローカルタイムで表され、HHMMで表される24時間形式の時計を使用します
notify_period 配列 ユーザーがアラート通知を受信する期間。配列の各要素には、ダッシュで区切られた3つのフィールドがあります。最初のフィールドは、月曜日を0とする週の曜日です。2番目の要素は開始時刻です。3番目の要素は終了時刻です。空の場合、ユーザーはアラート通知を受信しません

すべての時刻はローカルタイムで表され、HHMMとしてフォーマットされた24時間の時計を使用します
is_notify_enable 整数 ユーザーに対して通知が有効か(1)無効か(0)を示します
notify_rule 配列 アラート通知ルール。各ルールは、'Alert_Label-Notification_Method-Delay' というフォームの中にダッシュで区切られた3つのフィールドを含みます

'Alert_Label' - ユーザが定義した名前
'Notification_Method' - 'email''SMS' または 'GUI'
'Delay' - 各通知の間隔時間(分)
language 文字列 言語コード。現在、APIはGUIの表示言語として英語(en-us)と日本語(ja)のみをサポートしています。有効な言語コードを入力として受け取りますが、サポートされていない言語の場合は英語のテキストが表示されます

JSON 応答

{
    "id": "ca0ffa8c"
}

HTTP 応答 (JSON 属性)

パラメータ データ形式 詳細
id 文字列 ユーザーの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 不正なセッションCookieのため認可できませんでした
403 ユーザーに必要な権限がないため拒否されました
404 指定された一意の識別子のユーザーが見つかりません
200 要求は成功しました

ユーザーの削除

ユーザーを削除します

要求

curl -X DELETE https://login.eagleeyenetworks.com/g/user -d "id=[USER_ID]" -G -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

DELETE https://login.eagleeyenetworks.com/g/user

パラメータ データ形式 詳細 必須?
id 文字列 ユーザーの一意の識別子 true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 不正なセッションCookieのため認可できませんでした
403 ユーザーに必要な権限がないため拒否されました
404 指定された一意の識別子のユーザーが見つかりません
200 要求は成功しました

ユーザーリストの取得

現在のユーザーが利用可能なユーザーを表すそれぞれにサブ配列を持つ配列の配列を返します。

要求

curl --request GET https://login.eagleeyenetworks.com/g/user/list --cookie "auth_key=[AUTH_KEY]"

HTTP Request

GET https://login.eagleeyenetworks.com/g/user/list

JSON 応答

[
    [
        "ca0555c7",
        "Katherine",
        "Xiao",
        "katherine.xiao@fakeemail.com",
        [
            "export_video",
            "recorded_video",
            "live_video",
            "device_admin",
            "layout_admin",
            "account_superuser",
            "user_admin",
            "active"
        ],
        "20180929154619.000"
    ],
    [
        "ca00783b",
        "George",
        "Adams",
        "george.adams@fakeemail.com",
        [
            "export_video",
            "recorded_video",
            "live_video",
            "active"
        ],
        "20180716205645.000"
    ],
    [...],
    [...],
    [...]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ形式 詳細
0 id 文字列 ユーザーの一意な識別子
1 first_name 文字列 ユーザーの名
2 last_name 文字列 ユーザーの姓
3 email 文字列 ユーザーのEメール
4 permissions 配列[文字列] ユーザー権限のリスト
5 last_login 文字列 EENユーザーによる最後のログインのタイムスタンプ。 フォーマット:YYYYMMDDHHMMSS.NNN

エラー状態コード

HTTP 状態コード 詳細
401 不正なセッションCookieのため認可できませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

カメラ

概要

デバイスサービスはアクセスを行うために、新しい論理デバイス(カメラまたはブリッジ)の作成と、論理及び物理デバイス間の関係性を成立させることを許可します。 Getメソッドは全てのユーザーに対し ‘R'(読み取り)権限を有効にします。 Post及びDeleteメソッドはアカウントスーパーユーザーとユーザーに対し、選択されたカメラについての 'W'(書き込み)権限を有効にします。 Putメソッドはアカウントスーパーユーザーでのみ有効です。

新規カメラを追加する際には、名前と設定パラメータが必要です。 設定パラメータにはブリッジIDとカメラのGUIDが含まれます。

カメラ設定の概要

カメラ設定システムは継承モデルを基本とします。 ユーザー設定はデバイスのデフォルト設定の最上位を “覆って” います。 ユーザー設定を消去すると、カメラ設定は自動的にEagle Eyeが用意したそのカメラのデフォルトの値に戻されます。

この作業は以下の内容を包括します:

この実装はユーザーがその設定の変更/管理によって "ピン留め” されていない場合、全てのシステムまたは make/model/version リリースのアップデートに追従します。つまり、ユーザーがそれら設定の変更/ピン留めをしていない限り、EENは操作パラメータを最適化させ、自動的に伝播させることが可能となります。さらに、ユーザーは特に オープン/クローズ制御型やチェックボックスによる項目- ユーザーによって “手動で” オープン設定にされた制御項目は問題なく動作しますが、クローズ設定はEENによってシステム全体で推奨設定に追随して設定されることに注意が必要です。最後に、全ての設定ではありませんが、特にユーザーによって変更された値は、"ユーザー"によってのみ管理が行われ、これらの追随から除外されます。

全ての設定セットは、多くののユーザーにとって必要であるよりも潜在的に大きいか、はるかに大きくなっています。ほとんどのユーザーが相互に必要とする設定 - “通常"設定は、それぞれのテーブルで管理されています。このリストは、リスト内の通常モードで表示されるコントロールのサブセットに含まれる全ての設定と"結合"されている必要があります。高度なモードでは全ての設定項目は基本設定と共に値のセットまたは削除が可能です。

このモデルに反する "ユーザー設定” オブジェクトは、デバイスによって必要最小限の介入を受ける一般オブジェクトです。既知の名前(例えばカメラベースまたはmmv設定)に合致する設定は利用されますが、全ての値は"ユーザー設定"フィールドに格納され、返されます。これはブリッジ/カメラが介入しない値を持つカメラの原則により、ユーザー インターフェイス要素をサポートするために利用されます。

カメラ設定の読込 (デバイスの “camera_settings” プロパティの GET)

カメラ設定を取得すると、JSONオブジェクトは以下のJSON文字列として返されます:

カメラ設定の更新 (デバイスの “camera_settings_add” 属性の POST)

設定の更新/設定(例 “ユーザー"設定によってデフォルトの設定を上書きする)を行うには、以下のJSONオブジェクトを含むJSON文字列を送信する必要があります:

カメラ設定の削除 (デバイスの "camera_settings_delete” 属性の POST)

設定の削除/設定解除(例 デフォルトの設定値に戻す)を行うには、以下のJSONオブジェクトを含むJSON文字列を送信する必要があります:

カメラ設定 (現在サポートしているカメラ設定)

それぞれのカメラはメーカー/モデル/バージョンが異なるためいくつかのカメラでは全ての設定がサポートされるわけではありませんが、大部分のアプリケーションに関連する中心的なカメラ設定を以下に示します:

注目画像領域 (ROIs)

ROIは単純な多角形 - 連続したx,y座標で閉じられたオブジェクトで、 辺の交差は違反行為となり、予期せぬ結果を招きます - で定義されます。それぞれのROIは画面の一部分として描かれます。ROIは重ねることが可能で、感度設定は優先度(大き値が高優先)を考慮して決定されます。全ての重ねられたROIはモーション ブロック検知とROIモーション スパンでのトリガが可能です。

ROIは次のことが可能です

ROIは “rois”: { “roiname”: roi,… } の中で設定されます。ROIは “active_rois”: { “roiname”: true,…} によって有効化または無効化でき、サポートスケジュール及びROIベースアラートによって簡単にオンまたはオフにすることができます。除去する場合には同じ属性を削除することでアクティブなROIを削除できます。

アラートのロジックのように、“rois” と “active_rois” は累積型設定です。殆どの設定のような全てのオブジェクトを置換する代わりに、現状のオブジェクトにオブジェクトが追加されます。同様にオブジェクトを削除すると親オブジェクトからは削除されますが、親オブジェクトはそのまま維持されます。両方共アクティブなESNデータストリームの更新により、自動的に起動されます。

ROIはそれぞれの範囲内の動作によって、イベントの生成と動画の録画を実行できます。これらのイベントはモーションイベント(全画面イベント)とは別の扱いです。それぞれのROIイベントはシンプルなスナップショット・イベントを持ち、スナップショットを即時補足するため、モーションイベントの物体追跡とは対極の最適化を行っています。ROIは小さく設定するほど、サマリイメージにとっては良い結果となります。

ROIイベントは ROMS 及び ROME eタグによって報告されます:

ROMS

ROME

カメラのモデル

カメラ モデル

{
    "id": "1000f60d",
    "name": "Kitchen",
    "utcOffset": -18000,
    "timezone": "US/Central",
    "guid": "c6d11f36-9e63-11e1-a5b0-00408cdf9191",
    "permissions": "swr",
    "tags": [
        "austin",
        "kitchen"
    ],
    "bridges": {
        "100a9af6": "ATTD"
    },
    "settings": {
        "username": "onvif",
        "password": "securityCameraz",
        "bridge": "100a9af6",
        "roi_names": {},
        "alert_notifications": {},
        "alert_modes": {},
        "alert_levels": {},
        "notes": "",
        "longitude": -97.740714999999994,
        "latitude": 30.269064,
        "street_address": "717-799 Brazos Street, Austin, TX 78701, USA",
        "azimuth": 257.47226999999998,
        "range": 17.983694,
        "floor": 16,
        "share_email": "mcazares+videotest@eagleeyenetworks.com",
        "retention_days": 30,
        "cloud_retention_days": 30
    },
    "camera_info_status_code": 200,
    "camera_info": {
        "bridge": "bf5ce89d-8dbb-4eed-a2a8-60971e6d447e",
        "camera_state_version": 0,
        "intf": "Camera LAN",
        "camera_retention": 2592000000,
        "tagmap_status_state": 2,
        "camera_newest": "20141006190516.702",
        "camera_oldest": "20140906000000.000",
        "connect": "STRM",
        "uuid": "c6d11f36-9e63-11e1-a5b0-00408cdf9191",
        "service": "ATTD",
        "make": "AXIS",
        "ipaddr": "*169.254.12.141,10.143.236.65",
        "ts": "20141006182806.570",
        "version": "5.40.9.2",
        "admin_password": null,
        "esn": "1000f60d",
        "status": "1966143",
        "admin_user": null,
        "register_id": 0,
        "mac": "00:40:8C:DF:91:91",
        "proxy": "secondary",
        "bridgeid": "100a9af6",
        "now": "20141006210729.065",
        "class": "camera",
        "status_hex": "001e003f",
        "camera_now": "20141006210729.688",
        "camera_abs_newest": "20141006190516.702",
        "camera_abs_oldest": "20140906000000.000",
        "model": "AXIS M1054",
        "camtype": "ONVIF"
    },
    "camera_parameters_status_code": 200,
    "camera_parameters": {
        "active_settings": {
            "bandwidth_background": {
                "max": 10000000000.0,
                "min": -1000.0,
                "d": 0.0,
                "v": 0.0
            },
            "preview_jcmp_enable": {
                "max": 1,
                "min": 0,
                "d": 1,
                "v": 1
            },
            "bandwidth_recover": {
                "max": 10000000000.0,
                "min": 0.0,
                "d": 0.0,
                "v": 0.0
            },
            "video_transmit_mode": {
                "min": [
                    "always",
                    "event",
                    "background",
                    "on demand"
                ],
                "d": "background",
                "v": "background"
            },
            "preview_noise_limit_default": {
                "max": 16,
                "min": 2,
                "d": 16,
                "v": 16
            },
            "video_resolution": {
                "min": [
                    "cif",
                    "std",
                    "high"
                ],
                "d": "high",
                "v": "high"
            },
            "retention_days": {
                "max": 10000,
                "min": 1,
                "d": 14,
                "v": 30
            },
            "bridge_retention_days": {
                "max": 100000,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "stream_stats": {
                "d": "none",
                "v": "none"
            },
            "motion_edge_expand_ratio": {
                "max": 0.98999999999999999,
                "min": 0.001,
                "d": 0.10000000000000001,
                "v": 0.10000000000000001
            },
            "preview_resolution": {
                "min": [
                    "cif",
                    "std",
                    "high"
                ],
                "d": "cif",
                "v": "std"
            },
            "display_features": {
                "max": 255,
                "min": 0,
                "d": 255,
                "v": 255
            },
            "motion_event_holdoff_ms": {
                "max": 1000,
                "min": 0,
                "d": 300,
                "v": 300
            },
            "retention_max_bytes": {
                "max": 1000000000000.0,
                "min": 0,
                "d": 0.0,
                "v": 0.0
            },
            "active_rois": {
                "d": {},
                "v": {}
            },
            "video_config": {
                "d": {
                    "preview_profile": "een_prvw",
                    "video_profile": "een_video",
                    "preview_quality_settings": {
                        "high": {
                            "h": 720,
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 1600,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 1000,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 800,
                                    "fps": 4
                                }
                            },
                            "w": 1280
                        },
                        "std": {
                            "h": "360",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 500,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 350,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 250,
                                    "fps": 4
                                }
                            },
                            "w": 640
                        },
                        "cif": {
                            "h": "180",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 200,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 150,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 100,
                                    "fps": 4
                                }
                            },
                            "w": 320
                        }
                    },
                    "video_quality_settings": {
                        "high": {
                            "h": 720,
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 2000,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 1000,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 500,
                                    "fps": 10
                                }
                            },
                            "w": 1280
                        },
                        "std": {
                            "h": "360",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 600,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 400,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 200,
                                    "fps": 10
                                }
                            },
                            "w": 640
                        },
                        "cif": {
                            "h": "180",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 300,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 140,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 70,
                                    "fps": 10
                                }
                            },
                            "w": 320
                        }
                    }
                },
                "v": {
                    "preview_profile": "een_prvw",
                    "video_profile": "een_video",
                    "preview_quality_settings": {
                        "high": {
                            "h": 720,
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 1600,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 1000,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 800,
                                    "fps": 4
                                }
                            },
                            "w": 1280
                        },
                        "std": {
                            "h": "360",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 500,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 350,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 250,
                                    "fps": 4
                                }
                            },
                            "w": 640
                        },
                        "cif": {
                            "h": "180",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 200,
                                    "fps": 4
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 150,
                                    "fps": 4
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 100,
                                    "fps": 4
                                }
                            },
                            "w": 320
                        }
                    },
                    "video_quality_settings": {
                        "high": {
                            "h": 720,
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 2000,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 1000,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 500,
                                    "fps": 10
                                }
                            },
                            "w": 1280
                        },
                        "std": {
                            "h": "360",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 600,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 400,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 200,
                                    "fps": 10
                                }
                            },
                            "w": 640
                        },
                        "cif": {
                            "h": "180",
                            "quality": {
                                "high": {
                                    "q": 80,
                                    "kbps": 300,
                                    "fps": 30
                                },
                                "med": {
                                    "q": 60,
                                    "kbps": 140,
                                    "fps": 15
                                },
                                "low": {
                                    "q": 40,
                                    "kbps": 70,
                                    "fps": 10
                                }
                            },
                            "w": 320
                        }
                    }
                }
            },
            "video_capture_mode": {
                "min": [
                    "always",
                    "event"
                ],
                "d": "event",
                "v": "event"
            },
            "motion_noise_filter": {
                "max": 1.0,
                "min": 0.0,
                "d": 0.69999999999999996,
                "v": 0.69999999999999996
            },
            "motion_event_holdon_ms": {
                "max": 1000,
                "min": 0,
                "d": 300,
                "v": 300
            },
            "preview_realtime_bandwidth": {
                "max": 100000000.0,
                "min": 8000.0,
                "d": 50000.0,
                "v": 400000.0
            },
            "motion_snap_size_ratio": {
                "max": 0.98999999999999999,
                "min": 0.0001,
                "d": 0.001,
                "v": 0.001
            },
            "preview_history_depth_ms": {
                "max": 32000,
                "min": 1000,
                "d": 4000,
                "v": 4000
            },
            "encryption_type": {
                "max": 1,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "event_postroll_ms": {
                "max": 5000,
                "min": 0,
                "d": 1000,
                "v": 1000
            },
            "alerts": {
                "d": {},
                "v": {}
            },
            "preview_interval_ms": {
                "max": 16000,
                "min": 250,
                "d": 1000,
                "v": 1000
            },
            "motion_snap_age_threshold_ms": {
                "max": 2000,
                "min": 100,
                "d": 200,
                "v": 200
            },
            "preview_key_frame_hold_ms": {
                "max": 3600000,
                "min": 30000,
                "d": 1800000,
                "v": 1800000
            },
            "display_width": {
                "max": 64000,
                "min": 80,
                "d": 320,
                "v": 320
            },
            "preview_min_gop_ms": {
                "max": 180000,
                "min": 1000,
                "d": 4000,
                "v": 4000
            },
            "preview_first_frame_delta_target": {
                "max": 0.98999999999999999,
                "min": 0.01,
                "d": 0.25,
                "v": 0.25
            },
            "motion_logmask": {
                "max": 7,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "preview_log_mask": {
                "max": 15,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "local_retention_days": {
                "max": -1,
                "min": -1,
                "d": -1,
                "v": -1
            },
            "preview_noise_limit_min": {
                "max": 16,
                "min": 2,
                "d": 3,
                "v": 3
            },
            "motion_hold_interval": {
                "max": 120.0,
                "min": 0.0,
                "d": 5.0,
                "v": 5.0
            },
            "stream_stats_present_only": {
                "max": 1,
                "min": 0,
                "d": 1,
                "v": 1
            },
            "active_alerts": {
                "d": {},
                "v": {}
            },
            "motion_weights": {
                "max": 64,
                "length": 8,
                "min": 1,
                "d": [
                    8,
                    4,
                    2,
                    1,
                    1,
                    1,
                    1,
                    1
                ],
                "v": [
                    "8",
                    "4",
                    "2",
                    "1",
                    "1",
                    "1",
                    "1",
                    "1"
                ]
            },
            "preview_min_limit_change_ms": {
                "max": 500000,
                "min": 2000,
                "d": 10000,
                "v": 10000
            },
            "preview_transmit_mode": {
                "min": [
                    "always",
                    "event",
                    "background",
                    "on demand"
                ],
                "d": "always",
                "v": "always"
            },
            "bandwidth_demand": {
                "max": 10000000000.0,
                "min": 0.0,
                "d": 0.0,
                "v": 0.0
            },
            "audio_enable": {
                "d": false,
                "v": true
            },
            "video_bandwidth_factor": {
                "max": 64,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "shaping_mode": {
                "max": 127,
                "min": 0,
                "d": 31,
                "v": 31
            },
            "display_name": {
                "d": "none",
                "v": "none"
            },
            "display_height": {
                "max": 64000,
                "min": 80,
                "d": 180,
                "v": 180
            },
            "preview_compress_keyframes": {
                "max": 1,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "motion_snap_push_min_delay_ms": {
                "max": 5000,
                "min": 1000,
                "d": 2000,
                "v": 2000
            },
            "motion_size_ratio": {
                "max": 0.98999999999999999,
                "min": 0.0001,
                "d": 0.001,
                "v": 0.001
            },
            "video_quality": {
                "min": [
                    "low",
                    "med",
                    "high"
                ],
                "d": "med",
                "v": "med"
            },
            "video_source_flip": {
                "d": false,
                "v": false
            },
            "motion_sensitivity": {
                "max": 1.0,
                "min": 0.0,
                "d": 0.80000000000000004,
                "v": 0.80000000000000004
            },
            "motion_size_metric_active": {
                "max": 1,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "camera_on": {
                "max": 1,
                "min": 0,
                "d": 1,
                "v": 1
            },
            "motion_snap_excellent_hold_ms": {
                "max": 5000,
                "min": 100,
                "d": 1000,
                "v": 1000
            },
            "cloud_retention_days": {
                "max": 365,
                "min": 1,
                "d": 14,
                "v": 30
            },
            "video_source_bounds": {
                "max": [
                    1440,
                    900,
                    1440,
                    900
                ],
                "min": [
                    0,
                    0,
                    0,
                    0
                ],
                "d": [
                    0,
                    0,
                    1440,
                    900
                ],
                "v": [
                    0,
                    0,
                    1440,
                    900
                ]
            },
            "rois": {
                "d": {},
                "v": {}
            },
            "preview_max_gop_ms": {
                "max": 180000,
                "min": 5000,
                "d": 30000,
                "v": 30000
            },
            "retention_priority": {
                "max": 10000,
                "min": 1,
                "d": 100,
                "v": 100
            },
            "preview_noise_change_threshold": {
                "max": 64,
                "min": 1,
                "d": 2,
                "v": 2
            },
            "preview_quality": {
                "min": [
                    "low",
                    "med",
                    "high"
                ],
                "d": "med",
                "v": "med"
            },
            "motion_expand_ratio": {
                "max": 0.98999999999999999,
                "min": 0.001,
                "d": 0.10000000000000001,
                "v": 0.10000000000000001
            },
            "motion_boxes_metric_active": {
                "max": 1,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "event_preroll_ms": {
                "max": 5000,
                "min": 0,
                "d": 1000,
                "v": 1000
            },
            "preview_queue_ms": {
                "max": 20000,
                "min": 1000,
                "d": 10000,
                "v": 10000
            }
        },
        "active_filters": [
            "user_user"
        ],
        "user_settings": {
            "versions": {},
            "settings": {
                "preview_realtime_bandwidth": 400000,
                "retention_days": 30,
                "cloud_retention_days": 30,
                "preview_resolution": "std",
                "audio_enable": true,
                "motion_weights": [
                    "8",
                    "4",
                    "2",
                    "1",
                    "1",
                    "1",
                    "1",
                    "1"
                ]
            },
            "schedules": {}
        }
    }
}

カメラ(属性)

パラメータ データ型式 詳細 編集可能 以下で必須
id 文字列 デバイスの一意な識別子 (ブリッジにカメラを追加した際に自動的に生成、割当て)


name 文字列 デバイスの名前
settings JSON 基本設定のJSONオブジェクト (場所、モーションの領域など)
camera_settings_status_code 整数 デバイス設定を取得することができたか(200)かどうか、できなかった(404)かどうかを示します
timezone 文字列 カメラのタイムゾーンを示します。ブリッジのタイムゾーンがカメラのデフォルトになります。例: US/Alaska, US/Arizona, US/Central, US/Pacific, US/Eastern, US/Mountain, US/Hawaii, UTC
utcOffset 整数 デバイスが導入されている場所のタイムゾーンとUTCとの符号付きUTCオフセット秒
guid 文字列 GUID(Globally Unique Identifier)は、製造プロセス中にデバイスに割り当てられる不変のデバイス識別子です。
permissions 文字列 一文字またはそれ以上の文字列。それぞれの文字は権限を表します。

権限は次のものを含みます:
'R’ - ユーザーはこのカメラに対して画像及び動画の表示アクセスを行えます。
'W’ - ユーザーはこのカメラの編集、削除が行えます。 ’S’ - ユーザーはこのカメラに対してグループ共有内で共有できます。
tags 配列[文字列] 文字列の配列で、それぞれ “tag” を表します。
bridges JSON Jsonオブジェクトのブリッジ(ESN)にはこのデバイスが表示され、カメラの接続状態:
'ATTD' - このカメラはブリッジに接続されています
'IGND' - このカメラは接続可能だが接続されていない状態です
camera_parameters オブジェクト カメラのパラメータ/設定(詳細は概要を参照)を含むJSONオブジェクト。もしカメラのパラメータが様々な理由(カメラとの通信が途絶するなど)により取得できない場合にはこの項目は空白となり、camera_parameters_status_code は404となります。
camera_parameters_status_code 整数 200 はデバイスのパラメータが取得できたことを表します。404 はデバイスのパラメータが取得できなかったことを表します。
CameraInfo json カメラに関連する基本情報のJsonオブジェクト。 何らかの理由でカメラ情報を取得できない場合(例:カメラとの通信が失われた場合)、これは空になり、camera_info_status_codeは404になります
camera_info_status_code 整数 200 はデバイスの情報が取得できたことを表します。404 はデバイスの情報が取得できなかったことを表します。

カメラ - 設定

パラメータ データ型式 詳細 以下で必須
bridge 文字列 カメラが現在接続されているブリッジのデバイスID(またはカメラを接続するブリッジのID)(カメラにのみ適用されます)
guid 文字列 GUID(Globally Unique Identifier)は、製造プロセス中にデバイスに割り当てられる不変のデバイス識別子です
username 文字列 カメラにログインするためのユーザー名。カメラのみに付与されます。
password 文字列 カメラにログインするためのパスワード。カメラのみに付与されます。
roi_names json ROI IDをキーとしたROI名のJsonオブジェクト (カメラにのみ適用されます)
alert_notifications json ROI IDをキーとしたユーザーIDのJsonオブジェクト (カメラにのみ適用されます)
alert_modes json ROI IDをキーとしたアラート・モードのJsonオブジェクト (カメラにのみ適用されます)
alert_levels json ROI IDをキーとしたアラート・レベルのJsonオブジェクト (カメラにのみ適用されます)
notes 文字列 メモ
latitude 浮動小数点 カメラ設置位置の緯度。
longitude 浮動小数点 カメラ設置位置の経度。
street_address 文字列 カメラ設置位置の住所。
azimuth 浮動小数点 カメラ中心の方向。値は 0.0-360.0 を取り、北は 0.0 となります。
range 整数 カメラの有効な「表示」距離をフィートで表します。
floor 整数 建物が複数階の場合、回数を表します。
share_email 文字列 このデバイスが共有されているeメールのカンマ区切りリスト
local_retention_days JSON 以下のように表現される総保存期間を定義したJSONオブジェクト:

{
    'max': 10000,
    'min': 1,
    'd': 14,
    'v': 14
}

’d’ - デフォルト値
'v’ - 現在の設定値
cloud_retention_days JSON 以下のように表現される総保存期間を定義したJSONオブジェクト:

{
    'max': 10000,
    'min': 1,
    'd': 14,
    'v': 14
}

’d’ - デフォルト値
'v’ - 現在の設定値
bridge_retention_days JSON 以下のように表現される総保存期間を定義したJSONオブジェクト:

{
    'max': 10000,
    'min': 1,
    'd': 14,
    'v': 14
}

’d’ - デフォルト値
'v’ - 現在の設定値

カメラ - 設定 - roi_names

パラメータ データ型式 詳細
roi_id 文字列 ROI IDをキーとしたオブジェクトと名前の値

カメラ - 設定 - alert_notifications

パラメータ データ型式 詳細
roi_id 配列[文字列] ROI IDをキーとしたオブジェクトとユーザーIDの配列値

カメラ - 設定 - alert_modes

パラメータ データ型式 詳細
roi_id 配列[文字列] ROI IDをキーとしたオブジェクトとアラート モードの配列値

カメラ - 設定 - alert_levels

パラメータ データ型式 詳細
roi_id 配列[文字列] ROI IDをキーとしたオブジェクトとアラート レベルの配列値

カメラ - 設定 - bridges

パラメータ データ型式 詳細
device_id 文字列 ROI IDをキーとしたオブジェクトと、ブリッジ上のカメラのサービス状態の値

カメラ - camera_info

パラメータ データ型式 詳細
bridge 文字列 カメラが接続されているブリッジのデバイスID
camera_retention 整数 保存期間のミリ秒表記
camera_newest 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による、有効な最新イベントのタイムスタンプ。
camera_oldest 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による、有効な最も古いイベントのタイムスタンプ。
camera_info_version 整数 カメラ情報のバージョン
connect 文字列 カメラ接続状態
camera_min_time 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による、有効な最小のタイムスタンプ。
uuid 文字列 UUID 文字列
service 文字列 サービス状態
make 文字列 デバイスの製造元
ipaddr 文字列 デバイスに割り当てられたIPアドレスで、カンマ区切りで保存されます。使用中の一つの先頭にアスタリスク * が付与されます。
ts 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)によるタイムスタンプ。
version 文字列 ファームウェアバージョン
status 文字列 状態のビットマスク
mac 文字列 MACアドレス
proxy 文字列 プロキシ
bridgeid 文字列 このデバイスが接続されているブリッジのデバイス
now 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による現在のタイムスタンプ。
class 文字列 カメラ、ブリッジまたはその他。
camera_now 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による現在のカメラのタイムスタンプ。
camera_abs_newest 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による、有効な最新イベントのタイムスタンプ。
camera_abs_oldest 文字列 EENタイムスタンプフォーマット(YYYYMMDDHHMMSS.NNN)による、有効な最も古いイベントのタイムスタンプ。
model 文字列 デバイスのモデル
esn 文字列 ESN ID
admin_user 文字列 Web ユーザー名
admin_password 文字列 Web パスワード

カメラの取得

要求

curl -G https://login.eagleeyenetworks.com/g/device -d "A=[AUTH_KEY]&id=[CAMERA_ID]"

カメラ オブジェクトをIDで返します

HTTP要求

GET https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
id 文字列 カメラID True

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

ブリッジにカメラを追加する

要求

curl -X PUT https://login.eagleeyenetworks.com/g/device -d '{"name":"[NAME]","timezone":[TIMEZONE],"settings":{"bridge":"[BRIDGE_ID]","guid":"[CAMERA_GUID]","username":"","password":""}}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP要求

PUT https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
name 文字列 カメラ名 true
settings json 基本設定のJSONオブジェクト (場所、モーションの領域など) true
timezone 文字列 指定されていない場合、これはデフォルトのカメラのブリッジタイムゾーンになります
tags 配列[文字列] タグ名を表す文字列の配列

JSON応答

{
  "id": "100c339a"
}

非割当カメラをブリッジに追加します

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
name 文字列 カメラの名前 true
settings DeviceSettings その他の設定 true
timezone 文字列 指定しない場合、カメラが接続するブリッジのタイムゾーンに設定されます
tags 配列[文字列] 文字列の配列で、それぞれの文字列は “tag” を表します

応答 JSON 属性

パラメータ データ型式 詳細
id 文字列 デバイスの一意な識別子
HTTP 状態コード データ型式
200 要求は成功しました
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 接続IDに合致するデバイスが見つからないか、GUIDが見つかりません
409 接続IDまたはGUIDは既にアカウントで使用されています
410 ブリッジからカメラに通信できません
415 指定されたGUIDに割り当てられたデバイスはサポートされていません

カメラの更新

要求

curl -X POST https://login.eagleeyenetworks.com/g/device -d '{"id": "[CAMERA_ID], "name": "[NAME]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:"  --cookie "auth_key=[AUTH_KEY]"

HTTP 求

POST https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
name 文字列 カメラの名前
timezone 文字列 指定しない場合、カメラが接続するブリッジのタイムゾーンに設定されます
tags 配列[文字列] 文字列の配列で、それぞれの文字列は “tag” を表します
settings JSON 基本設定のJSONオブジェクト (場所、モーションの領域など)
camera_parameters_add JSON 追加または更新するカメラのパラメータ/設定のJSONオブジェクト
camera_parameters_delete JSON 削除するカメラのパラメータ/設定のJSONオブジェクト

JSON 応答

{
  "id": "100c339a"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 デバイスの一意な識別子

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 IDに合致するデバイスが見つかりません
463 追加/削除するカメラ設定の対象となるカメラと通信できません。サポートに連絡してください
200 要求は成功しました

カメラの削除

ブリッジからカメラを削除する(割り当てを解除することで、カメラを別のデバイスまたは同じデバイスに再追加できます)

要求

curl -X DELETE https://login.eagleeyenetworks.com/g/device -d "id=[CAMERA_ID]" -G -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

DELETE https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細
id 文字列 カメラID

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 IDに合致するデバイスが見つかりません
463 カメラまたはブリッジと通信できません。サポートに連絡してください
200 要求は成功しました

カメラリストの取得

ユーザーが使用できるカメラを表す各サブ配列を持つ配列の配列を返します。 'service_status' 属性は、 'ATTD''IGND''IDLE'、または 'ERSE'のいずれかに設定されます。 'service_status''ATTD'の場合、カメラはブリッジに接続されています。'service_status''IGND'の場合、カメラはどのブリッジからも接続されておらず、接続可能です。'service_status''IGND'の場合、カメラは登録可能で、動作しません(ブリッジに登録されていない)。'ERSE'ステータスは、ブリッジからすべてのカメラデータを消去するために使用されます

要求

curl --request GET https://login.eagleeyenetworks.com/g/device/list --cookie "auth_key=[AUTH_KEY]"

HTTP要求

GET https://login.eagleeyenetworks.com/g/device/list

パラメータ データ型式 詳細
e 文字列 カメラID
n 文字列 カメラの名前
t 文字列 デバイス形式
s 文字列 デバイスのサービス状態

JSON 応答

[
    [
        "00004206",
        "100d88a8",
        "Main",
        "bridge",
        [
            [
                "100f2fa1",
                "ATTD"
            ],
            [
                "100c339a",
                "ATTD"
            ]
        ],
        "ATTD",
        "swr",
        [],
        "bceb04ec-8b24-4aee-a09a-8479d856e81c",
        "EEN-BR300-08480",
        1048576,
        "US/Pacific",
        -25200,
        1,
        "",
        0,
        "Greater Good",
        false,
        null,
        null,
        [
            null,
            null,
            null,
            null,
            null,
            null
        ]
    ],
    [
        "00004206",
        "100c339a",
        "New Camera 1",
        "camera",
        [
            [
                "100d88a8",
                "ATTD"
            ]
        ],
        "ATTD",
        "swr",
        [],
        "1e574020-4e33-11e3-9b40-2504532f70b4",
        "4242325013460008",
        1441847,
        "US/Pacific",
        -25200,
        0,
        "*10.143.14.254",
        0,
        "Greater Good",
        false,
        null,
        null,
        [
            null,
            null,
            null,
            null,
            null,
            null
        ]
    ],
    [...],
    [...],
    [...]
]

HTTP 応答 (属性の配列)

配列のインデックス 属性 データ型式 詳細
0 account_id 文字列 デバイスのアカウントの一意な識別子
1 id 文字列 デバイスの一意な識別子
2 name 文字列 デバイスの名前
3 type 文字列, 選択リスト デバイスの形式

選択リスト: camera, bridge
4 bridges 配列[配列[文字列]] これは文字列配列の配列で、それぞれの配列はカメラから認識できるブリッジを表します。文字列配列の最初の要素はブリッジのESNを表します。2個目の要素は状態を表します。
5 service_status 文字列, 選択リスト デバイスのサービス状態。'ATTD' - カメラはブリッジに割り当て済み。
'IGND' - カメラは全てのブリッジから未割り当てでブリッジに割当が可能。
'IDLE' - カメラは登録可能ですが操作はできません (ブリッジに接続されていません)
'ERSE' - 一括ですべてのカメラデータが消去されます

選択リスト: ATTD, IGND, IDLE, ERSE
6 permissions 文字列 0以上の文字を持つ文字列。それぞれの文字は現在のユーザーのデバイスへの権限の定義を表します。権限は次の内容を含みます: 'R’ - ユーザーはこのデバイスの表示が可能。 'W’ - ユーザーはこのデバイスの変更、削除が可能。 ’S’ - ユーザーはこのデバイスの共有が可能。
7 tags 配列[文字列] タグ名を表す文字列の配列
8 guid 文字列 GUID(Globally Unique Identifier)は、製造プロセス中にデバイスに割り当てられる不変のデバイス識別子
9 serial_number 文字列 デバイスのシリアル番号
10 device_status 整数 ビットマスクによるデバイス状態
11 timezone 文字列 カメラのタイムゾーンを示します
12 timezone_utc_offset 整数 UTCとタイムゾーンの符号付き整数によるオフセット。“-25200”であれば、UTCから-7時間と解釈される。
13 is_unsupported 整数 カメラがサポートされてない(1)か、されている(0)かを示します。
14 ip_address 文字列 デバイスに割り当てられたIPアドレス(カンマ区切り)とアスタリスク(*)の接頭辞
15 is_shared 整数 カメラが共有済み(1)か、されていない(0)かを示します。
16 owner_account_name 文字列 デバイスを所有するアカウントの名前を表します。これは共有済みカメラのみに付与され、このカメラが他のアカウントに所有されるまで表示されます。
17 is_upnp ブール カメラがUPNPデバイスかを示します。このプロパティはその他全APIの 'is_*'と異なり、通常は整数(0または1)で表されます。現在このプロパティはアカウントに割り当てられていない場合にのみ付与され、ONVIFまたはUPNP経由でのみ検出されます。
18 video_input 文字列 アナログカメラのみで使用され、カメラの入力チャンネルを示します。
19 video_status 文字列 アナログカメラのみで使用され、カメラの動画入力状態を示します。
20 location 配列 Location of the device specified in the following way:

[
    latitude(float),
    longitude(float),
    azimuth(float/null for bridge),
    range(int/null for bridge),
    street address(string),
    floor(int),
    location name(string)
]

Note: If any field is not set, the value is null
21 parent_camera_id 文字列 親のカメラID
22 child_camera_view 文字列 子のカメラビュー
23 is_hidden 整数 GUIによるデバイスの非表示制御
24 ignored_inputs 配列[文字列] ブリッジが無視するアナログポート番号の配列
25 responder_camera 整数 カメラがファースト・レスポンダ用のカメラ(1)か否(0)かを示します

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

ブリッジ

概要

ブリッジはお客様先に設置され、業界標準カメラと通信を行うEagle Eyeの製品です。これによりカメラはEEVBとアセットの保存と互換するように変換されます。ブリッジはクラウドベースのユーザーインターフェイス経由でセットアップや制御が行われます。ブリッジにはユーザーインターフェイスはありません。ブリッジはローカルのクライアントのために、ローカルストレージに直接保存することが可能です。ブリッジはまた資産をEEVBに転送し、保存することが可能です。ブリッジはDHCPまたは固定IPアドレスによって構成されます。

ブリッジ モデル

ブリッジ モデル

{
    "bridges": null,
    "camera_info_status_code": 404,
    "name": "Main",
    "settings": {
        "bridge": null,
        "is_logically_deleted": false
    },
    "camera_settings_status_code": 200,
    "camera_info": null,
    "utcOffset": -25200,
    "camera_parameters_status_code": 200,
    "id": "100d88a8",
    "timezone": "US/Pacific",
    "guid": "bceb04ec-8b24-4aee-a09a-8479d856e81c",
    "camera_parameters": {
        "active_settings": {
            "max_disk_usage": {
                "max": 0.97999999999999998,
                "min": 0.050000000000000003,
                "d": 0.80000000000000004,
                "v": 0.80000000000000004
            },
            "display_layouts": {
                "d": {},
                "v": {}
            },
            "local_display_enable": {
                "max": 1,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "bandwidth_background": {
                "max": 10000000000.0,
                "min": -1000.0,
                "d": 100000.0,
                "v": 100000.0
            },
            "bandwidth_recover": {
                "max": 10000000000.0,
                "min": 100000.0,
                "d": 5000000.0,
                "v": 5000000.0
            },
            "stream_stats_present_only": {
                "max": 1,
                "min": 0,
                "d": 1,
                "v": 1
            },
            "retention_days": {
                "max": 10000,
                "min": 1,
                "d": 14,
                "v": 14
            },
            "bridge_retention_days": {
                "max": 100000,
                "min": 0,
                "d": 0,
                "v": 0
            },
            "stream_stats": {
                "d": "none",
                "v": "none"
            },
            "upnp_enable": {
                "max": 1,
                "min": -1,
                "d": 0,
                "v": 0
            },
            "bandwidth_demand": {
                "max": 10000000000.0,
                "min": 100000.0,
                "d": 10000000.0,
                "v": 10000000.0
            },
            "bandwidth_upload": {
                "max": 10000000000.0,
                "min": 100000.0,
                "d": 1000000.0,
                "v": 1000000.0
            },
            "retention_priority": {
                "max": 10000,
                "min": 1,
                "d": 100,
                "v": 100
            },
            "display_default_enabled": {
                "max": 1,
                "min": 0,
                "d": 1,
                "v": 1
            }
        },
        "active_filters": [
            "schedule_bandwidth_background",
            "user_user"
        ],
        "user_settings": {
            "versions": {},
            "settings": {
                "upnp_enable": "0",
                "bandwidth_background": 50000
            },
            "schedules": {
                "bandwidth_background": {
                    "priority": 1,
                    "start": {
                        "seconds": 0,
                        "hours": 8,
                        "months": "*",
                        "minutes": 0,
                        "wdays": [
                            1,
                            2,
                            3,
                            4,
                            5,
                            6,
                            7
                        ]
                    },
                    "end": {
                        "seconds": 0,
                        "hours": 17,
                        "months": "*",
                        "minutes": 30,
                        "wdays": [
                            1,
                            2,
                            3,
                            4,
                            5,
                            6,
                            7
                        ]
                    },
                    "when": "work",
                    "settings": {
                        "bandwidth_background": "100000"
                    }
                }
            }
        }
    },
    "tags": [],
    "permissions": "swr"
  }

ブリッジ (属性)

パラメータ データ形式 詳細 編集可? 必須?
id 文字列 デバイスの追加時に一意の識別子が自動的に生成され、割り当てられます


name 文字列 ブリッジの名前
guid 文字列 GUID(Globally Unique Identifier)は、製造プロセス中にデバイスに割り当てられる不変のデバイス識別子です
timezone 文字列 デバイスがインストールされている場所の時間帯を示します。デフォルトはアカウントのタイムゾーンです。 例: 'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage' or 'UTC' など
utcOffset 整数 UTCからのタイムゾーンの秒単位の符号付き整数オフセット。タイムゾーンフィールドに基づいて自動的に生成されます
tags 配列[文字列] タグ名を表す文字列の配列
permissions 文字列 現在のユーザーの権限レベルを定義する文字列
bridges JSON (カメラにのみ適用)
settings JSON 基本設定のJSONオブジェクト(場所など)
camera_info JSON 基本的なブリッジ情報のJSONオブジェクト。何らかの理由でブリッジ情報を取得できない場合(たとえば、ブリッジとの通信が失われた場合)にはこれは空になり、camera_info_status_codeは404になります
camera_info_status_code 整数 デバイスに関する情報を取得することが可能か(200)、否か(404)
camera_parameters JSON ブリッジパラメータのJSONオブジェクト。何らかの理由でブリッジパラメータを取得できない場合(例:ブリッジとの通信が失われた場合)にはこれは空になり、camera_parameters_status_codeは404になります
camera_parameters_status_code 整数 デバイスのパラメータを取得することができたか(200)、否かを示します(404)
camera_settings 文字列 これは下位互換性のためのパラメータです (廃止予定)
camera_settings_status_code 整数 これは下位互換性のためのパラメータです (廃止予定)

ブリッジ - 設定

パラメータ データ形式 詳細
analog_inputs_ignored 配列[文字列] ユーザが無視したいアナログ入力の数の配列
event_data_start_timestamp 文字列
local_display_layout_ids 配列[文字列] ローカルディスプレイ上で利用可能なレイアウトの配列
bridge null (カメラにのみ適用)
site_name 文字列 ユーザー定義のブリッジロケーション名
floor 整数 複数階の建物におけるブリッジの設置フロア数
retention_days 整数 ブリッジがデータを格納する日数の合計。このしきい値を超えたデータは徐々に削除されます
local_retention_days 整数 ブリッジがデータをローカルに格納する日数の合計。通常、データは格納されず、値は '-1' に設定されています。これは、ブリッジが指定された時間内にすべてのデータを直接アップロードすることを意味します。このしきい値を超えたデータは徐々に削除されます
longitude 浮動小数点 ブリッジの設置位置の経度
latitude 浮動小数点 ブリッジの設置位置の緯度
street_address 文字列 ブリッジの設置位置の住所

ブリッジ - カメラ

パラメータ データ形式 詳細
camera_property_model 文字列
model 文字列
camera_property_version 文字列
version 文字列
camera_property_make 文字列
make 文字列
camera_abs_newest 文字列
camera_newest 文字列
camera_abs_oldest 文字列
camera_oldest 文字列
uuid 文字列 ブリッジの属性 セクションの `‘guid’ と同じです
ipaddr 文字列 デバイスに割り当てられたIPアドレス。カンマで区切られ、アスタリスク (*) の接頭辞が使用されます
esn 文字列 ブリッジの属性 セクションの `'id’ と同じです
class 文字列 デバイスのタイプを決定します('bridge' または 'camera'
service 文字列
status 文字列 デバイス状態のビットマスク
camera_state_version 整数
no_video 整数
tagmap_status_state 整数
camera_retention_asset 整数
camera_retention_etag 整数
run_mode 文字列
register_id 整数
camera_now 文字列
ssn 文字列 ブリッジのシリアル番号
proxy 文字列
now 文字列 要求が完了した現在の時刻のEEN形式:YYYYMMDDHHMMSS.NNN
camera_property_analog ブール
status_hex 文字列 デバイス状態のビットマスク16進数値表示
camera_retention_interval 整数
camera_valid_ts 文字列

ブリッジの取得

IDによってブリッジ オブジェクトが返されます

要求

curl -G https://login.eagleeyenetworks.com/g/device -d "A=[AUTH_KEY]&id=[BRIDGE_ID]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
id 文字列 ブリッジ ID true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 ConnectIDまたはGUIDと一致するデバイスが見つかりませんでした
200 要求は成功しました

EEVBへのブリッジの追加

Eagle Eyeビデオバンクにブリッジを追加します

要求

curl -X PUT https://login.eagleeyenetworks.com/g/device -d '{"name":"[NAME]","connectID":[CONNECT_ID]}' -H "content-type: application/json"-H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
name 文字列 ブリッジの名前 true
connectid 文字列 アカウントへアクティブなブリッジを追加するにはConnect ID(訳注:Attach ID)が必要になります。全ての非数字、アルファベット文字は無視されます。 true

JSON 応答

{
    "id": "100d88a8"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 デバイスの一意な識別子

エラー状態コード

HTTP 状態コード データ型式
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 ConnectIDまたはGUIDと一致するデバイスが見つかりませんでした
409 ConnectIDあたはGUIDは既にアカウントによって使用中です
410 ブリッジと通信できないため、カメラを割り当てできませんでした
415 指定されたGUIDに割り当てられたデバイスはサポートされていません
200 要求は成功しました

ブリッジの更新

ブリッジの情報を更新します

要求

curl -X POST https://login.eagleeyenetworks.com/g/device -d '{"id": "[BRIDGE_ID], "name": "[NAME]"}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
id 文字列 ブリッジ ID true
name 文字列 ブリッジの名前
timezone 文字列 デバイスがインストールされている場所の時間帯を示します。デフォルトはアカウントのタイムゾーンです。 例:'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage' または 'UTC'
tags 配列[文字列] 文字列の配列で、それぞれの文字列はタグ名を表します
settings JSON 基本設定のJSONオブジェクト(場所など)
camera_parameters_add JSON 追加/更新するカメラ設定のJSONオブジェクト
camera_parameters_delete JSON 削除するカメラ設定のJSONオブジェクト

JSON 応答

{
    "id": "100d88a8"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 デバイスの一意な識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 IDと一致するデバイスが見つかりませんでした
463 設定の追加/削除を行うカメラと通信できません。サポートに連絡してください
200 要求は成功しました

ブリッジの削除

Eagle Eye ビデオ バンクからブリッジを削除する

要求

curl -X DELETE https://login.eagleeyenetworks.com/g/device -d "id=[BRIDGE_ID]" -G -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

DELETE https://login.eagleeyenetworks.com/g/device

パラメータ データ型式 詳細 必須?
id 文字列 ブリッジ ID true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 IDと一致するデバイスが見つかりませんでした
463 カメラまたはブリッジと通信できません。サポートに連絡してください
200 要求は成功しました

ブリッジのリストを取得する

ユーザーが使用可能なブリッジを表すサブ配列をそれぞれに持つ配列の配列を返します。配列中の配列が返された場合、それぞれの子配列はユーザーで有効なデバイスを表します。'service_status' 属性は 'ATTD' または 'IGND' が設定されます。もし 'service_status''ATTD' と表示された場合には、カメラはブリッジに割り当て済みとなります。もし 'service_status''IGND' と表示された場合には、カメラはどのブリッジからも未割り当てとなり、割当可能となります。'service_status' が 'IDLE'の場合、カメラは登録されますが、動作しません(登録されていないブリッジ)。 'ERSE' ステータスは、ブリッジからすべてのカメラデータを消去するために使用されます

要求

curl --request GET https://login.eagleeyenetworks.com/g/device/list --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/device/list

パラメータ データ形式 詳細
e 文字列 ブリッジ ID
n 文字列 ブリッジの名前
t 文字列 デバイス形式
s 文字列 デバイスのサービス状態

JSON 応答

[
    [
        "00004206",
        "100d88a8",
        "Main",
        "bridge",
        [
            [
                "100f2fa1",
                "ATTD"
            ],
            [
                "100c339a",
                "ATTD"
            ]
        ],
        "ATTD",
        "swr",
        [],
        "bceb04ec-8b24-4aee-a09a-8479d856e81c",
        "EEN-BR300-08480",
        1048576,
        "US/Pacific",
        -25200,
        1,
        "",
        0,
        "Greater Good",
        false,
        null,
        null,
        [
            null,
            null,
            null,
            null,
            null,
            null
        ],
        null,
        null,
        0,
        [],
        0
    ],
    [
        "00004206",
        "100c339a",
        "New Camera 1",
        "camera",
        [
            [
                "100d88a8",
                "ATTD"
            ]
        ],
        "ATTD",
        "swr",
        [],
        "1e574020-4e33-11e3-9b40-2504532f70b4",
        "4242325013460008",
        1441847,
        "US/Pacific",
        -25200,
        0,
        "*10.143.14.254",
        0,
        "Greater Good",
        false,
        null,
        null,
        [
            null,
            null,
            null,
            null,
            null,
            null
        ],
        null,
        null,
        0,
        [],
        0
    ],
    [
        "00004206",
        "100f2fa1",
        "Dome",
        "camera",
        [
            [
                "100d88a8",
                "ATTD"
            ]
        ],
        "ATTD",
        "swr",
        [],
        "3b3efd60-432d-11e3-b19b-11ac28dbc101",
        "4016825013440034",
        1441847,
        "US/Pacific",
        -25200,
        0,
        "*10.143.217.117",
        0,
        "Greater Good",
        false,
        null,
        null,
        [
            null,
            null,
            null,
            null,
            "",
            null
        ],
        null,
        null,
        0,
        [],
        0
    ]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ型式 詳細
0 account_id 文字列 デバイスを管理するアカウントの一意の識別子
1 id 文字列   デバイスの一意の識別子
2 name 文字列   デバイス名
3 type 文字列, 選択リスト デバイス形式

選択リスト: bridge, camera
4 cameras 配列[配列[文字列]] これは文字列配列の配列で、各配列はブリッジに接続されたカメラを表します。 配列の最初の要素はカメラESNです。 2番目の要素はサービス状態です
5 service_status 文字列, 選択リスト デバイスサービス状態:
'ATTD' - カメラはブリッジにアタッチしています
'IGND' - カメラは全てのブリッジに接続しておらず、ブリッジに接続可能な状態です
'IDLE' - カメラは登録済みですが、操作されていません (登録されていないブリッジ)
'ERSE' - この状態になると、全てのカメラ データは削除されます

ブリッジではこのフィールドは常に 'ATTD' になります

選択リスト: ATTD, IGND, IDLE, ERSE
6 permissions 文字列 (現在のユーザの)権限レベルをそれぞれ定義する0文字以上の文字列
7 tags 配列[文字列] タグ名を表す文字列の配列
8 guid 文字列 GUID(Globally Unique Identifier)は、製造プロセス中にデバイスに割り当てられる不変のデバイス識別子です
9 serial_number 文字列 デバイスのシリアル番号
10 device_status 整数 デバイス状態のビットマスク
11 timezone 文字列 デバイスがインストールされている場所の時間帯を示します。デフォルトはアカウントのタイムゾーンです。例: 'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'America/Anchorage' または 'UTC' など
12 timezone_utc_offset 整数 UTCからのタイムゾーンの秒単位の符号付き整数オフセット
13 is_unsupported 整数 デバイスがサポートされていないか(1)、されているか(0)
14 ip_address 文字列 デバイスに割り当てられたIPアドレス
15 is_shared 整数 デバイスが共有されているか(1)、いないか(0) (カメラにのみ適用)
16 owner_account_name 文字列 デバイスを所有するアカウントの名前
17 is_upnp ブール デバイスがUPNPデバイスか(1)否か(0)を示します (ONVIFまたはUPNP経由で検出されたカメラのうち、まだ割り当てられていないカメラにのみ適用されます)
18 video_input 文字列 カメラのビデオ入力チャネルを示します。 (アナログカメラに適用)
19 video_status 文字列 カメラのビデオ状態を示します: (アナログカメラに適用)
'0x00000000' - シグナル OK
'0x00000102' - シグナルなし
20 location 配列 次の方法で指定されたデバイスの設置場所:

[
    latitude(浮動小数点),
    longitude(浮動小数点),
    azimuth(浮動小数点/null for bridge),
    range(整数/null for bridge),
    street address(文字列),
    floor(整数),
    location name(文字列)
]

注:フィールドが設定されていない場合、値はnullになります
21 parent_camera_id 文字列 親カメラ ID
22 child_camera_view 文字列 子カメラビュー
23 is_hidden 整数 非表示デバイスのGUI制御
24 ignored_inputs 配列[文字列] ブリッジが無視すべきアナログポート番号の配列
25 responder_camera 整数 カメラがファースト・レスポンダカメラか(1)、否か(0)を示します

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

画像と動画

概要

アセットサービスは適切なフォーマットのプレビューと動画によるメディアアセットへのアクセスを提供します。アセットサービスは アセット の列挙と識別のためにリストトランザクションと連携して使用されます

画像の要求

画像の要求モデルは、いくつかの利用モデルに対して効果的なイメージシーケンスへのアクセス機構があります。画像の要求は next/after/prev 仮想モデルを使用して直接行うことが可能です。これは特定のタイムスタンプの前や後の画像を返すことが可能です。それとは別に、タイムスタンプとイベント情報は List インターフェイス(イベントの履歴を取得するため)と、リアルタイムに新しい画像を追跡可能な Poll インターフェイスを通じて取得することができます。以下のクックブックでは様々なイベントに対して適切な利用モデルを提供します。

### 画像フォーマット

- JPEG: システムのネイティブな形式。 画像は常にJPEG画像として返されます。

画像リストの取得

画像リストの取得には幾つかの異なる方法があります:

4月1日から4月2日までの全てのプレビュー画像の情報を取得します
https://login.eagleeyenetworks.com/asset/list/image.jpeg?c=100676b2;t=20140401000000.000;e=20140402000000.000;a=all;

4月1日から遡って500個の画像を取得する方法
https://login.eagleeyenetworks.com/asset/list/image.jpeg?c=100676b2;t=20140401000000.000;count=-500;a=all;

4月1日から順に500個の画像を取得する方法
https://login.eagleeyenetworks.com/asset/list/image.jpeg?c=100676b2;t=20140401000000.000;count=500;a=all;

動画の取得

動画は 'play' コマンド経由でアクセスします。動画はセグメントに分けられながら取得され、1セグメント5分を上限に保存されます。動画コマンドは要求されたデータ範囲を提供するために、セグメント化された動画を動画形式の中で結合するためにシームレスにヘッダを書き換えます。しかしながら、我々の開発者はブリッジのストレージが無駄に容量を消費しないよう、1度に5分までの動画の取得を強く推奨します。

もしセグメントの終了時間に到達した場合には、到着とともにその動画はデータ ストリームを開始し、最小限の遅延でライブ動画のストリーミングを提供することができます。MP4形式はライブストリームできません。注: もしカメラが動画のストリーミングを行っていない場合、一般的には要求を行われませんが、動画はキャプチャされるまで動画は停止されます(そして再開します)。 キーワード 'stream_<streamid>' はタイムスタンプの先頭に置いて使用できます。これはカメラからクラウドに対してキャプチャとライブストリームを強制します。ストリームIDはグローバルで一意(のよう)な文字列であり、タイムスタンプとユーザーIDの組み合わせが良い案です。これは M3U形式の要求で、m3u ポールトランザクション間で連続性を保証するためにのみ重要となります。

開始タイムスタンプは、動画が存在する場合には動画の開始タイムスタンプと一致する必要があります。動画のサブセグメント範囲では、'to' (オフセット時間) 引数を使用して指定することができます。例として、12:30から12:35で5分間記録された動画があると仮定します。'?t=20181120123000.000;e=20181120123400.000;to=180000;...' とクエリすることで1分の動画 (開始タイムスタンプは12:33) を再生することができ、動画の開始を12:30から3分指定していますが、録画されたセグメントの最後の1分は切り取られます。

。 動画システムは h264動画と AAC音声をベースにしています。これらのストリームは様々な再生モードと互換性を持たせるために様々なフォーマットでカプセル化されます - **FLV:** システムのネイティブ フォーマットです。VLCのような様々なFlashプレイヤーで再生可能です - **mp4:** MPEG4ファイルは非常に広範な再生互換性を持ちます - 全てのメジャーな動画プレイヤーで互換です。しかし、mp4はストリーム「できない」フォーマットのため、ダウンロード機能またはライブ動画でエラーが返ってきたときのみ使用されます H.264コーデックは特定の動画ストリームを再生する再生デバイスの互換性のために、プロファイルとレベルという概念を持ちます - **Low:** 低品質動画はベースラインの最大プロファイル (最大640x480) - **Med:** 中品質動画はメインの最大プロファイル - **High:** 高品質動画は高の最大プロファイル ## EENタイムスタンプ 全てのアセットはEENタイムスタンプが付与されています。タイムスタンプは常にUTCであり、最も近いミリ秒に合わされます。タイムスタンプはテキストで YYYYMMDDhhmmss.mm の形式で表されます。 msにおける “now” からの +/- オフセットは有効です。 ## 画像の取得

キャッシュ制御ヘッダは'now' に関連した時間指定がなされていない場合においてアセットのキャシュを許可します:

ヘッダー データ形式 詳細
x-ee-timestamp 形式-タイムスタンプ 提供する画像のアセット形式とタイムスタンプを指定します

形式: video, preview, thumb, event
x-ee-prev 形式-タイムスタンプ
(or '不明')
以前の画像で合致するクラスフィルタを指定するか、もし以前の画像形式がわからない場合には ‘不明’ を指定します
x-ee-next 形式-タイムスタンプ
(or '不明)
後続の画像で合致するクラスフィルタを指定するか、もし後続の画像形式がわからない場合には '不明’ を指定します
content-type 'image/jpeg' コンテンツ形式を指定します
location '/asset/asset/image.jpeg?t=20180917213405.700;q=low;c=thumb' 応答する実際のアセットの時間を識別します

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/prev/image.jpeg?id=[CAMERA_ID];timestamp=[TIMESTAMP];asset_class=[ASSET_CLASS];A=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/asset/asset/image.jpeg
指定したタイムスタンプの画像を取得します

GET https://login.eagleeyenetworks.com/asset/prev/image.jpeg
指定したタイムスタンプ前の最初の画像を取得します

GET https://login.eagleeyenetworks.com/asset/next/image.jpeg
指定されたタイムスタンプの後に最初のイメージを取得します。'timetamp=now' で使用すると、新しい画像が現れるまで待機し、返します

GET https://login.eagleeyenetworks.com/asset/after/image.jpeg
指定されたタイムスタンプの直後の画像を取得します。'timetamp=now'を使用した場合、404 - 画像が見つかりません が返されます

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
timestamp 文字列 EENフォーマットでのタイムスタンプ: YYYYMMDDHHMMSS.NNN true
asset_class 文字列, 選択リスト 画像のアセットクラス

選択リスト: all, pre, thumb
true
quality 文字列, 選択リスト (将来実装機能) 画像の品質

選択リスト: low, med, high

応答

JPEG<file_content>

HTTP 応答

返される応答はJPEGフォーマットのバイナリ イメージです

エラー状態コード

HTTP 状態コード 詳細
301 アセットは異なるアーカイバに移動されました
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 画像が存在しません
200 要求は成功しました

動画の取得

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/play/video.flv?id=[CAMERA_ID];start_timestamp=[START_TIMESTAMP];end_timestamp=[END_TIMESTAMP];A=[AUTH_KEY]"

HTTP要求

GET https://login.eagleeyenetworks.com/asset/play/video.{video_format}

パラメータ データ型式 詳細 必須?
id 文字列 カメラ ID true
start_timestamp 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN true
end_timestamp 文字列 EENフォーマットでの終了タイムスタンプ: YYYYMMDDHHMMSS.NNN true
quality 文字列, 選択リスト (将来実装機能) もし複数存在する場合、要求した解像度を表示します

選択リスト: low, mid, high

応答

FLV<file_content>

HTTP 応答

要求されたファイル形式のバイナリー動画データで応答を返します

エラー状態コード

HTTP 状態コード 詳細
301 アセットは異なるアーカイバに移動されました
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 カメラが提供されていません
404 カメラでエラーが発生しました
410 動画の保存期限外です
503 カメラのタグ マップが読み込まれていません
200 要求は成功しました

画像のプリフェッチ

このAPI呼び出しは、画像がクラウド内にあることを保証します。画像がクラウドにない場合は、クラウドに画像を送信するためにブリッジにバックグラウンドでのアップロード要求を行います。アップロードに成功するかエラーが発生すると、コール時に提供されたWebフックを起動します。Webhookは、JSON形式のデータをPOSTで送信するように起動されます

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/cloud/image.jpg?start_timestamp=[START_TIMESTAMP];id=[CAMERA_ID];webhook_url=[WEBHOOK_URL]A=[AUTH_KEY]"

HTTP Request

GET https://login.eagleeyenetworks.com/asset/cloud/image.jpg

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
start_timestamp 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN true
webhook_url 文字列 トリガーされる webhook url (urlencode されている必要があります) true

Webhook JSON POST 応答

{
    "event:": "[イベント]"
}

HTTP 応答 (JSON イベントの値)

詳細
ASSET_CLOUD_EVENT_UPLOADED 画像をクラウド内にアップロードすることに成功しました。
ASSET_CLOUD_EVENT_DEMAND_FAILED 画像はブリッジとの接続の取得に失敗しました。
ASSET_CLOUD_EVENT_NOTHING_UPLOAD 画像はクラウド内に既に存在するため何もアップロードされませんでした。
ASSET_CLOUD_EVENT_INVALID_RANGE 誤った範囲 (タイムスタンプ) が要求されました。
ASSET_CLOUD_EVENT_ABORT 一般エラーが発生しました。

HTTP 状態コード

HTTP 状態コード 詳細
201 要求は作成され、webhookは成功またはエラー時にトリガーされます

動画のプリフェッチ

このAPI呼び出しは動画がクラウド内に存在することを確実化させます。もし動画がクラウド内に存在しない場合、クラウドに動画を追加するようにブリッジからバックグラウンドアップロード要求を行います。webhookはアップロードが成功するかエラーが発生した時に呼び出しを発生させます。webhookが発生すると、JSONフォーマット データをPOSTします。

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/cloud/video.flv?start_timestamp=[START_TIMESTAMP];end_timestamp=[END_TIMESTAMP];id=[CAMERA_ID];webhook_url=[WEBHOOK_URL]A=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/asset/cloud/video.flv

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
start_timestamp 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN true
end_timestamp 文字列 EENフォーマットでの終了タイムスタンプ: YYYYMMDDHHMMSS.NNN true
webhook_url 文字列 トリガーされる webhook url (urlencode されている必要があります) true

Webhook JSON POST 応答

{
    "event:": "[イベント]"
}

HTTP 応答 (JSON イベントの値)

詳細
ASSET_CLOUD_EVENT_UPLOADED 動画をクラウド内にアップロードすることに成功しました
ASSET_CLOUD_EVENT_DEMAND_FAILED 動画はブリッジとの接続の取得に失敗しました
ASSET_CLOUD_EVENT_NOTHING_UPLOAD 動画はクラウド内に既に存在するため何もアップロードされませんでした
ASSET_CLOUD_EVENT_INVALID_RANGE 誤った範囲 (タイムスタンプ) が要求されました
ASSET_CLOUD_EVENT_ABORT 一般エラーが発生しました

HTTP 状態コード

HTTP 状態コード 詳細
201 要求は作成され、webhookは成功またはエラー時にトリガーされます

画像リストの取得

それぞれのオブジェクトにタイムスタンプとjpeg画像の形式を含む、オブジェクトのリストを返します

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/list/image?start_timestamp=[START_TIMESTAMP];end_timestamp=[END_TIMESTAMP];id=[CAMERA_ID];asset_class=[ASSET_CLASS];A=[AUTH_KEY]"

HTTP Request

GET https://login.eagleeyenetworks.com/asset/list/image

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
start_timestamp 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN true
asset_class 文字列, 選択リスト 画像のアセットクラス

選択リスト: all, pre, thumb
true
end_timestamp 文字列 EENフォーマットでの終了タイムスタンプ: YYYYMMDDHHMMSS.NNN
count 整数 'end_timestamp’ 引数の代わりに使用されます。もし 'end_timestamp’ 引数と共に使用される場合には、'start_timestamp'との間のリストが取得され、カウントはエントリの数を制限して返します。もし 'end_timestamp’ 引数が指定されない場合には、N個だけ返されます。負の値もサポートしており、逆順で並び替えられて、N個前のエントリが返されます - 例えば -5 を指定すると、指定した時間から5個前までのイベントが返されます

JSON 応答

[
    {
        "t":"PRFR",
        "s":"20181001000000.045"
    },
    {
        "t":"PRFR",
        "s":"20181001000001.045"
    },
    {
        "t":"PRFR",
        "s":"20181001000002.064"
    },
    {
        "t":"PRFR",
        "s":"20181001000003.064"
    },
    {
        "t":"PRFR",
        "s":"20181001000004.064"
    },
    {
        "t":"PRFR",
        "s":"20181001000005.063"
    },
    {
        "t":"PRFR",
        "s":"20181001000006.063"
    },
    {
        "t":"PRFR",
        "s":"20181001000007.096"
    }
]

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
t 文字列 オブジェクトによって示される要求されたイベントのタイプ Four CC
s 文字列 EENフォーマットでの画像のタイムスタンプ: YYYYMMDDHHMMSS.NNN

エラー状態コード

HTTP 状態コード 詳細
301 アセットは異なるアーカイバに移動されました
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

動画リストの取得

それぞれのオブジェクトに単一動画クリップの開始及び終了タイムスタンプ含むオブジェクトのリストを返します

'o=coalesce' オプションが追加されている場合、前後のビデオと開始時刻と終了時刻が重複しているビデオは、1つのビデオ(1つのオブジェクト)にマージされます

要求

curl -v -G "https://login.eagleeyenetworks.com/asset/list/video?start_timestamp=[START_TIMESTAMP];end_timestamp=[END_TIMESTAMP];id=[CAMERA_ID];o=coalesce;A=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/asset/list/video

パラメータ データ型式 詳細 必須?
id 文字列 カメラID true
start_timestamp 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN true
end_timestamp 文字列 EENフォーマットでの終了タイムスタンプ: YYYYMMDDHHMMSS.NNN
count 整数 'end_timestamp’ 引数の代わりに使用されます。もし 'end_timestamp’ 引数と共に使用される場合には、'start_timestamp'との間のリストが取得され、カウントはエントリの数を制限して返します。もし 'end_timestamp’ 引数が指定されない場合には、N個だけ返されます。負の値もサポートしており、逆順で並び替えられて、N個前のエントリが返されます (例えば -5 を指定すると、指定した時間から5個前までのイベントが返されます)
options 文字列, 選択リスト 追加の修飾オプションです br>
選択リスト: coalesce (いずれかのオブジェクトの開始タイムスタンプまたは終了タイムスタンプが別のオブジェクトのタイムスタンプと重なっている場合はそのビデオをまとめ、そうでない場合はそのまま返します)

JSON 応答

[
    {
        "s":"20181001000016.768",
        "e":"20181001000100.758",
        "id":4177006339
    },
    {
        "s":"20181001000220.825",
        "e":"20181001000242.774",
        "id":4177006850
    },
    {
        "s":"20181001000256.811",
        "e":"20181001000320.869",
        "id":4177006866
    },
    {
        "s":"20181001000354.761",
        "e":"20181001000422.812",
        "id":4177006912
    },
    {
        "s":"20181001000526.821",
        "e":"20181001000632.829",
        "id":4177007014
    },
    {
        "s":"20181001000746.836",
        "e":"20181001000834.757",
        "id":4177007035
    },
    {
        "s":"20181001000904.749",
        "e":"20181001000932.767",
        "id":4177007047
    },
    {
        "s":"20181001000934.766",
        "e":"20181001001002.777",
        "id":4177007072
    }
]

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
s 文字列 EENフォーマットでの開始タイムスタンプ: YYYYMMDDHHMMSS.NNN
e 文字列 EENフォーマットでの終了タイムスタンプ: YYYYMMDDHHMMSS.NNN
id 整数 動画の一意な識別子

エラー状態コード

HTTP 状態コード 詳細
301 アセットは異なるアーカイバに移動されました
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

ポーリング

概要

ポーリング サービスは、アプリケーションがEagle Eye Networksからのイベントまたはスパンの通知を受信するためのメカニズムを提供します。これらのエンティティはリソース別にグループ分けされています

リソース:

イベント リソース:

カメラとデバイスのイベントには次のものを含みます: オン、オフ、オンライン、オフライン、現在の録画、現在のモーション検出、スケジュールの開始/停止イベント、PTZ制御など。

ポール(またはポーリング)はサービス内で発生し、合致したイベントをいつでも更新するステートフルな要求です。初期化のポール要求は、追跡するリソースを示すJSONでフォーマットされた文書をPOST (デフォルトは WebSocket に GET で要求します) で要求することで行います。動画、プレビュー、サムネイルのようなリソースは、それぞれのイベントを呼び出し元のAPIに自動的に登録を行います。しかし 'event' 形式のリソースは、API呼び出し元に対してどのようなイベントをリッスンするか要求します

それぞのオブジェクトは、モニターするID要素とリソースの形式から成ります。POSTトランザクションは、全ての要求されたリソースの現在のタイムスタンプが即時に返されたJSONフォーマット文書を受け取ります。応答にはクッキーも含まれ、これはGETトランザクション経由で変化点が示されたリソースを追跡するために使用されます

応答リソース形式

各リソース形式は、特定のオブジェクト形式で応答します:

形式 応答 詳細
pre prets 最新のプレビュー画像のタイムスタンプ
thumb thumbts 最新のサムネイル画像のタイムスタンプ
video [startts, endts] 動画セグメントの開始と終了タイムスタンプのリスト。開始から終了までキーフレーム毎に更新が行われる
status bitmask 状態を定義した数値のビットマスク。ビット位置は状態を定義する。それぞれのビットは、以下の表のとおり定義される
event object イベントはキーと値のペアであり、キーは四文字 (four cc)、そしてイベント構造は特定イベントの実際のメタデータで構成される。有効なイベントは以下の表に表される

状態のビットマスク

HEX値 状態
0x000001 カメラ オンライン (廃止予定)
0x000002 ストリーム割り当て済み (カメラはブリッジと通信中) (廃止予定)
0x000004 カメラ オン (ユーザー設定) (廃止予定)
0x000008 カメラ録画中 (廃止予定)
0x000010 カメラはプレビューを送信中
0x000020 カメラ検出中 (ブリッジからカメラが見えている)
0x000040 カメラは未サポート
0x000080 カメラは構成中 (ブリッジはカメラを構成中)
0x000100 カメラはONVIFパスワードが必要
0x000200 カメラは有効だがブリッジに接続されていない
0x000400 内部ステータス
0x000800 カメラ エラー
0x001000 内部ステータス
0x002000 内部ステータス
0x004000 予約済み
0x008000 予約済み
0x010000 不正な状態 (不明な状態)
0x020000 カメラ オン (ユーザーによる設定)
0x040000 カメラは動画をストリーミング中
0x080000 カメラは録画中
0x100000 カメラ オンライン

この状態のビットマスクは以下のロジックに従い、

IF “Camera On” (bit 17)==0 THEN “Off” (オレンジの禁止アイコン)
ELSE IF “Registered” (bit 20)==0 THEN “Internet Offline” (赤の!アイコン)
ELSE IF “Streaming” (bit 18)==1 THEN “Online” (緑のチェック アイコン)
ELSE IF “Password” (bit 8)==1 THEN “Password Needed” (実体は “Offline”) (赤の鍵ロック アイコン)
ELSE “Offline” (赤の×アイコン)

IF “Recording” (bit 19) THEN Recording (緑の●アイコン)) IF “Invalid” (bit 16)==1 THEN no status change (どんな状態であっても直前の状態ビットをセット)

イベント オブジェクト

イベント オブジェクト

{
    "status_code": 200,
    "message": "OK",
    "data": {
        "100e1e23": {
            "event": {
                "PRSS": {
                    "status": 31,
                    "format": 1,
                    "frame_delay": 1000,
                    "timestamp": "20180425100000.000",
                    "cameraid": "10087ff5",
                    "flags": 0,
                    "duration": 3600000,
                    "previewid": 1493114470
                }
            }
        },
        "<object_id>": {...},
        "<object_id>": {...},
        "<object_id>": {...}
    }
}

注: ’◦’ とマークされたイベントオブジェクトの説明については、イベントに関する追加情報のために拡張することが可能です

Four CC 詳細 戻り パラメータ
VRES 動画開始イベント cameraid, videoid, format, status
VREE 動画終了イベント cameraid, videoid, videosize, format, status
VRKF 動画キーフレーム イベント cameraid, videoid, file_offset, format
EAES
常時動画録画開始イベント ◦


バックグラウンドで「常時」動画録画イベントが開始されました

cameraid, videoid, eventid
EAEE
常時動画録画終了イベント ◦


バックグラウンドで「常時」動画録画イベントが終了しました

cameraid, eventid
AEDO 動画ダウンロード イベント cameraid, status, source_userid, source_accountid, resource_type, deviceid, endtime
EVVS
動画スワップ イベント ◦


このイベントは次の2つの異なるビデオIDにまたがります: 'eventid''videoid'(新しいスワップインID)

cameraid, videoid, eventid
PRTH サムネイル イベント   cameraid, previewid, eventid, file_offset, frame_size
PRFR
プレビュー イベント ◦


プレビューフレームが録画されたことを示します

cameraid, previewid, file_offset, frame_size
PRFB プレビュー支援イベント     cameraid, previewid, file_offset, frame_size
EMES モーション開始イベント cameraid, videoid, eventid
EMEE モーション終了イベント cameraid, eventid
EMEU
モーション更新イベント ◦


モーションイベントのハートビート
(10秒間隔)

cameraid, videoid, eventid
MRBX
モーション ボックス イベント ◦


指定された領域でモーションが発生しました(座標は右上隅から 0xffff の小数部にあります)

cameraid
MRSZ
モーションサイズ レポートイベント ◦


画面上でのモーション数と各アクティブROI(0xffff 以上の比率が画面の割合で表示されます)を示します。
フラグ '0x1' は - 定義済みのしきい値を超えるモーションを指します

cameraid, flags, motion
ALMS
モーションアラート 開始イベント ◦


モーションイベントが発生しました(示されたアラートに関連しています)

cameraid, eventid, alertid, alertmotionid
ALME
モーションアラート 終了イベント ◦


モーションイベントが終了しました(示されたアラートに関連しています)

cameraid, alertmotionid
ROMS
ROI モーション開始イベント ◦


関心領域モーション開始イベント

cameraid, roiid, videoid, eventid
ROME
ROI モーション終了イベント ◦


関心領域モーション終了イベント

cameraid, eventid
ROMU
ROI モーション更新イベント ◦


ROIモーションイベントのハートビート

cameraid, roiid, videoid, eventid
ALRS
ROI アラート開始イベント ◦


アラートにリンクしたROIモーションイベントが開始されました

cameraid, eventid, alertid, alertroiid
ALRE
ROI アラート終了イベント ◦


アラートにリンクしたROIモーションイベントが終了しました

cameraid, alertroiid
AEDA デバイスアラート イベント cameraid, status, deviceid, source_userid, source_accountid, values
AEDN デバイスアラート通知イベント cameraid, status, target_deviceid, triggerid, starttime, endtime, target_userid, json
AEDC
デバイスイベントの作成 ◦


'cameraid' はESN(電子シリアル番号)として理解されます。アカウント、ブリッジ、カメラまたはユーザーを表すことができます

cameraid, status, deviceid, source_userid, source_accountid
AEDD
デバイスイベントの削除 ◦


'cameraid' はESN(電子シリアル番号)として理解されます。アカウント、ブリッジ、カメラまたはユーザーを表すことができます

cameraid, status, deviceid, source_userid, source_accountid
AEDH
デバイス変更イベント ◦


'cameraid' はESN(電子シリアル番号)として理解されます。アカウント、ブリッジ、カメラまたはユーザーを表すことができます

cameraid, status, deviceid, source_userid, source_accountid, values
ESES
ストリーム開始イベント ◦


ユーザー要求のストリームイベントが開始されました

cameraid, videoid, eventid
ESEE
ストリーム終了イベント ◦


ユーザー要求のストリームイベントが終了しました

cameraid, eventid
SBWS
ストリーム帯域サンプルイベント ◦


有効にした場合、カメラからの最後のN秒間のストリームで帯域幅のサンプリングを行います

cameraid, bw10, bw60, bw300, streamtype
SBW0
ストリーム帯域サンプル0イベント ◦


ストリーム0のカメラ帯域幅のサンプル

'PREV' - プレビューチャンネル+サムネイルのベースの帯域幅(選択したレート/品質のすべてのフレーム、圧縮なし)

cameraid, bw10, bw60, bw300
SBW1
ストリーム帯域サンプル1イベント ◦


ストリーム1のカメラ帯域幅のサンプル

'PSND' - 送信する必要がある 帯域幅
'VIDC' - 動画キャプチャ帯域幅 (動画と音声同一)

cameraid, bw10, bw60, bw300
SBW2
ストリーム帯域サンプル2イベント ◦


ストリーム2のカメラ帯域幅のサンプル

'VIDE' - 動画ストリームのベース帯域幅 (非モーション フィルタ)

cameraid, bw10, bw60, bw300
SBW3
ストリーム帯域サンプル3イベント ◦


ストリーム3のカメラ帯域幅のサンプル

'AUDI' - 音声ストリームのベース帯域幅 (非モーション フィルタ)

cameraid, bw10, bw60, bw300
SBW4
ストリーム帯域サンプル4イベント ◦


ストリーム4のカメラ帯域幅のサンプル

'VIDC' - 動画キャプチャ帯域幅 (動画と音声同一)

cameraid, bw10, bw60, bw300
SSTE ストリーマ状態イベント cameraid, stype, event, seconds
CSAU
カメラストリーム接続イベント ◦


カメラがブリッジへのデータのストリーミングを開始しました( 'streamid'はCSDUとCSSUで共通です)

cameraid, streamid, stream_format, stream_type
CSDU
カメラストリーム除去イベント ◦


カメラがブリッジへのデータのストリーミングを停止しました

cameraid, streamid, stream_format, stream_type
CSSU
カメラストリーム統計イベント ◦


カメラがカメラとブリッジ間のストリームの統計情報を送信しています(CSAU / CSDUのハートビート)

cameraid, streamtype, streamformat, total_expected, total_rcvd, delta_expected, delta_rcvd, interval, streamid
CECF
カメラ検出イベント ◦


ブリッジによってカメラが検出されました

cameraid, uuid, svc_state
CECL
カメラ逸失イベント ◦


ブリッジが検出した後、カメラは正常に応答を停止しました

cameraid
RCON カメラオンライン イベント cameraid, registerid
RCOF カメラオフライン イベント cameraid, registerid
CONN カメラオン イベント cameraid
COFF カメラオフ イベント cameraid
RCHB
カメラハートビート イベント ◦


カメラがまだ登録されていることをハートビートが示します

cameraid, registerid
ABRT
カメラア中断イベント ◦


ブリッジのプロセスが再開しました(すべてのカメラストリームを中止)

cameraid, aborted
COBC
カメラバウンス イベント ◦


カメラは強制的に再起動されました

cameraid
CZTC
カメラ設定変更イベント ◦


示されたカメラの設定が新しい値に変更されました(データはzlib圧縮されています)

cameraid, userid, flags, command, change
CZTS
カメラ設定変更イベント ◦


カメラ設定が変更されました(データはzlib圧縮されています)

cameraid, sequence, settings
CZDC
カメラ設定変更イベント ◦


カメラの設定が古いものから新しいものに変更されました(データはzlib圧縮されています)

cameraid, userid, flags, command, change
CPRG
カメラパージ イベント ◦


ストレージの制限によりカメラのデータをパージしました

cameraid, day, bytes
CDLT
カメラデータ消失イベント ◦


ストレージの制限により、カメラの保存期間内にデータを削除しました

cameraid, day, bytes
CBWS
カメラ帯域幅サンプルイベント ◦


カメラがクラウドに取り込み/送信したデータ量

cameraid, kbytesondisk, bytesstored, bytesshaped, bytesstreamed, bytesfreed, daysondisk
BBWS
ブリッジ帯域幅サンプルイベント ◦


このブリッジ上のすべてのデバイスが取り込んでクラウドに送信したデータ量に関する統計

cameraid, kbytessize, kbytesavail, bytesstored, bytesshaped, bytesstreamed, bytesfreed
BBTW
ブリッジ帯域幅タグフロー イベント ◦


ブリッジとクラウド間の帯域幅に関する統計

cameraid, ip, bytes_sent, bytes_rcvd, active_write_us, paused_write_us
BUBW
アップロード帯域幅サンプル イベント ◦


クラウドに定期的に送信して帯域幅をテストするためのデータのメトリック(Nミリ秒単位での 'bytessent'

cameraid, bytessent, millisecs
BBOO ブリッジ起動イベント cameraid, booted
NOOP 非操作イベント cameraid
AEAC アカウント作成イベント cameraid, status, new_accountid, source_userid, source_accountid
AEAD アカウント削除イベント cameraid, status, source_userid, source_accountid
AEAH アカウント変更イベント cameraid, status, source_userid, source_accountid, values
AELI アカウント ログイン イベント cameraid, status, source_userid
AELO アカウント ログアウト イベント cameraid, status, source_userid
AEUC ユーザー作成イベント cameraid, status, target_userid, source_userid, source_accountid
AEUD ユーザー削除イベント cameraid, status, target_userid, source_userid, source_accountid
AECC ユーザー設定変更イベント cameraid, status, target_userid, source_userid, source_accountid, values
AEEC レイアウト作成イベント   cameraid, status, source_userid, source_accountid, layoutid
AEED レイアウト削除イベント cameraid, status, source_userid, source_accountid, layoutid
AEEL レイアウト変更イベント cameraid, status, source_userid, source_accountid, layoutid, values
CCCF
Curl失敗イベント ◦


示されたcURLエラーコードにより、ブリッジとカメラ間の通信に失敗しました

cameraid, errcode
ANNT アノテーション イベント cameraid, ns, flags, uuid, seq, op, mpack
NVPT 名称、値表イベント cameraid, ns, key_offset, op, mpack
ITFU インターフェイス更新イベント cameraid, ip, flags, valid, mpack
SCRN 画面接続イベント cameraid, ns, uuid, mpack
AELD ライブ表示イベント cameraid, status, source_userid, deviceid
CCLC
クラウド接続イベント ◦


指定された接続を介してクラウドに接続されたブリッジ

cameraid, src_ip, dest_ip, src_port, dest_port, ctype
CCLD
クラウド切断イベント ◦


ブリッジはクラウドとの接続を失いました

cameraid, src_ip, dest_ip, src_port, dest_port, ctype, reason, seconds
ENES アプリケーション指定イベント開始 cameraid, videoid, eventid, ns
ENEE アプリケーション指定イベント終了 cameraid, eventid, ns
ENEU
アプリケーション指定更新イベントApp-specific update event ◦


アプリケーションイベントのハートビート
(10秒間隔)

cameraid, videoid, eventid, ns
AEPT
PTZ イベント ◦


パン チルト ズーム イベント

cameraid, status, source_userid, deviceid
EPES
PTZ カメラ イベント開始 ◦


PTZ カメラの移動/変更イベントは開始しました

cameraid, videoid, eventid
EPEE
PTZ カメラ イベント終了 ◦


PTZ カメラの移動/変更イベントは終了しました

cameraid, eventid
PTZS
PTZ 状態イベント ◦


特定時点のPTZ状態のスナップショット(移動中のPTZを追跡するため)

cameraid, userid, flags, reason, pan_status, zoom_status, x, y, z
PRSS プレビューストリーム開始イベント
(内部使用のみ)
cameraid, previewid, frame_delay, duration, flags, format, status
PRSE プレビューストリーム終了イベント
(内部使用のみ)
cameraid, previewid, status
PRFU プレビュー アップロード イベント
(内部使用のみ)
cameraid, file_offset, frame_size
AABT カメラ アーカイバ 中断イベント
(内部使用のみ)
cameraid, aborted
ECON カメラ オンライン イベント
(廃止予定)
cameraid
ECOF カメラ オフライン イベント
(廃止予定)
cameraid
CSTS カメラ設定変更イベント
(廃止予定)
cameraid, sequence, settings
CSTC カメラ設定変更イベント
(廃止予定)
cameraid, sequence, settings
CSAT カメラストリーム接続イベント
(廃止予定)
cameraid, stream_format, stream_type
CSDT カメラストリーム切断イベント
(廃止予定)
cameraid, stream_format, stream_type
CSST カメラストリーム統計イベント
(廃止予定)
cameraid, streamtype, total_expected, total_rcvd, delta_expected, delta_rcvd, interval
PRSU プレビューストリーム更新イベント
(廃止予定)
cameraid, previewid, status
VRSU 動画更新イベント
(廃止予定)
cameraid, videoid, format, status

ポーリングの初期化

応答には、2つのセッションCookieと返されたトークン(同一)が含まれます。 GET /poll 要求には、セッションCookieの1つのみを提供する必要があります

要求

curl --cookie "auth_key=[AUTH_KEY]" -X POST -H 'Content-Type: application/json' https://c001.eagleeyenetworks.com/poll -d '{"cameras":{"111st658":{"resource":["event","status"],"event":["VREE","PRFR","CPRG"]}}}'

JSON 要求

{
    "cameras": {
        "100e1e23": {
            "resource": [
                "pre",
                "thumb",
                "status",
                "event"
            ],
            "event": [
              "MRBX"
            ]
        },
        "10097d15": {
            "resource": [
                "pre",
                "thumb",
                "status",
                "event"
            ],
            "event": [
              "MRBX"
            ]
        },
        "<object_id>": {...},
        "<object_id>": {...},
        "<object_id>": {...}
    }
}

HTTP 要求

POST https://login.eagleeyenetworks.com/poll

イベントポーリングの機構は展開が進んでいるため、パラメータ 'cameras' は数多くの変更を受けておりますが、下位互換性のためにそのまま維持されています。デバイス/アカウントとしてこれらを理解する必要があります

パラメータ データ型式 詳細
cameras JSON <object_id> をキーとしたJSON属性(異なるタイプの複数のJSONオブジェクトを含むことができます)

オブジェクトの構造

パラメータ データ型式 詳細
<object_id> JSON 'resource''event' をキーとしたJSON属性

JSONオブジェクトは、どのタイプのエンティティをポーリングするかを指定することによって、ポーリング範囲を絞り込むことを可能にします。タイプには次のものがあります:

パラメータ データ型式 詳細 必須?
resource 配列[文字列] 提供されたデバイス/アカウントから検索する必要があるデータの種類を含む1つ以上の文字列の配列

選択した:pre, thumb, video, status, event
true
event 配列[文字列] イベント Four CC (リソースに 'event' が含まれる場合、ここで指定されたイベントの配列は検索されたイベントの範囲を絞り込みます)を含む1つまたは複数の文字列の配列

JSON 応答

{
    "cameras": {
        "100e1e23": {
            "status": 1441847
        },
        "10097d15": {
            "status": 1441847
        },
        "<object_id>": {...},
        "<object_id>": {...},
        "<object_id>": {...}
    },
    "token": "ooe0eoEAMNsF"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
cameras JSON <object_id> をキーとしたJSON属性(異なるタイプの複数のJSONオブジェクトを含むことができます)
token 文字列 後続のGET /poll 要求に使用されるトークン

応答オブジェクト構造

パラメータ データ型式 詳細
<object_id> JSON JSON属性は resource 型をキーとしています。取得された値は、指定されたリソースの最新のエンティティです

キーの量は、送信されたリクエストの問い合わせに依存します(要求が 'pre''video' を伴う場合、取得されたデータは 'pre''video' 情報のみをカバーします)

指定されたイベントがデバイス/アカウントでトリガーされていない場合は、ポーリングサービスによってリストされません(エラーは報告されません)

返される値は、returned resource types と合致します

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

ポーリング

要求

curl --cookie "auth_key=[AUTH_KEY];ee-poll-ses=[TOKEN]" --request GET https://c001.eagleeyenetworks.com/poll

HTTP 要求

GET https://login.eagleeyenetworks.com/poll

JSON 応答

{
    "cameras": {
        "100e1e23": {
            "pre": "20181121165011.233",
            "event": {
                "MRBX": {
                    "timestamp": "20181121165011.499",
                    "cameraid": "100c299e",
                    "boxes": [
                        {
                            "x": 24575,
                            "y": 29126,
                            "w": 4095,
                            "h": 5825
                        }
                    ]
                },
                "PRFU": {
                    "timestamp": "20181121165011.233",
                    "cameraid": "100c299e",
                    "file_offset": 26311872,
                    "frame_size": 7838
                },
                "PRFR": {
                    "timestamp": "20181121165011.233",
                    "cameraid": "100c299e",
                    "previewid": 1416585600,
                    "file_offset": 26311872,
                    "frame_size": 7830
                }
            }
        },
        "10097d15": {
            "pre": "20181121165011.281",
            "event": {
                "PRFU": {
                    "timestamp": "20181121165011.281",
                    "cameraid": "1002a2a4",
                    "file_offset": 6126297,
                    "frame_size": 4014
                },
                "PRFR": {
                    "timestamp": "20181121165011.281",
                    "cameraid": "1002a2a4",
                    "previewid": 1416585600,
                    "file_offset": 6126297,
                    "frame_size": 4006
                }
            }
        }
    }
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
cameras JSON <object_id> をキーとしたJSON属性(異なるタイプの複数のJSONオブジェクトを含むことができます)

応答オブジェクトの構造

パラメータ データ型式 詳細
<object_id> JSON JSON属性は resource 型をキーとしています。取得された値は、指定されたリソースの最新のエンティティです

キーの量は送信されたPOST要求に依存します(要求が 'pre''video' を伴う場合、取得されたデータは 'pre''video' 情報のみをカバーします)

指定されたイベントがデバイス/アカウントでトリガーされていない場合は、ポーリングサービスによってリストされません(エラーは報告されません)

返される値は、returned resource types に対応します

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が指定されました
401 無効なセッションCookieにより認可されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

WebSocket ポーリング

WebSocketは、クライアントとサーバー間の永続的な接続を提供します。 このアップリンクは、ブロック化されたデータをメッセージとして送受信できる双方向のデータストリームを有効可します。このプロトコルは、単一のTCP接続を介して全二重通信チャネルを提供し、クライアントが応答をサーバーにポーリングすることなくイベントドリブンの応答を受信できるようにします(実質的にデータトラフィックを減少させます)

要求 JSON

{
    "cameras": {
        "100e1e23": {
            "resource": [
                "pre",
                "thumb",
                "status",
                "event"
            ],
            "event": [
              "MRBX"
            ]
        },
        "10097d15": {
            "resource": [
                "pre",
                "thumb",
                "status",
                "event"
            ],
            "event": [
              "MRBX"
            ]
        },
        "<object_id>": {...},
        "<object_id>": {...},
        "<object_id>": {...}
    }
}

クライアント ハンドシェイク要求

GET /api/v2/Device/00001007/Events HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: c000.eagleeyenetworks.com
Origin: http://c000.eagleeyenetworks.com
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Cookie: auth_key=[AUTH_KEY]

WebSocket プロトコルは2つの部分に分かれます:

WebSocketリクエストURLは、次のように構成されています:
wss:// c000. eagleeyenetworks.com /api/v2 /Device /00001007 /Events
セキュア
websocket
プロトコル
ブランド
サブドメイン
サーバー API バージョン リソース アカウント ID 'イベント’ 接尾辞

WebSocket URLは、WSSを使用するか、HTTPSと同等の安全な接続にWSSを使用します

パラメータ データ形式 詳細 必須?
A 文字列 'auth_key' クッキーを置き換えるために使われます false

サーバー ハンドシェイク応答

HTTP/1.1 101 Switching Protocols
Server: openresty
Date: Wed, 08 Mar 2018 14:01:06 GMT
Connection: upgrade
upgrade: websocket
sec-websocket-accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
set-cookie: ee-ws-poll-ses=kjxZXVrDyIkK
x-een-lb-tried-proxies: 209.94.238.21:80

ハンドシェイクの完了をサーバーが応答します。 成功したサーバーは応答の後にデータ転送を続けます

エラー状態コード

HTTP 状態コード 詳細
400 ヘッダーが理解不能か、値が正しくありません
101 プロトコルを切り替えました

データ交換

クライアントは、JSON形式の文字列のオブジェクトを送信することによってハンドシェイクが成功した後、サーバーと通信します。message の送信は、適切なWebSocket send 関数を呼び出すことによってクライアントによってトリガーされています(このメソッドはクライアント環境に依存します)

クライアントは、JSON経由でどのデバイスからどのような種類のデータをポーリングするかを指定する必要があります(Initialize Poll, Resource TypeEvent Objects を参照)

WebSocketはイベント駆動型APIです。メッセージが受信されると、メッセージイベントが onmessage 関数に渡され、メッセージが受信され、解析されます

接続は close 関数を使っていつでも切断することができます

WebSocketポーリングは、Errors セクションに基づいて発生した個々の問題ごとに message 応答エラーコードをさらに返します

メッセージ エラー状態コード

状態コード 詳細
400 不正なリソース
401 アクセス拒否
412 認証が失われました
200 OK

レイアウト

概要

レイアウトはペインを含み、それらは画面の表示を行うためのカメラのグループを整理します。レイアウトはアカウントとアカウント ユーザーがレイアウトに対して与えられた 表示/書き込み/共有 権限に関連付けられます。ユーザーはカメラに対してアクセスできない場合であっても、共有されたレイアウトに含まれる全てのカメラに対してアクセスすることができます

レイアウトへのアクセスに関する重要な情報:

ペインの並び順は、APIによって返される LayoutJsonPane 配列内の順序によって決定されます。それぞれのペインは1, 2または3のサイズを持ちます。サイズ1は最小で、レイアウト グリッド内で 1x1 の大きさを専有します。サイズ3は最大で、レイアウト グリッド内で 3x3 の大きさを専有します。もしグリッドがペインにフィットする十分な列を持っていない場合、ペインのサイズはグリッドがフィットするまで縮小されます。

Web及びモバイルでのレイアウト描画は以下のようになります: Example 1 Example 2

レイアウト モデル

レイアウト モデル

{
    "id": "0b58ec7a-61e4-11e3-8f7d-523445989f37",
    "name": "Everything",
    "types": [
        "mobile"
    ],
    "permissions": "SWRD",
    "current_recording_key": null,
    "shares": [
        [
            "ca01ce6d",
            "SWRD"
        ],
        [
            "ca0c7d2c",
            "R"
        ],
        [...],
        [...],
        [...],
        [
            "ca05e8c2",
            "R"
        ]
    ],
    "configuration": {
        "panes": [
            {
                "cameras": [
                    "100ace90"
                ],
                "type": "preview",
                "pane_id": 0,
                "name": "",
                "size": 1
            },
            {
                "cameras": [
                    "10045dd6"
                ],
                "type": "preview",
                "pane_id": 0,
                "name": "",
                "size": 1
            },
            {...},
            {...},
            {...},
            {
                "cameras": [
                    "100891b7"
                ],
                "type": "preview",
                "pane_id": 0,
                "name": "",
                "size": 1
            }
        ],
        "settings": {
            "camera_row_limit": 3,
            "camera_name": true,
            "camera_aspect_ratio": 0.5625,
            "camera_border": false
        }
    }
}

レイアウト (属性)

プロパティ データ形式 詳細 編集可能 必須?
id 文字列 レイアウトの一意の識別子


name 文字列 レイアウトの名前
types 配列[文字列] レイアウトのターゲットの指定。複数の値が許可されます
configuration JSON レイアウト構成のJSONオブジェクト
json 文字列 JSON符号化された文字列。 ‘configuration’ フィールドと同じ内容です。 廃止予定
permissions 文字列 ゼロ個以上の文字列。各文字は現在のユーザがレイアウトに対して持っている権限を定義します

権限は以下のものを含みます:
'R' - ユーザーはこのレイアウトを表示できます
'W' - ユーザーはこのレイアウトを変更できます
'D' - ユーザーはこのレイアウトを削除できます
'S' - ユーザーはこのレイアウトを共有できます
current_recording_key 文字列 action/recordnowサービスを使用して開始された、レイアウト内で現在録画されているカメラを表す文字列キー
shares 配列[配列[文字列]] このレイアウトで共有を有効にしているユーザーアカウントごとに1つの、配列の配列です。各文字列にはカンマで区切られた2つのフィールドがあります。 最初のフィールドはユーザーIDで、2番目のフィールドはユーザーのアクセス許可です。'account' はレイアウトがアカウントのすべてのユーザーと共有されることを指定します。2番目のフィールドには、アカウント内のユーザーのアクセス許可が含まれています

例:
['1005f2ed','RWDS'] = ユーザーはこのレイアウトを表示、変更、 削除、共有が可能です
['1005f2ed','RW'] = このレイアウトの表示、変更が可能です
['1005f2ed', 'R'] = アカウントの全ユーザがこのレイアウトを表示できます

/layout GETを発行するユーザの権限はこの配列に含まれていません

レイアウト - 構成

パラメータ データ型式 詳細
panes 配列[JSON] JSONオブジェクトの配列。 各オブジェクトは、pane structure として表されます
settings JSON レイアウト設定のJSONオブジェクト

レイアウト - 構成 - ペイン

パラメータ データ型式 詳細
name 文字列 レイアウト ペイン名
type 文字列 レイアウト形式:
'プレビュー(preview)' - カメラからライブプレビュー画像を表示します
'カルーセル(carousel)' - プレビュー画像間を巡回するモードで、カメラのIDは遅延配列の整数とともにカメラ配列に含まれる必要があります。遅延はミリ秒の整数値で、次のカメラに切り替えるまでにカメラが表示される時間も長くなります。カメラが1台しかない 'カルーセル' はプレビューと同じです
'クリック(click)' - レイアウト内の他のカメラのクリックに応答します
'モーション(motion)' - レイアウト内の他のカメラのモーションに反応します
'マップ(map)' - カメラアイコンが配置された静的マップ
'url' - ペイン内のURLの内容をフレームとして表示します
pane_id 整数 レイアウトマネージャから作成されたときにペインに与えられたID
size 整数 画像の表示サイズ:
1 - 小
2 - 中
3 - 大
cameras 配列[文字列] カメラIDの配列 ('カルーセル(carousel)' の場合は、対応する '遅延(delay)' プロパティの遅延設定を使用してカメラIDを循環させます)

レイアウト - 構成 - 設定

パラメータ データ型式 詳細
camera_border ブール カメラペインの枠線の表示
camera_name ブール カメラ名の表示
camera_aspect_ratio 浮動小数点 画像のアスペクト比:
0.5625 - 16x9
0.75 - 4x3
camera_row_limit 整数 1行に表示するカメラの最大数:
3 - 1行あたり 3 カメラ
4 - 1行あたり 4 カメラ
5 - 1行あたり 5 カメラ
custom_id 文字列

レイアウトの取得

IDによってレイアウト オブジェクトを返します

要求

curl -G https://login.eagleeyenetworks.com/g/layout -d "A=[AUTH_KEY]&id=[LAYOUT_ID]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/layout

パラメータ データ型式 詳細 必須?
id 文字列 レイアウト ID true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 レイアウト ID が見つかりませんでした
200 要求は成功しました

レイアウトの作成

新規レイアウトを作成します

要求

curl -X PUT https://login.eagleeyenetworks.com/g/layout -d '{"name": "[NAME]", "json":"{\"panes\":[ {} ] }", "types":[""]}' -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/layout

パラメータ データ型式 詳細 必須?
name 文字列 レイアウト名 true
types 配列[文字列] レイアウトのターゲットの指定。複数の値が許可されます true
configuration json レイアウト設定を定義するJSONオブジェクト true
shares 配列[配列] ネストされた配列で、このレイアウトで共有が有効になっているアカウントユーザーあたり1つの配列で表されます。各文字列には、カンマで区切られた2つのフィールドが含まれています。最初のフィールドはユーザーIDで、2番目のフィールドはユーザーのアクセス許可のリストです。2つの特別なユーザーIDが存在します: 'account’ は、レイアウトがアカウントのすべてのユーザーと共有されることを指定します。2番目のフィールドには、アカウント内のユーザーのアクセス許可が含まれています。例:
['1005f2ed', 'RWDS’] = ユーザーは、このレイアウトを表示、変更、削除、または共有できます。
['1005f2ed’, 'RW’] = ユーザーはこのレイアウトを表示および変更できます。
['1005f2ed''R’] = アカウント内のすべてのユーザーがレイアウトを表示できます。

GET /layout を発行したユーザーの権限は、この配列には含まれていません。

JSON 応答

{
    "id": "80ca9ee0-4f28-11e4-81bf-523445989f37"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 レイアウトの一意な識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

レイアウトの更新

レイアウト構成を更新します

Request TODO

HTTP 要求

POST https://login/eagleeyenetworks.com/g/layout

パラメータ データ型式 詳細 必須?
id 文字列 レイアウトの一意の識別子 true
name 文字列 レイアウトの名前
types 配列[文字列] レイアウトのターゲットの指定。複数の値が許可されます
configuration json レイアウト設定を定義するJSONオブジェクト
shares 配列[配列] ネストされた配列で、このレイアウトで共有が有効になっているアカウントユーザーあたり1つの配列で表されます。各文字列には、カンマで区切られた2つのフィールドが含まれています。最初のフィールドはユーザーIDで、2番目のフィールドはユーザーのアクセス許可のリストです。2つの特別なユーザーIDが存在します: 'account’ は、レイアウトがアカウントのすべてのユーザーと共有されることを指定します。2番目のフィールドには、アカウント内のユーザーのアクセス許可が含まれています。例:
['1005f2ed', 'RWDS’] = ユーザーは、このレイアウトを表示、変更、削除、または共有できます。
['1005f2ed’, 'RW’] = ユーザーはこのレイアウトを表示および変更できます。
['1005f2ed''R’] = アカウント内のすべてのユーザーがレイアウトを表示できます。

GET /layout を発行したユーザーの権限は、この配列には含まれていません。

JSON 応答

{
    "id": "80ca9ee0-4f28-11e4-81bf-523445989f37"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 レイアウトの一意の識別子

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 レイアウト ID が見つかりませんでした
200 要求は成功しました

レイアウトの削除

レイアウトを削除します

要求

curl -X DELETE https://login.eagleeyenetworks.com/g/layout -d "id=[LAYOUT_ID]" -G -H "content-type: application/json" -H "Authentication: [API_KEY]:" --cookie "auth_key=[AUTH_KEY]"

HTTP要求

DELETE https://login.eagleeyenetworks.com/g/layout

パラメータ データ型式 詳細 必須?
id 文字列 レイアウト ID true

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限がないため拒否されました
404 IDに合致するレイアウトが見つかりません
200 要求は成功しました

レイアウト リストの取得

ユーザーが使用できるレイアウトを表す各サブ配列を持つ配列の配列を返します

要求

curl --request GET https://login.eagleeyenetworks.com/g/layout/list --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/layout/list

JSON 応答

[
    [
        "0b58ec7a-61e4-11e3-8f7d-523445989f37",
        "Everything",
        [
            "mobile"
        ],
        "SWRD"
    ],
    [
        "75c03026-719a-11e3-afba-ca8312ea370c",
        "Glenn",
        [
            "mobile"
        ],
        "SWRD"
    ],
    [...],
    [...],
    [...]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ形式 詳細
0 id 文字列 レイアウトの一意の識別子
1 name 文字列 レイアウトの名前
2 types 配列[文字列 ] レイアウトのターゲットの指定。複数の値が許可されます
3 permissions 文字列 ゼロ個以上の文字列。 各文字は、現在のユーザーがレイアウトに対して持つ権限を定義します。 権限は次のとおりです:
'R’ - ユーザーはこのレイアウトを表示できます。
'W’ - ユーザーはこのレイアウトを変更できます。
’D’ - ユーザーはこのレイアウトを削除できます。
’S’ - ユーザーはこのレイアウトを共有できます

エラー状態コード

HTTP 状態コード 詳細
400 予期せぬまたは識別不能な引数が与えられました
401 無効なセッションクッキーにより認証されませんでした
403 ユーザーに必要な権限がないため拒否されました
200 要求は成功しました

利用規約

概要

以下のAPIエンドポイントは、利用規約 の表示と受諾処理を簡易化します。Eagle Eye Networksは自身の利用規約の確認を ユーザー用の利用規約の取得 を通じて行っております。加えて、リセラーは独自の 利用規約アカウント用の利用規約の取得 を通じて行うことによって、Eagle Eye Networkの規約と同様に表示することが可能です。リセラーは自身の規約をマスターアカウントレベルに割り当てることも、サブアカウントレベルでそれぞれのサブアカウントの独自の規約として割り当てることも可能です。

基本的な動作プロセスは以下のようになります:

  1. Resellers create their own terms with the Create Terms of Service for Account
  2. Client UI will display terms if not accepted from a Get Terms of Service for User
  3. Client UI will accept the terms from a Accept Terms of Service for User

ユーザー用の利用規約の取得

This service allows to push important Terms of Service. The client software must call GET to see whether the user needs to agree to any new Terms of Service

If the user has a 'is_compliant=0', the client software should popup a message box containing the Terms of Service
(It is preferred to have this as a single combined message box)

If the user agrees to the terms, a PUT call should be placed containing an array of all the Terms of Service

要求

curl -X GET https://login.eagleeyenetworks.com/g/user/terms?id=cafe81f5 --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/user/terms

パラメータ データ型式 詳細
id 文字列 User ID

JSON 応答

[
    [
        "cafe81f5",
        "Terms_and_Conditions",
        "/een-terms-of-service/00013377/Terms_and_Conditions~2~20180523094504.txt",
        "2",
        0
    ]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ型式 詳細
0 user_id 文字列 Unique identifier of the user
1 title 文字列 Title of the term of service
2 url 文字列 URL of a file with the text of the terms of service
3 version 文字列 Version string for the title of the terms of service
4 is_compliant 整数 If 0, the user needs to accept the terms of service

エラー状態コード

HTTP 状態コード データ型式
400 Unexpected or non-identifiable arguments are supplied
406 Information supplied could not be verified
402 Account is suspended
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

ユーザー用利用規約の受諾

このサービスは利用規約の承認を記録するために使用されます

要求

curl -X PUT https://login.eagleeyenetworks.com/g/user/terms -d '{"urls": ["/een-terms-of-service/00013377/Test_Terms_of_Service~1~20180523100004.txt", "/een-terms-of-service/00000001/EEN_Terms_of_Service~1.2~20180626191610.txt"]}' -H "content-type: application/json" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/user/terms

パラメータ データ型式 詳細 必須?
urls 配列[文字列] Array of urls to be accepted true

JSON 応答

{
    "id": "cafe81f5"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
id 文字列 User ID

Error 状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
402 Account is suspended
404 Notice title was not found
406 Information supplied could not be verified
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

アカウント用利用規約の作成

Master accounts (Resellers) may require their own Terms of Service. This service allows to submit the text of customized Terms of Service

New terms can be submitted with a PUT command. GET can be done to verify the state of the terms. PUT will retire Terms of Service of the same title and account

Notices can be stored in the sub-account or the parent account of the user

Resellers are limited to 5 Terms of Service titles and each title will only have one active version

要求

curl -X PUT https://login.eagleeyenetworks.com/g/account/terms -d '{"is_admin_required": 1, "is_user_required": 1, "title": "Test Terms of Service", "text": "This is a test terms and service from resellers", "version": "1", "id": "00013377"}' -H "content-type: application/json" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/g/account/terms

パラメータ データ型式 詳細 必須? デフォルト 制限
text 文字列 Text of the term of service to accept Use single LF character for line break
id 文字列 Unique ID of the account requester’s account
title 文字列 Title of the term of service to accept ‘Terms and Conditions’ 32 bytes of alpha numeric characters
version 文字列 Version of the title, which should be unique auto incrementing number 32 bytes of alpha numeric characters
is_admin_required 整数 Whether administrators have to accept (1) or not (0) not updating
is_user_required 整数 Whether users have to accept (1) or not (0) not updating
timestamp 文字列 Date the term of service goes into effect now

JSON 応答

{
    "status": "active",
    "is_admin_required": 1,
    "is_user_required": 1,
    "title": "Test_Terms_of_Service",
    "url": "/een-terms-of-service/00013377/Test_Terms_of_Service~1~20180523100004.txt",
    "timestamp": "20180523100004",
    "version": "1",
    "user": "cafe81f5",
    "account_id": "00013377"
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
title 文字列 Title of the notice
version 文字列 Version number for the notice title, a larger version number will retire other versions
is_admin_required 整数 Whether administrators have to accept (1) or not (0)
is_user_required 整数 Whether users have to accept (1) or not (0)
timestamp 文字列 Date of the term of service
url 文字列 URL of the file containing the text for the notice
status 文字列 Status of the term of service ('active', 'retired')

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
402 Account is suspended
404 Terms Title was not found
406 Information supplied could not be verified
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

アカウント用利用規約の更新

アカウントの利用規約を更新します

ユーザーは同じバージョンの条件を再度受け入れる必要はありませんが、PUTリクエストを使用してもう一回受諾することを強制することができます

要求

curl -X POST https://login.eagleeyenetworks.com/g/account/terms -d '{"is_admin_required": 0, "is_user_required": 1, "title": "Test Terms of Service", "text": "This is a test terms and service from resellers", "version": "2", "id": "00013377"}' -H "content-type: application/json" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

POST https://login.eagleeyenetworks.com/g/account/terms

パラメータ データ型式 詳細 必須? デフォルト 制限
text 文字列 Text of the term of service to accept use single LF character for line break
id 文字列 Unique ID of the account requester’s account
title 文字列 Title of the term of service to accept 'Terms and Conditions’ 32 bytes of alpha numeric characters
version 文字列 Version of the title, which should be unique auto incrementing number 32 bytes of alpha numeric characters
is_admin_required 整数 Whether administrators have to accept (1) or not (0) not updating
is_user_required 整数 Whether users have to accept (1) or not (0) not updating
timestamp 文字列 Date the term of service goes into effect now

JSON 応答

{
    "status": "active",
    "is_admin_required": 0,
    "is_user_required": 1,
    "title": "Test_Terms_of_Service",
    "url": "/een-terms-of-service/00013377/Test_Terms_of_Service~1~20180523100004.txt",
    "timestamp": "20180523100004",
    "version": "2",
    "user": "cafe81f5",
    "account_id": "00013377"
}

HTTP 応答 (JSON 属性)

パラメータ データ形式 詳細
title 文字列 Title of the notice
version 文字列 Version number for the notice title, a larger version number will retire other versions
is_admin_required 整数 Whether administrators have to accept (1) or not (0)
is_user_required 整数 Whether users have to accept (1) or not (0)
timestamp 文字列 Date of the term of service
url 文字列 URL of the file containing the text for the notice
status 文字列 Status of the term of service ('active', 'retired')

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
402 Account is suspended
404 Notice title was not found
406 Information supplied could not be verified
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

アカウント用利用規約の削除

アカウントの利用規約を削除します

curl -X DELETE https://login.eagleeyenetworks.com/g/account/terms?id=00013377 --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

DELETE https://login.eagleeyenetworks.com/g/account/terms

パラメータ データ型式 詳細 必須?
id 文字列 Account ID true
title 文字列 Title of the term of service

JSON 応答

{
    "00013377": {
        "EEN_Terms_of_Service": {
            "1.2": "20180626193818.274"
        },
        "Test_Terms_of_Service": {
            "2": "20180626193626.502"
        }
    }
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
account_id 文字列 Unique ID of the account that is requesting this term of service
account_name 文字列 Name of the account that is requesting this term of service
title 文字列 Title of the term of service
version 文字列 Version number for the term title
is_admin_required 整数 Whether administrators have to accept (1) or not (0)
is_user_required 整数 Whether users have to accept (1) or not (0)
timestamp 文字列 Date of the term of service
url 文字列 URL of the file containing the text for the term of service
status 文字列 This field is no longer being used (DEPRECATED)

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
402 Account is suspended
404 Notice title was not found
406 Information supplied could not be verified
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

アカウント用の利用規約の取得

アカウントの利用規約を返します

要求

curl -X GET https://login.eagleeyenetworks.com/g/account/terms?id=00013377 --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/account/terms

パラメータ データ型式 詳細 必須?
id 文字列 Account ID true

JSON 応答

[
    [
        "00013377",
        "UNIT_TEST_SUB_ACCOUNT",
        "Test_Terms_of_Service2",
        "2",
        1,
        0,
        "20180523094136",
        "/een-terms-of-service/00013377/Terms_and_Conditions~2~20170523094136.txt",
        "active"
    ],
    [
        "00013377",
        "UNIT_TEST_SUB_ACCOUNT",
        "Test_Terms_of_Service",
        "1",
        1,
        1,
        "20180222115243",
        "/een-terms-of-service/00013377/Terms_and_Conditions~1~20170222115243.txt",
        "retired"
    ],
    [
        "00013377",
        "UNIT_TEST_SUB_ACCOUNT",
        "Test_Terms_of_Service",
        "2",
        0,
        1,
        "20180523094504",
        "/een-terms-of-service/00013377/Terms_and_Conditions~2~20170523094504.txt",
        "active"
    ],
    [
        "00000001",
        "UNIT_TEST_SUB_ACCOUNT",
        "EEN_Terms_of_Service",
        "1.2",
        1,
        1,
        "20180426191610",
        "/een-terms-of-service/00000001/Terms_and_Conditions~1.2~20170523094504.txt",
        "active"
    ]
]

HTTP 応答 (属性の配列)

配列インデックス 属性 データ型式 詳細
0 account_id string Unique ID of the account that is requesting this notice
1 account_name string Name of the account that is requesting this notice
2 title string Title of the notice
3 version string Version number for the notice title, a larger version number will retire other versions
4 is_admin_required int Whether administrators have to accept (1) or not (0)
5 is_user_required int Whether users have to accept (1) or not (0)
6 timestamp string Date of the term of service
7 url string URL of the file containing the text for the notice
8 status string Status of the term of service ('active', 'retired')

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
406 Information supplied could not be verified
402 Account is suspended
460 Account is inactive
409 Account has already been activated
412 User is disabled
200 User has been authorized for access to the realm

アクション

概要

このサービスは割り当てられたデバイスで実行可能ないくつかのマクロ アクションを定義します。これらは便利な機能です。ここで提供されている同様の機能は、個々の設定呼び出しでも実現可能です。多くのアクションは現在または未来の時点をスケジュールすることが可能です。

与えられたマクロの特性とデバイスの数、実現可能な操作によって、引数が正しければ、サービスは成功のステータスコードを返します。アプリケーションはデバイスの基礎によるデバイスのアクションが成功または失敗するかをモニターして、対応をする必要があります。

全てのカメラをオンにする

実行者のアカウント内のすべてのカメラをオンにするために使用します。実行者はアカウントのスーパーユーザーでなければなりません

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/action/allon

HTTP 要求

POST https://login.eagleeyenetworks.com/g/action/allon

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
202 要求は成功しました

全てのカメラをオフにする

実行ユーザのアカウント内のすべてのカメラのオフにするために使用されます。実行者はアカウントのスーパーユーザーでなければなりません

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/action/alloff

HTTP 要求

POST https://login.eagleeyenetworks.com/g/action/alloff

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
202 要求は成功しました

録画を開始

すべてのカメラ、特定のレイアウトのカメラ、または1台のカメラの録画をオンにするときに使用します。この結果、影響を受けるカメラでは、すべての「稼働時間」のスケジュールが削除され、「camera_on」は1(オン)に設定され、「video_capture_mode」は「Always」に設定されます

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/action/recordnow

HTTP 要求

POST https://login.eagleeyenetworks.com/g/action/recordnow

パラメータ データ形式 詳細
device_id string ID of the camera to record. If this parameter and the 'layout_id' parameter are omitted, all cameras with write access available to the requesting user will be used
layout_id string ID of the layout for which cameras will be set to record. All cameras in the layout will be affected. If this parameter and the 'device_id' parameter are omitted, all cameras with write access available to the requesting user will be used
recording_key string A key used to tag this recording. Can be used to retrieve this recording info later using the GET 'recording' service

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
202 要求は成功しました

録画を停止

すべてのカメラ、特定のレイアウトのカメラ、または1台のカメラの録画をオフにするときに使用します。この結果、影響を受けるカメラでは、すべての「operating_hours」スケジュールが削除され、「camera_on」は0(オフ)に設定され、「video_capture_mode」は「event」(デフォルト)に設定されます

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/action/recordoff

HTTP 要求

POST https://login.eagleeyenetworks.com/g/action/recordoff

パラメータ データ形式 詳細
device_id 文字列 ID of the camera to turn off recording for. If this parameter and the 'layout_id' parameter are omitted, all cameras with write access available to the requesting user will be used
layout_id 文字列 ID of the layout for which cameras will have recording turned off. All cameras in the layout will be affected. If this parameter and the 'device_id' parameter are omitted, all cameras with write access available to the requesting user will be used

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
202 要求は成功しました

フィードバック

概要

このサービスはユーザーによるサポートへのフィードバックを許可します

フィードバックの送信

サポートにフィードバックを送信します

要求

curl --cookie "auth_key=[AUTH_KEY]" --request POST https://login.eagleeyenetworks.com/g/feedback --data "subject=[SUBJECT]&message=[MESSAGE]"

HTTP Request

POST https://login.eagleeyenetworks.com/g/feedback

パラメータ データ型式 詳細 必須?
subject string Subject of the feedback true
message string Feedback message true

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
202 Request succeeded

メトリック

概要

このサービスはシステムからクエリ可能なメトリクスを定義します

カメラの帯域幅

特定のカメラデバイスの帯域幅の使用量をクエリするために使用されます

要求

curl -G https://login.eagleeyenetworks.com/g/metric/camerabandwidth -d "A=[AUTH_KEY]&id=[CAMERA_ID]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/metric/camerabandwidth

パラメータ データ型式 詳細 必須?
id 文字列 Camera ID true
start_timestamp 文字列 Start timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN. Defaults to 7 days ago
end_timestamp 文字列 End timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN. Defaults to now
group_by 文字列, 選択リスト Hour or day indicating how the results should be grouped

選択リスト: day, hour, minute
motion_interval 整数 Motion Interval used for Motion Activity metric, in milliseconds. Defaults to 15000
metrics 文字列, 選択リスト String delimited list used to filter which metrics get returned. Setting this parameter to 'core,motion' will return data only for core and motion

選択リスト: core, packets, motion

JSON 応答

{
    "core": [
        [
            "20181002190000.000",
            0.0,
            0.0,
            215910545.0,
            76733036.0,
            32049659.0,
            52716510.0
        ],
        [
            "20181002200000.000",
            0.0,
            0.0,
            252051927.0,
            164214711.0,
            36128066.0,
            223484133.0
        ],
        [...],
        [...],
        [...],
        [
            "20181009190000.000",
            0.0,
            0.0,
            41425890.0,
            10373660.0,
            5029677.0,
            78599812.0
        ]
    ],
    "packets": [
        [
            "20181002190000.000",
            0.00183
        ],
        [
            "20181002200000.000",
            0.0018439999999999999
        ],
        [...],
        [...],
        [...],
        [
            "20181009190000.000",
            0.0
        ]
    ],
    "motion": []
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
core 配列[CameraCore] Array of core metrics
packets 配列[CameraPackets] Array of packet metrics
motion 配列[CameraMotion] Array of motion metrics

CameraCore JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 浮動小数点 Average kilobytes on disk
2 浮動小数点 Average days on disk
3 浮動小数点 Bytes stored
4 浮動小数点 Bytes shaped
5 浮動小数点 Bytes streamed
6 浮動小数点 Bytes freed

CameraPackets JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 浮動小数点 Packet loss percentage (decimal)

CameraMotion JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 整数 Motion activity value

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
404 Metrics not found
200 Request succeeded

ブリッジの帯域幅

特定のブリッジ デバイスの帯域幅の使用量をクエリするために使用されます

要求

curl -G https://login.eagleeyenetworks.com/g/metric/bridgebandwidth -d "A=[AUTH_KEY]&id=[BRIDGE_ID]"

HTTP 要求

GET https://login.eagleeyenetworks.com/g/metric/bridgebandwidth

パラメータ データ型式 詳細 必須?
id 文字列 Bridge ID true
start_timestamp 文字列 Start timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN. Defaults to 7 days ago
end_timestamp 文字列 End timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN. Defaults to now
group_by 文字列, 選択リスト Hour or day indicating how the results should be grouped

enum: day, hour, minute

JSON 応答

{
    "core": [
        [
            "20181002170000.000",
            711610368.0,
            673860608.0,
            21533380.0,
            10299.0,
            10064282.0,
            9903.0
        ],
        [
            "20181002180000.000",
            711610368.0,
            673802922.66666698,
            139693604.0,
            16579176.0,
            30849223.0,
            70446106.0
        ],
        [...],
        [...],
        [...],
        [
            "20181009170000.000",
            711610368.0,
            674052608.0,
            20663486.0,
            8637204.0,
            18879693.0,
            19383808.0
        ]
    ],
    "bandwidth": [
        [
            "20181002180000.000",
            253117.37089200001
        ],
        [
            "20181002220000.000",
            240255.52353499999
        ],
        [...],
        [...],
        [...],
        [
            "20181009150000.000",
            232692.09302299999
        ]
    ],
    "storage": [
        [
            "20181002170000.000",
            21523477
        ],
        [
            "20181002180000.000",
            69247498
        ],
        [...],
        [...],
        [...],
        [
            "20181009170000.000",
            1279678
        ]
    ]
}

HTTP 応答 (JSON属性)

パラメータ データ型式 詳細
core 配列[BridgeCore] Array of core metrics
bandwith 配列[BridgeBandwidth] Array of bandwidth metrics
storage 配列[BridgeStorage] Array of storage metrics

BridgeCore JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 浮動小数点 Average kilobytes on disk
2 浮動小数点 Average days on disk
3 浮動小数点 Bytes stored
4 浮動小数点 Bytes shaped
5 浮動小数点 Bytes streamed
6 浮動小数点 Bytes freed

BridgeBandwidth JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 浮動小数点 Bytes per second

BridgeStorage JSON 属性の配列

インデックス データ型式 詳細
0 文字列 EEN Timestamp: YYYYMMDDHHMMSS.NNN
1 浮動小数点 Bytes difference

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
404 Metrics not found
200 Request succeeded

PNGスパン

概要

このサービスはサポート メトリック可視化機能をネイティブPNGスパンとして描画します。スパンでは、指定したスパンがアクティブな場合は前景色で、非アクティブな場合には背景色で画像を作成します。スパンは最低でも1つ以上のピクセスで描画され、尺度とは独立し、スパンは他のものと重なることもあります。eタグでは、アクティブなイベントごとに1つのピクセルで描画されますが、スパンと共に描画される場合には重なることがあります。

応答ヘッダ

content-location: resource actually rendered. absolute start/end ts and either table/etag depending on whether an index was used

議論

The PNG span is a very efficient mechanism for visualizing where metrics and spans are active. Scale the image vertically as needed. PNG are extremely compact - a day of spans will be a few hundred bytes

Tile the PNGs for fast, infinite scrolling. Render a width/timespan that represents a rational chunk of the current screen - say 4 hours in a day view. Fill the screen with tiles, fetch offscreen at the same size in preparation to scroll. Change origin of each entity to accomplish fast smooth scrolling. Fetch successive offscreen buffers as they come on screen

Hit detection (for rollover) can be done in a browser by rendering opaque colors and reading pixels values from a one pixel high offscreen image. If an active pixel is detected, fetch the window of events around the timestamp estimate (since the pixel resolution is usually much less than the ms resolution needed for a timestamp) and use the response to determine what metric/span to display (i.e. the closest one)

PNG 形式

PNG スパンの取得

PNG images can be retrieved for supporting metric visualization. PNG types include:

要求

curl -G https://login.eagleeyenetworks.com/pngspan/span.png -d "start_timestamp=[START_TIMESTAMP]&end_timestamp=[END_TIMESTAMP]&width=[WIDTH]&id=[CAMERA_ID]&foreground_color=[FOREGROUND_COLOR]&background_color=[BACKGROUND_COLOR]&table=[TABLE]&A=[AUTH_KEY]"

HTTP 要求

GET https://login.eagleeyenetworks.com/pngspan/{png_type}.png

パラメータ データ型式 詳細 必須?
start_timestamp 文字列 Start Timestamp in EEN format: YYYYMMDDHHMMSS.NNN true
end_timestamp 文字列 End Timestamp in EEN format: YYYYMMDDHHMMSS.NNN true
width 整数 Width in pixels of resulting PNG. Must be an integer greater than 0 true
id 文字列 カメラ ID true
foreground_color 文字列 Color of foreground (active). If both fg and bg have 0 for alpha, assumed fully opaque (0xff). 32 bit ARGB color true
background_color 文字列 Color of background (inactive). 32 bit ARGB color true
table 文字列, 選択リスト If provided, specifies name of table to be rendered. Required for type 'span' and 'event'

選択リスト: stream, onoff, video, register
etag 文字列 Identifies etag to be rendered, using the 4 character string identifier (Four CC). Will utilize matching event tables where possible. Ignored for type 'span' and 'event'
flval 文字列 Identified value of the filter field from the starting etag. Only applicable for type 'span'
flname 文字列 Name of field within span start etag to match to flval. Interesting fields are roiid in roim table and videoid for video. Only applicable for type 'span'
flflags 文字列 Limits span rendering to spans with the flag asserted. ALERTS is asserted for roim and motion spans when an alert is active
HTTP 状態コード 詳細
401 Unauthorized due to invalid session
404 Not found if camera, etag or table cannot be found
408 Required arguments are missing or invalid
500 Problem occurred during data processing or rendering
200 Request succeeded

録画

概要

このサービスは、'action/recordnow''action/recordoff' エンドポイントを使用して開始/終了された録画に対して、録画情報の取得と更新を行います。

録画モデル

録画モデル 記述予定

録画 (属性)

録画オブジェクトの取得

recording_key によって録画オブジェクトを返します

Request 記述予定

HTTP 要求

GET https://login.eagleeyenetworks.com/g/recording

パラメータ データ型式 詳細 必須?
recording_key string Recording key true

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
200 Request succeeded

録画オブジェクトの更新

録画の更新

要求 記述予定

HTTP 要求

POST https://login.eagleeyenetworks.com/g/recording

パラメータ データ型式 詳細 必須?
recording_key string Unique identifier (within an account) of a recording true
meta object Meta data. This is meant to be a generic object that can store any data that is needed, so the properties are not predefined

JSON 応答 記述予定

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
200 Request succeeded

アノテーション(注釈)

概要

アノテーションサービスはカメラやビデオについての付加情報データをイベントストリームに追加することを可能にします。

アノテーションの作成

特定のタイムスタンプとデータ記述を使用して、デバイス用にアノテーションを作成します

要求

curl -X PUT "https://login.eagleeyenetworks.com/annt/set?c=[ID]&ts=[TIMESTAMP]&ns=[NAMESPACE]" -d '{"data": "[ANNOTATION_DATA]"}' -H "content-type: application/json" --cookie "auth_key=[AUTH_KEY]"

HTTP 要求

PUT https://login.eagleeyenetworks.com/annt/set

パラメータ データ形式 詳細 必須
c 文字列 ID of the device the annotation should be associated with
ns 整数 The numerical namespace value assigned by Eagle Eye Networks
<data> JSON Json object representing the data to be used as the annotation content (can include HTML elements)
ts 文字列 Timestamp associated with the annotation (optional - if left out the system will automatically provide a timestamp)

JSON応答

{
    "uuid": "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
    "cameraid": "1000f60d",
    "ts": "20180526095435.831",
    "ns": 11
}

HTTP 応答 (JSON属性)

パラメータ データ形式 詳細
uuid 文字列 Unique identifier of the annotation
cameraid 文字列 Unique identifier of the device
ts 文字列 Timestamp associated with the annotation
ns 文字列 Namespace associated with the annotation

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
200 要求は成功しました

アノテーションの取得

ID/UUIDにてアノテーション オブジェクトを返します

要求

curl -X GET https://login.eagleeyenetworks.com/annt/annt/get -d "id=[ID]" -d "uuid=[UUID1],[UUID2],[UUID3]" --cookie "auth_key=[AUTH_KEY]" -G

HTTP 要求

GET https://login.eagleeyenetworks.com/annt/annt/get

パラメータ データ形式 詳細 必須?
id 文字列 ID of the device the annotation is associated with
uuid 配列[文字列] Array of comma-separated annotation UUIDs to return

JSON応答

[
    [
        "3f06b432-41f9-11e7-aaf2-1c1b0daef2f5",
        "20180526095347.742",
        2,
        {
            "data": "{\"info\":\"Annotation1\";}"
        }
    ],
    [
        "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
        "20180526095435.831",
        11,
        {
            "info": "Annotation by cafedead"
        }
    ],
    [...]
]

HTTP応答 (属性の配列)

Array Index Attribute データ形式 詳細
0 uuid 文字列 Unique identifier for the annotation assigned to it during creation
1 timestamp 文字列 Time of the annotation creation in EEN Timestamp format (YYYYMMDDHHMMSS.NNN)
2 namespace 整数 Namespace grouping assigned to the annotation (in the EEN structure namespaces can describe a specific category of annotations)
3 <data> json Content of the annotation

エラー状態コード

HTTP 状態コード データ型式
400 予期しないまたは認識できない属性が与えられました
401 無効なセッションクッキーによって許可されませんでした
403 必要な権限が足りないためユーザーは禁止されました
200 要求は成功しました

次のアノテーション

指定された方向に対して次のイベントを検索し、定義されたタイムスタンプの あたり で定義されているアノテーションに埋め込まれたオブジェクトを返します

要求

curl -X GET https://login.eagleeyenetworks.com/annt/annt/next -d "c=[ID]" -d "st=[START_TIMESTAMP]" --cookie "auth_key=[AUTH_KEY]" -G

HTTP要求

GET https://login.eagleeyenetworks.com/annt/annt/next

パラメータ データ形式 詳細 必須?
c 文字列 ID of the device the annotation is associated with
st 文字列 Timestamp to get annotation(s) for in EEN format: YYYYMMDDHHMMSS.NNN

JSON 応答

{
    "ts": "20180526095435.831",
    "new": [
        [
            "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
            "20180526095435.831",
            11,
            {
                "info": "Annotation by cafedead"
            }
        ],
        [...],
        [...]
    ],
    "active": [
        "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
        "<uuid>",
        "<uuid>"
    ]
}

HTTP 応答 (JSON 属性)

パラメータ データ形式 詳細
ts 文字列 Timestamp to get annotation(s) after in EEN format: YYYYMMDDHHMMSS.NNN
new 配列[配列[obj]] Array of arrays with each returned element being an annotation object with Json-formatted data
(See Get Annotation for the returned annotation array structure)
active 配列[文字列] Array of all annotation UUIDs active around the specified 'st' (or within the defined time window)

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
200 要求は成功しました

前のアノテーション

指定された方向に対して前のイベントを検索し、定義されたタイムスタンプの あたり で定義されているアノテーションに埋め込まれたオブジェクトを返します

要求

curl -X GET https://login.eagleeyenetworks.com/annt/annt/prev -d "c=[ID]" -d "et=[END_TIMESTAMP]" --cookie "auth_key=[AUTH_KEY]" -G

HTTP 要求

GET https://login.eagleeyenetworks.com/annt/annt/prev

パラメータ データ形式 詳細 必須?
c 文字列 ID of the device the annotation is associated with
et 文字列 Timestamp to get annotation(s) for in EEN format: YYYYMMDDHHMMSS.NNN

JSON 応答

{
    "ts": "20180526095435.831",
    "new": [
        [
            "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
            "20180526095435.831",
            11,
            {
                "info": "Annotation by cafedead"
            }
        ],
        [...],
        [...]
    ],
    "active": [
        "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
        "<uuid>",
        "<uuid>"
    ]
}

HTTP 応答 (JSON 属性)

パラメータ データ形式 詳細
ts 文字列 Timestamp to get annotation(s) before in EEN format: YYYYMMDDHHMMSS.NNN
new 配列[配列[obj]] Array of arrays with each returned element being an annotation object with Json-formatted data
(See Get Annotation for the returned annotation array structure)
active 配列[文字列] Array of all annotation UUIDs active around the specified 'et' (or within the defined time window)

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
200 要求は成功しました

特定期間(ウィンドウ)のアノテーション

特定の期間でアクティブなアノテーションが存在するオブジェクトを返します(オプションで、最近終了したアノテーションも含むこともできます)。結果は、除外したいUUIDリストを渡すことでフィルタすることもできます。'st'を指定すると、'st''et' の間で完了しているドキュメントが検索結果に含まれます( 'st' を指定しても検索間隔は変わりません)

要求

curl -X GET https://login.eagleeyenetworks.com/annt/annt/window  -d "c=[ID]" -d "st=[START_TIMESTAMP]" -d "et=[END_TIMESTAMP]" --cookie "auth_key=[AUTH_KEY]" -G

HTTP要求

GET https://login.eagleeyenetworks.com/annt/annt/window

パラメータ データ形式 詳細 必須?
c 文字列 ID of the device the annotation is associated with
et 文字列 End timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN
st 文字列 Start timestamp of query in EEN format: YYYYMMDDHHMMSS.NNN
uuid 配列[文字列] Array of UUIDs to exclude from results

JSON 応答

{
    "ts": "20180526095435.831",
    "new": [
        [
            "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
            "20180526095435.831",
            11,
            {
                "info": "Annotation by cafedead"
            }
        ],
        [...],
        [...]
    ],
    "active": [
        "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
        "<uuid>",
        "<uuid>"
    ]
}

HTTP 応答 (JSON 属性)

パラメータ データ型式 詳細
ts 文字列 Timestamp to get annotation(s) for in EEN format: YYYYMMDDHHMMSS.NNN
new 配列[配列[obj]] Array of arrays with each returned element being an annotation object with Json-formatted data
(See Get Annotation for the returned annotation array structure)
active 配列[文字列] Array of all annotation UUIDs returned based on the specified criteria

エラー状態コード

HTTP 状態コード データ型式
400 予期しないまたは認識できない属性が与えられました
401 無効なセッションクッキーによって許可されませんでした
403 必要な権限が足りないためユーザーは禁止されました
200 要求は成功しました

アノテーションのリストを取得

カウントまたは時間範囲を指定してアノテーションの配列を返します

要求

curl -X GET https://login.eagleeyenetworks.com/annt/annt/list -d "id=[ID]" -d "st=[START_TIMESTAMP]" -d "et=[END_TIMESTAMP]" -H 'Content-type: application/json' --cookie "auth_key=[AUTH_KEY]" -G

HTTP 要求

GET https://login.eagleeyenetworks.com/annt/annt/list

パラメータ データ形式 詳細 必須?
id 文字列 ID of the device the annotation should be associated with
start_timestamp 文字列 Start timestamp of the annotations to return
end_timestamp 文字列 End timestamp of the annotations to return
count 整数 N number of annotations to return (can be used to replace the 'end_timestamp', in which case will return the first N number of annotations after 'start_timestamp')
uuid 配列[文字列] Array of comma-delimited UUIDs to list
namespace 配列[整数] Array of 1 to N comma-delimited namespaces to list
exclusive boolean Whether to include annotations that span start or end (0) or not (1)

JSON 応答

[
    [
        "3f06b432-41f9-11e7-aaf2-1c1b0daef2f5",
        "20180526095347.742",
        2,
        {
            "data": "{\"info\":\"Annotation1\";}"
        }
    ],
    [
        "595e4b9c-41f9-11e7-aaf2-0d5g1hafj2z6",
        "20180526095435.831",
        11,
        {
            "info": "Annotation by cafedead"
        }
    ],
    [...],
    [...],
    [...]
]

HTTP 応答 (属性の配列)

Array Index Attribute データ形式 詳細
0 uuid 文字列 Unique identifier for the annotation assigned to it during creation
1 timestamp 文字列 Time of the annotation creation in EEN Timestamp format (YYYYMMDDHHMMSS.NNN)
2 namespace 整数 Namespace grouping assigned to the annotation (in the EEN structure namespaces can describe a specific category of annotations)
3 <data> json Content of the annotation

エラー状態コード

HTTP 状態コード 詳細
400 予期しない、または特定できない引数が指定されました
401 無効なセッションCookieにより認証されませんでした
403 ユーザーに必要な権限が無いため拒否されました
200 要求は成功しました

検索

概要

このサービスは様々なデータ形式に渡る検索を許可します。

録画の検索

検索モデル 記述予定

検索 (属性)

録画の検索

検索値に一致する録画オブジェクトの配列を返します

要求 記述予定

HTTP要求

GET https://login.eagleeyenetworks.com/g/search/recordings

パラメータ データ型式 詳細 必須?
value 文字列 Value to search for true

JSON 応答 記述予定

HTTP 応答 (属性の配列)

パラメータ データ型式 詳細
_key 文字列 Unique identifier (within the user’s account) of the recording
current_recording_timestamp 文字列 Timestamp of when the current recording (if any) was started
recording_%s_start RecordingInfo Object of info about the recording start event, where '%s' is the timestamp it started. Could be N number of these
recording_%s_stop RecordingInfo Object of info about the recording stop event, where '%s' is the timestamp it started. Must have a matching 'recording_%s_start' event. Could be N number of these
recording_%s_meta オブジェクト Object of info about the recording, where '%s' is the timestamp it started. Must have a matching 'recording_%s_start' event

RecordingInfo JSON 属性

パラメータ データ型式 詳細
timestamp 文字列 Timestamp of when the recording was started
layout_id ブール ID of a layout the recording was started for
camera_ids 配列[文字列] Array of camera IDs which had recording started for
layout_name 文字列 Name of layout at the time the recording started
user_id 文字列 ID of the user who started/stopped the recording

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
200 Request succeeded

アノテーションの検索

検索値と一致するアノテーション オブジェクトの配列を返します

要求 記述予定

HTTP 要求

GET https://login.eagleeyenetworks.com/g/search/recordings

パラメータ データ型式 詳細 必須?
value 文字列 Value to search for true
start_timestamp 文字列 Start timestamp used to limit search results true
end_timestamp 文字列 End timestamp used to limit search results (defaults to now)

JSON 応答 記述予定

エラー状態コード

HTTP 状態コード 詳細
400 Unexpected or non-identifiable arguments are supplied
401 Unauthorized due to invalid session cookie
403 Forbidden due to the user missing the necessary privileges
200 Request succeeded

エラー 一覧

HTTP Status Code Description
400 The request had bad syntax or was inherently impossible to be satisfied
401 Supplied credentials are not valid
402 Account is suspended
403 Forbidden due to the user missing the necessary privileges
404 Element not found (section specific)
406 Realm is invalid due to not being a root realm
409 Email address has already been registered for the specified realm
410 Communication cannot be made to attach the camera to the bridge
412 User is disabled
415 Device associated with the given GUID is unsupported
460 Account is inactive
461 Account is pending
462 User is pending
463 Unable to communicate with the camera or bridge, contact support
200 The request was fulfilled successfully
202 The request has been accepted for processing, but the processing has not been completed
204 User has been logged out

よくある質問

誰がEagle Eye API を使うことができますか?
Eagle Eye ビデオAPIは誰でも利用できるように広く公開しております。
ユーザーはAPI呼び出しを成功させるために、正しいAPIキーが必要になります。

どうやって自分のAPIキーを手に入れますか?
以下のフォームに記入して登録することで、APIキーを入手することが可能です。

Eagle Eye ビデオAPIでエラーが発生しましたが、どこに報告すればいいですか?
APIについての質問や問題、機能要求につきましては、以下のフォームから要求を行ってください。

Eagle Eye ビデオAPIを使用した場合、どのように課金されますか?
Eagle Eye ビデオAPIを使用する場合、追加の費用は必要ありません。
EagleEyeシステムを使用する場合、ブリッジとカメラごとの費用だけが必要になります。

Eagle Eye ビデオAPIを使用してどのようなことができますか?

Eagle Eye ビデオAPIはライブや録画された動画と共に作成・統合されるアプリケーションのために、強力なストレージ、アナリティクス、インデックス及びインターフェイスのセットを提供します。アプリケーションは非常に簡単なものから高度に複雑なものまで対応できます。

HowTo 及び サンプル ページを御覧ください。

使い方とサンプルコード

Curlを使ってAPIコールを作成するには


cURL

認証リクエスト

curl --request POST https://login.eagleeyenetworks.com/g/aaa/authenticate --data "username=[USERNAME]&password=[PASSWORD]"

このセクションでは、curl コマンドラインツールを使用したAPI要求の処理方法を一通り案内します。Eagle Eye APIはプラットフォームに依存せず、Web、AndroidそしてiOS上でのEagle Eyeクライントの作成に利用されています。Curlはサーバーへのデータ転送ツールですが、HTTP/HTTPSを含む、我々が望む幅広いプロトコルをサポートしています。

cURLこのサイト でインストールが可能です

curlがインストールされると次は全てのAPIを自由に使えるように、正規のセッションを使用してログインします (cURL cheat sheet のサイトで基本的な HTTP コマンドがマ学べます)。ログインには、認証と認可の2つのステップから構成されます。認証APIは2つのパラメータを必要とします。私達が使用している cURL の一般的にな使用例(認証要求)は右記のコードのようになります

'--request' フラグは要求の形式を GETPOSTPUT 及び DELETE のいずれかで指定します

'--data' (または '-d') フラグはAPIクエリのパラメータを指定します


トークン

JSON 応答

{
  "token": "YrZF/8jf7W0rKcqNTugqidq…………4dZWeNOcNsuenTXc9fQVtvp2vI75g=="
}

このコマンドが正規の認証情報で実行されている場合、我々は右記の例(JSON 応答)のような キー/バリュー(値) のペアで構成された 'token' を含むJSONフォーマットの応答を受け取ります

このトークンは認可API要求を実行するために必要なパラメータです
(認可API要求を作成時に必要になるので、トークンの値をコピーしておいてください)






認可

認可要求

curl -D - --request POST https://login.eagleeyenetworks.com/g/aaa/authorize --data-urlencode "token=[TOKEN]"

例のようなcurlコマンドを利用して認可API要求を実行することができます

出力はAPI要求のヘッダに続いて応答ボディで構成されます。'-D' フラグはプロトコル ヘッダを書き出します。以下がmanページ内の詳細です:

引数 詳細
-D, –dump-header プロトコルヘッダを指定したファイルに書き込みます。このオプションは HTTP サイトから送信されてきたヘッダを保存するときに有用なものです。ヘッダ内のクッキーを後の curl 起動時に -b、–cookie を用いて読み取らせることも可能になります。 クッキーの保存には -c、–cookie-jar の方が適しています

デバイス 要求リストの取得 (認証済み)

curl --request GET https://login.eagleeyenetworks.com/g/list/devices --cookie "auth_key=[AUTH_KEY]"

'-D' の後に続く '-' は出力する ファイル が標準出力であることを示すことに注意してください。ヘッダの要素の一つは 'Set-Cookie: auth_key=[AUTH_KEY]' です。その他全てのAPI要求で必要となるクッキーとして 'auth_key=[AUTH_KEY]' をクリップボードにコピーします。デバイスのリストを取得するcurlの要求は右記のようになります

レイアウトを作成する

Get List of Layouts (Request)

curl --request GET https://login.eagleeyenetworks.com/g/layout/list --cookie "auth_key=[AUTH_KEY]"

Get List of Layouts (Json Response)

[
    [
        "fc7fa3a4-66ea-11e3-8ca8-523445989f37",
        "Default",
        [
            "iphone"
        ],
        "SWRD"
    ],
    [
        "14fbd682-66eb-11e3-8ca8-523445989f37",
        "Ekta 2",
        [
            "iphone"
        ],
        "SWRD"
    ],
    [
        "23535930-66eb-11e3-977b-ca8312ea370c",
        "Ekta 3",
        [
            "desktop"
        ],
        "SWRD"
    ]
]

HTTP Request

GET /layout/list GET /layout

When a user logs onto the Eagle Eye system, they are greeted with a grid of cameras, with each cell representing a camera pane. These panes can be of varying size so that the user can customize the layout to their liking. In this tutorial, we will demonstrate how to use the APIs to build these layouts so they are consistent on all platforms

While logged in, we make a request to the GET /layout/list API. This returns an array of Layout objects. Do note that this is not the same model as what is returned by the GET /layout API request. The one returned by the /layout/list API is an abridged version with only the most important attributes. The response of the request will look like this

We take the layout ID attribute for each layout of interest and pass it to the GET /layout API request. This will contain the information we need to construct the layout

Get Layout (Request)

curl -G https://login.eagleeyenetworks.com/g/layout -d "id=[LAYOUT_ID]" --cookie "auth_key=[AUTH_KEY]"

Get Layout (Json Response)

{
    "id": "811dbe48-66eb-11e3-8ca8-523445989f37",
    "shares": [
        [
            "ca0c35cb",
            "SWRD"
        ]
    ],
    "name": "mob dev 1",
    "permissions": "SWRD",
    "current_recording_key": null,
    "types": [
        "desktop"
    ],
    "configuration": {
        "settings": {
            "camera_row_limit": 3,
            "automatic_rotation": false,
            "camera_name": false,
            "camera_border": "false",
            "camera_aspect_ratio": "0.75"
        },
        "panes": [
            {
                "type": "preview",
                "pane_id": 0,
                "name": "Conference Room",
                "cameras": [
                    "100f6136"
                ],
                "size": 2
            },
            {
                "type": "preview",
                "pane_id": 1,
                "name": "NW Parking",
                "cameras": [
                    "10003254"
                ],
                "size": 2
            }
        ]
    }
}

We get a wealth of good information, but the information specific to setting up the pane layout is in the 'configuration' Json. Within that Json is an attribute called 'panes', which is an array of individual pane objects. Each pane specifies the <camera_id> and the size of the pane. The size represents the width and height in number of cells. A size of 2 means that the pane is 2 cells in width and height, so it occupies a total of 4 cells. A size of 3 would occupy 9 cells

The other important factor to know is the size of grid holding the panes, specifically the number of columns. For the Eagle Eye web client a browser can be resized to be a narrow strip or the full width of the screen. The layout will dynamically adjust the number of columns based on the width of the window. Mobile devices have fixed screen sizes, so for the iOS and Android smartphone clients the number of columns is set to three

Now that we have the order of panes, the size of each pane and the size of the grid, we can construct our layout. This proved to be of varying difficulty depending on the platform. The web client uses a robust packing library Packery, which is based on a bin packing algorithm. This library minimizes empty space while preserving the order as best as possible. Using Packery reduced the development time for this feature significantly

At this time Android does not have a robust library for packing the panes so the algorithm to do so was written from scratch. The goal was to mimic the Packery library as best as possible. The Android algorithm works as such:

  1. Remove the next image from the 'panes' array and place it in the 'panes_for_analysis' list
  2. Analyze the panes in 'panes_for_analysis'. If there is a fully packed block, remove those panes and add them to the layout
  3. If the 'panes' array is not empty, GOTO 1, else GOTO 4
  4. Add the remaining panes from 'panes_for_analysis' to the layout

This is the algorithm at a high level, though the specifics can get a little more complex, such as determining whether a fully packed block exists. The state of a fully packed block is also dependent on the number of columns for the grid

The ease of constructing layouts is highly dependent on the robustness of the 3rd party library. In the case that one does not exist, we fall back to our home grown packing algorithm

ライブビデオを再生する

動画再生機能は、'/asset/play/video.{video_format}' APIを通じてアクセスできます。ここではどのようにこのAPIを使用してライブ動画を再生するか、及び同じAPIを使用して録画された動画を再生するかを説明します

以下はHTML Flash動画再生を使用して、ライブ動画を再生するためのURLを作成するJavascriptコードです。このサイト で、URL文字列を生成するためのJavascriptコードを実行することも可能です。

APIの呼び出しには2個のパラメータが必要になります。それらは [DEVICE_ID] と [AUTH_KEY] と呼ばれます。[DEVICE_ID] は対象となるカメラのIDを表します。[AUTH_KEY] は認可のために使用され、'/aaa/authorization' APIの応答ヘッダに含まれます

eagleEyeLiveVideoApiUrl = "https://login.eagleeyenetworks.com/asset/play/video.flv" + "?id=[DEVICE_ID]" + "&start_timestamp=stream_"+(new Date().getTime()) + "&end_timestamp=+300000" + "&A=[AUTH_KEY]";

htmlFlashVideoPlayerUrl = "https://login.eagleeyenetworks.com/strobe/embed.html?src="+encodeURIComponent(eagleEyeLiveVideoApiUrl)+"&autoPlay=true&bufferingOverlay=false&streamType=live&bufferTime=1&initialBufferTime=1&expandedBufferTime=5&liveBufferTime=2&liveDynamicStreamingBufferTime=4&minContinuousPlaybackTime=5";

document.write(htmlFlashVideoPlayerUrl);

'eagleEyeLiveVideoApiUrl''htmlFlashVideoPlayerUrl' という2つの変数を使用していることに注意してください。'htmlFlashVideoPlayerUrl' 変数は、Flash Playerを使用して再生する動画プレイヤーが含まれています。ユーザーはこの好きな動画プレーヤーを自由に使用できます。コードで参照されている動画プレーヤーは、我々が使用している動画プレーヤーの一例です。このJSコードの出力は、次のようなURLです。これを使用してライブビデオをアプリケーションに埋め込みます:

https://login.eagleeyenetworks.com/strobe/embed.html?autoPlay=true&src=https%3A%2F%2Flogin.eagleeyenetworks.com%2Fasset%2Fplay%2Fvideo.flv%3Fc%3D[DEVICE_ID]%3Bt%3Dstream_1401291315740%3Be%3D%2B300000%3BA%3D[AUTH_KEY]&bufferingOverlay=false&streamType=live&bufferTime=1&initialBufferTime=1&expandedBufferTime=5&liveBufferTime=2&liveDynamicStreamingBufferTime=4&minContinuousPlaybackTime=5

長期ポーリング

POST /poll の JSON 要求

{
     "cameras": {
         "100c30ea": {
             "resource": [
                 "event",
                 "pre",
                 "thumb",
                 "status"
             ],
             "event": [
                 "ECON",
                 "ECOF",
                 "AELI",
                 "AELO",
                 "EMES",
                 "EMEE",
                 "CECF",
                 "CSAT",
                 "CSDT",
                 "CONN",
                 "COFF",
                 "ESES",
                 "ESEE"
             ]
         },
         "100f6136": {
             "resource": [
                 "event",
                 "pre",
                 "thumb",
                 "status"
             ],
             "event": [
                 "ECON",
                 "ECOF",
                 "AELI",
                 "AELO",
             ]
         },
         "1009c1ab": {
             "resource": [
                 "event",
                 "pre",
                 "thumb",
                 "status"
             ],
             "event": [
                 "EMES",
                 "EMEE",
                 "CECF",
                 "CSAT",
                 "CSDT",
                 "CONN",
                 "COFF",
                 "ESES",
                 "ESEE"
             ]
         }
     }
}

Eagle Eyeシステムに入ると、ユーザーにはカメラのグリッドが表示されます。 これらのカメラは、ポーリングストリームを通じてリアルタイムで画像を検索しています。このチュートリアルでは、/poll APIを使用してロングポーリング用のポーリングストリームを設定する手順について説明します。

ロング(長期)ポーリングはモバイルクライアントで使用されます。このプロセスは、最初にPOST /poll APIを使用してポーリングストリームに登録し、続いてGET /poll APIリクエストを一定の間隔で要求します

POST /poll APIは、ポーリングストリームを初期化し、リッスンしたいイベントを登録するために使用されます。モバイルクライアントの場合、プレビュー画像とステータスビットであるリソースタイプ 'pre''status' をリッスンします。サーバーに送信するデータはjsonであるため、この要求のコンテンツタイプは 'application/json' になります。データがどのように見えるかの例を以下に示します

GET /poll の応答

{
  "cameras": {
    "10003254": {
      "event": {
        "PRFR": {
          "cameraid": "10003254",
          "timestamp": "20180528224954.312",
          "file_offset": 17804500,
          "frame_size": 6152,
          "previewid": 1401314400
        }
      }
    },
    "100a9541": {
      "event": {
        "PRFR": {
          "cameraid": "100a9541",
          "timestamp": "20180528224955.507",
          "file_offset": 12004385,
          "frame_size": 3706,
          "previewid": 1401314400
        }
      },
      "pre": "20180528224955.507"
    }
  }
}

一度 POST /poll 要求が成功すると、トークンがユーザーに返されます。このトークンを使用して、その後のすべての GET /poll 要求を正常に作成できます。トークンが変更したい場合は、POST /poll 要求から ‘ee-poll-ses'クッキーがあれば、同じリクエストを行うことができます。

新しいデータができるだけ早く到着できるように、GET /poll 要求を頻繁に呼び出す必要があります。応答は空か、右記の例のように表示されます

更新された情報を持つ属性のみが応答ペイロードに返されます。モバイルアプリでは、新しいタイムスタンプの 'pre' 属性を監視し、新しいタイムスタンプが来たら、適切なAPI呼び出しを行ってカメラ画像を取得します。

このAPIの能力は、どのイベントやリソースタイプをリッスンするかを制御できることにあります。これにより、カメラの更新をリアルタイムで知ることができます

用語

Eagle Eye ビデオ バンク (Eagle Eye Video Bank: EEVB)
Eagle Eyeが提供するサービスは、安全かつ安全に、監視カメラや他のカメラからのビデオを簡単に保存することができ、WWW経由でのアクセスが可能で、マルチカメラ監視のための包括的な制御および管理プラットフォームを提供します

Eagle Eye ビデオ バンク サービス (Eagle Eye Video Bank Services: EEVBS)
これはカメラ、ユーザーインターフェイス、モバイルアプリケーション、および画像分析アプリケーションのインターフェイスのためにシステム内外で使用される公開されたWWW RESTfulサービスです。これはこの文書で説明されています

ESN
電子シリアル番号。 アカウント、ブリッジ、カメラ、またはユーザーを表すことができます

クライアント (Client)
クライアントとはアセットを表示したり、変更を加えたり、分析を行うためにEEVBSとインターフェースするソフトウェアアプリケーションです

デバイス (Device)
これは物理的なカメラかブリッジのいずれかを指します

デバイス ID (DeviceID)
これはカメラIDまたはブリッジIDと同等のものです。ブリッジの場合、それに関連付けられたビデオストリームはありません

ブリッジ (Bridge)
ブリッジはEagle Eyeの製品で、顧客の拠点に置かれ、業界標準のカメラと通信します。ブリッジはカメラをEEVBと互換性を持ち、アセットを記録するように変換します。ブリッジはクラウドベースのユーザインタフェースを介してセットアップされ、制御されます。ブリッジにはユーザーインターフェイスはありません。ブリッジはローカルのクライアントに、ローカルのアセットを直接提供することができます。ブリッジはEEVBに転送されるまでアセットを格納します。ブリッジはDHCPまたは静的IPアドレスを使用して設定できます

カメラ (Camera)
カメラは、Eagle Eye Video Bankに配信されるビデオデータストリームのソースです。 カメラは一定期間にわたってアセット・ストリームを生成します。 これらのアセットはEEVBに格納されます

カメラID (CameraID)
一意のIDで、32ビットの16進数で構成されます。この一意のIDは、カメラとカメラのアセットすべてを識別するために使用されます。このIDは、物理カメラのハードウェアIDではありません。これは、概念的に位置しているカメラで記録された、または記録されているデータストリームの論理的なIDです。カメラを交換しても同じCameraIDで接続することができ、アセット・ストリームを継続することができます

カメラ名 (Camera Name)
これはカメラによって生成されたアセットを簡単に参照できるように、管理者がカメラIDに付ける一意ではない名前です

Cカメラ タグ (Camera Tags)
基本的な設定管理のために、カメラタグを使用してカメラにラベルを付けることができます。どのカメラにも任意の数のカメラタグを付けることができます。タグはアカウント全体で有効です

物理的カメラ (Physical Camera)
実際に存在する物理的なカメラ – カメラ と呼ばれる 論理的なカメラ とは異なります

アタッチID (Attach ID called ‘Connect ID’ before)
これは4桁の4つのセットに分割された、16桁の数字とアルファベットが混合した文字列です。カメラとブリッジ(デバイス)にはアタッチIDがあり、それぞれに貼り付けられたシールに印刷されているか、段ボール箱の内側(外部ではない)に印刷されています。(訳注:これは現在とは全く異なります。現在はアタッチIDが書かれたプリントがブリッジにのみ同梱されています)デバイスが事前設定されている場合、自動的にユーザーのアカウントに接続されます。ただし、デバイスがあらかじめ設定されていない場合、管理者はアタッチIDを入力してデバイスを自分のアカウントに接続します。これは通常、物理的なカメラに対応する1つ以上のカメラを作成し、それらをアカウントに接続します。接続IDは常に大文字でのみ表示されます。入力時には大文字と小文字を区別しません。混乱を排除するため、アタッチIDに「0(ゼロ)」または「O(アルファベットのオー)」はありません

ハードウェア ID (Hardware ID)
これは、デバイスのハードウェアの一意のIDです。このIDは、カメラのタイプやその他のパラメータによって異なります。これは基本的に最大128文字の文字列です。アセットが格納されると、ハードウェアIDはEEVBによってCameraIDにマッピングされます。物理的カメラがブリッジに接続されると、ハードウェアIDとしてONVIF GUIDが使用されます

アカウント (Account)
アカウントは、EEVB内における課金エンティティであり、マスター コントロール エンティティでもあります。すべてのカメラ、アセット、ユーザー、およびその他のアイテムは、アカウントに関連付けられています。アカウントはアカウント番号で識別されます。アカウントはEメールアドレス(ユーザーログインでもあります)で識別されるユーザーを持ちます

サブアカウント (Sub-Account)
サブアカウントは別のアカウント(マスターアカウントと呼ばれます)の下にあるアカウントです。サブアカウントとは主に請求での関係性であり、ほとんど場合の意図と目的は、アカウントを完全に分離するためです。サブアカウントのレベルは1つだけです。マスターアカウントの管理者は、まだ未定の方法 (訳注:原文作成時と思われます) でサブアカウントに管理者アクセス権を取得できます。サブアカウントには、請求に関するインジケーターがあります。サブアカウントは、マスターアカウントを介して請求することも、別途請求することもできます。個別に請求される場合、サブアカウントは独立したアカウントと同様に動作します。個別に請求されない場合、マスターアカウントの請求には、サブアカウントのすべてのアイテムがサブアカウントによって分割されて表示され、サブアカウントはいかなる種類の請求も許可されません(権限もなく、請求書の表示も無く、クレジットカードの入力も不要 - 何もありません)。請求インジケーターを変更し、サブアカウントをアカウントに変更し、サブアカウントを他のマスターアカウントに移動するには、Eagle Eye管理機能が必要です。基本的にサブアカウントは再販業者によって使用されます。どのアカウントがどの販売代理店に関連付けられているかを把握することができ、販売代理店に管理者アクセス権を与えることができます。請求は代理店に請求するか、顧客に直接請求することも可能です。サブアカウントは部門ごとに別々の請求を希望する大企業でも使用することができます

アカウントID (Account ID)
アカウントを一意に識別する64ビットの10進数。これは、新しいアカウントが作成されたときにEEVBによって割り当てられる数値です。管理者ユーザーは自分のアカウント番号を確認できますが、ログイン時に番号を使用することはありません。この番号は請求に関する質問をするときに必要になることがあります。このアカウント番号は、Eagle Eye 会計システムと紐付けるために使用されます。 すべての請求はアカウント単位で行います

アカウント レベル (Account Level)
これは、アカウントのタイプを識別する数値コードです。現在、4つのアカウントレベルがあります: 1 = 評価、2 = 基本、3 = プレミアム、4 = 企業。 これらの各アカウントレベルでは異なる機能を利用できます。これらのアカウントレベルごとに異なる請求が実行されます(カメラごとの費用が異なります)。これらのアカウントレベルのそれぞれは、デフォルトの保持ポリシーが異なります。将来、アカウントレベルが追加される可能性があります

ユーザー (User)
すべてのアカウントにはユーザーがいます。 ユーザーは、Eagle Eye Video Bankへのアクセスを必要とする単一の人または単一のステーションに対応します。ユーザーは異なるアクセス権とアクセス権を持つことができます。アクセスコントロールによって、カメの表示や動作が制限されることがあります。ユーザーは複数のアカウントに所属できますが、その場合には同一のユーザーアカウント名(Eメールメールアドレス)を使用することはできません

ユーザーID (UserID)
ユーザーIDは、ユーザーを一意に識別する32ビットの16進数です。このユーザーIDはユーザーが作成されて、ユーザーがアカウントの接続されたときにEEVBによって割り当てられます

ログインユーザー名 (User Login)
ログインする際のユーザー名は、そのユーザーのEメールアドレスです。これはユーザーを一意に識別し、パスワードの回復機能を提供します。EEVBはEメールベースのユーザーログインのみをサポートします。各ユーザーは1アカウントのみに関連付けられています。システムによって割り当てられる各ユーザー用のユーザーIDは1つのみです。ユーザーは複数のアカウントに所属できますが、その場合には同一のユーザーアカウント名(Eメールメールアドレス)を使用することはできません

管理ユーザー (Admin User)
アカウントには管理ユーザーが少なくとも1人必要です。1つのアカウントに複数の管理ユーザーがいる可能性がありますが、最後の管理ユーザーは削除できません。管理ユーザーは、他のユーザーの追加と削除、権限の変更、カメラの追加と削除、およびすべてのアセットの表示を行うことができます。課金の問題がある場合に管理ユーザーに通知され、請求履歴が表示されます。管理ユーザーは課金を変更して追加のサービスを購入することができます

レイアウト (Layout)
カメラを列挙し、画面上の位置とサイズ、カメラの表示に関連する設定を保存し、名前をつけることができます。レイアウトは、モニター画面にカメラを表示し、調査作業を支援するために使用されます。レイアウトはユーザーによって作成され、名前が付けられます。レイアウトは、ユーザー固有のものでもグローバルなものでもかまいません。アカウントレイアウトは、アカウントのすべてのユーザーに表示されます。各カメラグループには暗黙のレイアウトが関連付けられています。 レイアウトには各ユーザーの権限があります

アクティベーション (Activation)
新しいカメラまたはブリッジがオンラインになり、ユーザーがそれを認識して名前を付け、自分のシステムに紐付ける際の処理。アクティベーション時から請求が開始されます。アクティベーション時には、利用規約に同意する必要があります

カメラタグID (Camera TagID)
カメラタグを識別するためにEEVBによって割り当てられたトークン

アセット (Assets)
アセットは、カメラおよび分析システムによってキャプチャまたは作成され、EEVBに格納されたアイテムです。すべてのアセットはカメラに関連付けられ、カメラはアカウントに関連付けられます。通常、アセットはプレビューとビデオです

アセットクラス (Asset Class)
アセットクラスは、1)ビデオ、2)プレビュー、3)メタデータです。 これらはカメラによって生成されます。メタデータは分析システムでも作成できます

保存されたアセット (Saved Assets)
通常、アセットはローテートし、押し出されます。たとえば、EEVBはカメラからのビデオアセットの過去14日間分を保持することがあります。保存されたアセットとは、ユーザーが指定したアセットと関連データで、より長い期間保存する必要があるものを指します。これらのアセットは、通常のローテートの中(保持期間)からコピーされ、削除されません

ビデオアセット (Video Assets)
ビデオアセットは録画されたビデオストリームで、音声を含みます 共有アセット 共有アセットはユーザーが公に、他のユーザー、または他の潜在的な場所と共有されるべきと示した資産です。これらのアセットは、保存されたアセットのサブセットです

保存ポリシー (Retention Policy)
すべてのカメラは保存ポリシーが関連付けられています。保存ポリシーはカメラからのアセット(ビデオ)をどれだけ保存するかを示します。アカウントには、そのアカウントのすべてのカメラに使用されるデフォルトの保存ポリシーがあります。このポリシーはカメラごとにオーバーライドできます

タイムスタンプ (Timestamps)
すべてのアセットにはタイムスタンプが付与されます。タイムスタンプはアセットが発生したときに記録されます。タイムスタンプは常にUTCで、最も近いミリ秒で記録されます。タイムスタンプはYYYYMMDDhhmmss.mmmというテキストで表示されます。タイムスタンプは、エポック(1970年1月1日…Linuxではtime(), gettimeofdayなど、Javascriptのタイムスタンプなどと同様)からミリ秒単位の数値でも表されます

イベント (Events)
イベントとは 興味あり と示されている期間を指します。イベントは、資産に価値を加えるメタデータです。カメラは、モーション検出、音声検出などの検出に基づいてイベントを生成します。イベントが生成されると、カメラはプレビューアセットまたはビデオアセットを提供する場合と提供しない場合があります。多くのイベントがアセットの記録または保存を起動します。イベントはユーザーが生成することもできます(録画がスケジュールされ、ビデオがストリームされ、タグ付けまたは保存されます)。イベントは分析システム(ナンバープレートの識別)によって生成されることもあります。イベントには、それらに関する追加情報(記録された理由、各検出タイプの詳細など)を示すメタデータがあります。イベントはすべて特定の時間に、特定のカメラで開始されます。イベントは通常長さを持ちますが、長さもゼロにすることもできます。データは、作成されたときまたはその後にイベントに添付することができます(ユーザーはイベントにコメントを追加できるため、分析システムは名前を顔に関連付けることができます)。イベントはEagle Eye UIの主要な要素です

未完了イベント (Incomplete Event)
イベントには始まりと終わりがあります。イベントは完了する前に受信または取得することができます。この場合、それらは未完了イベントと見なされます。これは、「ポーリングインターフェース」を使用してリアルタイムでイベントを受信する場合が最も一般的です。ポーリングインターフェースで、未完了イベントが受信された場合、イベントが完了時に再び受信されます

スパン (Span)
スパンは、お互いを補完する2つのイベント間の時間の間隔を指します

キーフレーム (Key Frame)
イベントの代表的な場面の画像を指します。一般的にモーションセグメントの中間から選択されます

分析システム (Analysis Systems)
分析システムは、EEVBS を使用して、既存または受信したアセットを分析し、メタデータをメタデータアセットの形でアセットに保存します。メタデータは、アセットストリーム内の人物、場所、物を識別することができます。このメタデータは、検索、整理、分析、アラートに使用することができます

アラートイベント (Alert Events)
アラートイベントは、アラートを生成するイベントを指します

アラート/通知 (Alerts/Notifications)
アラートまたは通知は、ユーザーがイベントを作成する基準を作成後、イベントから生成されます。アラートは任意の方法(画面、電子メール、テキストメッセージなど ※訳注:現在は電子メールのみ)で与えることができます。アラートはユーザーが確認しなければならない場合があります。EEVBSは複数のアラートを単一のアラートにし、あまりにも多くのアラートが作成されて困惑させないようにします。アラートはほとんどの場合、イベントから生成されます。アラートは一般に、カメラがオフになったとき、オフラインになったとき、またはモーションが未検出状態から検出されたときに生成されます。アラートには、ビデオやその他の関心のあるアセットが含まれている場合と含まれていない場合があります。ユーザーに送信されたアラートによって自動的に保存が作成され、関連する画像、ビデオ、およびメタデータへの組織的なアクセスが提供されます。保存されたアセットへのURLは、即時アクセス可能なようにアラート通知内で提供されます。(これはおそらく実質的には共有、保存グループ、が"かたまり"として通知されます)

モーション検出領域 (Motion Detection Region)
各カメラは、1つ以上のモーション検知領域を持つことができます。これらはモーション検知が行われる領域です。通常、モーション検知領域にモーションがある場合は、ビデオ録画が有効になります。どの領域のモーション検知でも常にイベントが生成されます。ユーザーは、そのモーション検知領域でアラートを生成するようにユーザーを設定した場合、アラートを生成します

プライバシー領域 (Privacy Region)
カメラには、1つ以上のプライバシー領域が定義されている場合があります。この領域はすべてのアセット画像とビデオで、ブランクとしてマスクされます

メタデータ アセット (Meta Data Assets)
これはビデオアセットのアイテムを識別するデータです。動画内で発生している顔、ナンバープレート、アクティビティ、動作などのアイテムを識別するために使用されます

監査証跡 (Audit Trail)
各ユーザーのすべての変更と操作は、監査証跡のために記録されます。これらの項目は、ユーザーごとに格納されます。記録にはすべての設定の変更、すべてのカメラ設定の変更(PTZ操作含む)、すべてのビデオの表示、すべてのカメラの追加と削除、すべての手動録画、すべてのスケジュール変更、アラートのすべての変更が含まれます。(訳注:現在この機能は使用できません)

EEディレクター (EE Director)
ディレクターはカメラがEEVBSに接続しているときに最初に接続されるURLです。ディレクターは、アカウントのアクセスの確認、アカウント情報、およびアカウント内のカメラをリストします。カメラIDを指定すると、要求されたカメラのアセットを持つ適切なEEアーカイバのURLが提供され、問い合わされたアプリケーションが表示できるようになります。 http://d.eagleeyenetworks.com 。 カメラはまた、EEディレクターに連絡し、アセットをどこに送るべきかを決定します

EE GUI
Eagle Eyeグラフィカル ユーザー インターフェイス(HTTP Javascriptによって構築)はカメラの制御および表示を行います。EEN ユーザーインターフェースは、EEVB API上に構築されています

EE アーカイバー (EE Archiver)
カメラと通信し、すべてのアセットを格納するアーキテクチャ要素。これは、EE GUIとiOS AppおよびAndroid Appにアセットを提供します。EE アーカイバーはIPアドレスでアクセスします

EE ロケーター (EE Locator)
EEロケータは固定IPアドレスを持ち、これは変更されません。カメラとブリッジは最初にインストールしたときにEEロケーターと最初にDNSを使用して接続しようとしますが、DNSが機能しない場合は固定IPアドレスを使用します。EEロケータはカメラにカメラIDを提供し、認証し、適切なアーカイバおよびEEVBと通信するために必要なその他の接続に向けます。ロケータが停止した場合、新しいカメラを追加する機能のみが停止します