テナント

概要

テナントインターフェースは以下の要素で構成されます。

リソース 説明
テナントコレクション テナントを読み出します
URL/tenant/tenantsによりアクセス可能
テナント 閲覧可能な個別のテナント
URL/tenant/tenants/<tenantId>によりアクセス可能
アプリケーションリファレンスコレクション アプリケーションを読み出します
URL/tenant/tenants/<tenantId>/applicationsによりアクセス可能
アプリケーションリファレンス 閲覧可能な個別のアプリケーションリファレンス
URL/tenant/tenants/<tenantId>/applications/<applicationId>によりアクセス可能
オプションコレクション 新規オプションの作成と、既存オプションの閲覧を可能にします
URL/tenant/optionsによりアクセス可能
オプション 閲覧および変更可能な個別のオプション
URL/tenant/options/<optionCategory>/<optionKey>によりアクセス可能
使用統計 テナントのリクエスト負荷およびデータ使用状況に関する情報を返します
現在のテナント 現在ログインしているサービスユーザーデータを表します

重要事項: すべてのPUT / POSTリクエストに対して「accept」ヘッダーを使用する必要があります。そうでない場合は、空の応答本体が返されます。

テナントIDとテナントドメイン

テナントIDは、Things Cloud に存在するテナント全体での固有の識別子です。 たとえば、t07007007などです。テナント作成後は変更できません。 t <number>の形式に従って自動生成されたテナントIDを使用することをお勧めします。

注記:サブテナントは自動生成されたテナントIDしか使用できません。

テナントへアクセスできるロケーションは、テナントドメインと呼ばれます。たとえば _mytenant.cumulocity.com_などです。存在するテナント全体に対して固有である必要があり、テナントの作成後に変更ができます。

概して、テナントドメインを知っている場合、通信に使用してください。テナントIDとテナントドメインのどちらを使用しても動作に違いはありません。

テナントコレクション

テナントコレクション [application/vnd.com.nsn.cumulocity.tenantCollection+json]

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
tenants Tenant 0..n テナントのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 テナントの前のページへのリンク(あれば)
next URI 0..1 テナントの次のページへのリンク(あれば)

GET - テナントコレクションの表現の取得

応答本体: TenantCollection

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

リクエスト例: sample_tenantとしてテナントを取得する

GET /tenant/tenants
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenantCollection+json;ver=...
Content-Length: ...
{
    "statistics": {
        "currentPage": 1,
        "pageSize": 5,
        "totalPages": 1
    },
    "self": "<<Collection URL>>",
    "tenants": [
        {
            "adminName": "admin",
            "allowCreateTenants": false,
            "storageLimitPerDevice": 10485760,
            "applications": {
                "references": [],
                "self":"<<ApplicationCollection of This Tenant  URL>>",
            },
            "company": "sample_company",
            "domain": "sample_domain.com",
            "id": "sample_tenant",
            "ownedApplications": {
                "references": [
                    {
                        "application": {
                            "availability": "PRIVATE",
                            "id": "5",
                            "key": "<<hashed value>>",
                            "name": "sample_private_application",
                            "owner": {
                                "self":"<<Application Owner Tenant URL>>",
                                "tenant": {
                                    "id": "sample_tenant"
                                }
                            },
                            "self":"<<Application 5 URL>>",
                            "type": "EXTERNAL"
                        },
                        "self":"<<This Tenant Application 5 URL>>",
                    },
                    ...
                ],
                "self":"<<ApplicationCollection of This Tenant URL>>",
            },
            "self":"<<This Tenant URL>>",
    "parent": "parentTenant",
            "status": "ACTIVE"
        },
        {
            "applications": {
                "references": [],
                "self": "<<ApplicationCollection of This Tenant URL>>",
            },
            "company": "sample_company",
            "domain": "sample_domain.com",
            "id": "next_sample_tenant",
            "ownedApplications": {
                "references": [
                    {
                        "application": {
                            "availability": "MARKET",
                            "id": "6",
                            "key": "<<hashed value>>",
                            "name": "market_application",
                            "owner": {
                                "self":"<<Application Owner Tenant URL>>",
                                "tenant": {
                                    "id": "next_sample_tenant"
                                }
                            },
                            "self":"<<Application 6 URL>>",
                            "type": "EXTERNAL"
                        },
                        "self":"<<This Tenant Application 6 URL>>",
                    }
                ],
                "self":"<<ApplicationCollection of This Tenant URL>>",
            },
            "self":"<<This Tenant URL>>",
        },
        ...
    ]
}

POST - 新規テナントの作成

リクエスト本体: Tenant

応答本体: Tenant

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN または ROLE_TENANT_MANAGEMENT_CREATE

リクエスト例:

POST /tenant/tenants
Host: ...
Authorization: Basic ...
Content-Length: ...
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver...

{
    "id" : "sample_tenant",
    "company" : "sample_company",
    "domain" : "sample_domain.com",
    "contactName" : "Mr. Doe",
    "contactPhone" : "0123-4567829",
    "adminEmail" : "john.doe@sample_domain.com",
    "adminName" : "firstAdmin",
    "adminPass" : "myPassword",
    "customProperties" : {"referenceId":"1234567890"},
    "sendPasswordResetEmail": true
}

応答例:

HTTP/1.1 201 Created
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver=...
Content-Length: ...
Location: <<URL of new tenant>>

{
    "id" : "sample_tenant",
    "allowCreateTenants": false,
    "self" : "<<URL of new tenant>>",
    "company" : "sample_company",
    "domain" : "tenant_nsn.com",
    "contactName" : "Mr. Doe",
    "contactPhone" : "0123-4567829",
    "status" : "ACTIVE",
    "adminName" : "firstAdmin",
    "parent": "parentTenant",
    "customProperties" : {"referenceId":"1234567890"}
}

次の表に、テナント作成リクエストのフィールドとその長さの制限を示します。 フラグメントdomaincompanyは常に提供する必要があります。

フィールド 説明 最長値 必須
company 会社名 256 はい
domain テナントに使用するドメイン名 256 はい
id テナントID。無い場合、自動で生成されます 32 いいえ
adminName テナント管理者のユーザー名 50 いいえ
adminPass テナント管理者のパスワード 32 いいえ
adminEmail 管理者のメールアドレス 254 いいえ
contactName 管理者名など、テナントの連絡先名 30 いいえ
contact_phone 国際電話番号 20 いいえ
customProperties エージェントの一連のカスタムプロパティ いいえ

テナントIDの命名規則は次のとおりです:

テナント

テナント [application/vnd.com.nsn.cumulocity.tenant+json]

名称 種別 発生回数 説明 可視性
self URI 0..1 このリソースへのリンク Public
id String: max length="32” 1 テナントの固有ID Public
status String 1 テナントの状態。可能な値:ACTIVE、SUSPENDED Private
adminName String: max length = “50” 1 管理者ユーザー名。最大1000文字。空白、スラッシュ、特殊文字は使用できません Private
adminEmail String 1 管理者メールアドレス Private
allowCreateTenants boolean 1 このテナントが固有のテナントを作成できるか否か Private
storageLimitPerDevice number 1 ユーザーのデバイス1台当たりストレージ割当量 Private
adminPassword String 1 管理者パスワード Private
sendPasswordResetEmail boolean 1 パスワードリセット許可 Private
domain String: max length = “256” 1 テナントドメインのURL Public
company String: max length = “256” 1 テナントの会社名 Public
contactName String: max length = “30” 1 連絡担当者名 Public
contactPhone String: max length= “20” 1 連絡担当者電話番号 Public
applications ApplicationReferenceCollection 1 テナントがチャネル接続しているアプリケーションのコレクション Private
ownedApplications ApplicationReferenceCollection 1 テナントが所有しているアプリケーションのコレクション Public -(可用性がMARKETのアプリケーションのみ)
customProperties Object 1 カスタムプロパティのリストを維持します optional
parent String 1 親テナント名(このテナントの作成者) Public

現在のテナント

Content-Type: application/vnd.com.nsn.cumulocity.currentTenant+json

フィールド名 タイプ 発生回数 説明
name String 1 テナント
domainName String 1 ドメイン名
allowCreateTenants Boolean 1 テナントがサブテナントを作成できるかどうかを示すフラグ

GET - テナント情報の取得

現在ログイン中のサービスユーザーのテナントをリクエスト

要求されるロール: ROLE_USER_MANAGEMENT_OWN_READ, または ROLE_SYSTEM

応答本体: CurrentTenant

GET /tenant/currentTenant
Host: [hostname]
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Content-Type: application/vnd.com.nsn.cumulocity.currentTenant+json;;ver=...

応答例:

{
    "allowCreateTenants": true,
    "customProperties": {},
    "domainName": "...",
    "name": "..."  
}

この場合、応答プロパティの " name "は実際のテナントIDであることに注意してください。

GET - テナントの表現の取得

応答本体: Tenant

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

リクエスト例: 単一のテナントを取得する

GET /tenant/tenants/<<tenantId>>
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.tenant+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver=...
Content-Length: ...
{
    "adminName": "admin",
    "applications": {
        "references": [],
        "self":"<<ApplicationCollection of This Tenant  URL>>",
    },
    "company": "sample_company",
    "domain": "sample_domain.com",
    "allowCreateTenants": false,
    "storageLimitPerDevice": 10485760,
    "id": "sample_tenant",
    "ownedApplications": {
        "references": [
            {
                "application": {
                    "availability": "PRIVATE",
                    "id": "5",
                    "key": "<<hashed value>>",
                    "name": "sample_private_application",
                    "owner": {
                        "self":"<<Application Owner Tenant URL>>",
                        "tenant": {
                            "id": "sample_tenant"
                        }
                    },
                    "self":"<<Application 5 URL>>",
                    "type": "EXTERNAL"
                },
                "self":"<<This Tenant Application 5 URL>>",
            },
           ...
        ],
        "self":"<<ApplicationCollection of This Tenant URL>>",
    },
    "self":"<<This Tenant URL>>",
"parent": "parentTenant",
    "status": "ACTIVE"
}

PUT - 既存のテナントの更新

リクエスト本体: Tenant

応答本体: Tenant

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN または ROLE_TENANT_MANAGEMENT_UPDATE

リクエスト例:

PUT /tenant/tenants/<<tenantId>>
Host: ...
Authorization: Basic ...
Content-Length: ...
Accept: application/vnd.com.nsn.cumulocity.tenant+json;ver=...
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver=...

{
   "adminName" : "newAdmin"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver=...
Content-Length: ...
{
     "id": "sample_tenant",
     "self":"<<ApplicationCollection of This Tenant URL>>",
    "company": "sample_company",
    "domain": "sample_domain.com",
    "status": "ACTIVE",
    "self":"<<This Tenant URL>>",
    "allowCreateTenants": false,
    "storageLimitPerDevice": 10485760,
    "parent": "parentTenant",
    "ownedApplications": {
        "references": [
            {
                "application": {
                    "availability": "PRIVATE",
                    "id": "5",
                    "key": "<<hashed value>>",
                    "name": "sample_private_application",
                    "owner": {
                        "self":"<<Application Owner Tenant URL>>",
                        "tenant": {
                            "id": "sample_tenant"
                        }
                    },
                    "self":"<<Application 5 URL>>",
                    "type": "EXTERNAL"
                },
                "self":"<<This Tenant Application 5 URL>>",
            },
           ...
        ],
    },
  "adminName" : "newAdmin"
}

adminPass と adminEmail を更新すると、テナントの管理ユーザーの設定を上書きしてしまうことに注意してください。adminName を更新しても変化しません。

DELETE - テナントの表現を削除

重要事項: サブテナントを削除すると復元できません。セキュリティ上の理由から、管理テナントでのみ削除可能です。管理テナント以外のテナントからテナントを削除することはできません。 エンタープライズテナントの管理者は、有効なサブテナントの停止のみを許可され、削除することはできません。

リクエスト本体: N/A

応答本体: N/A

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN

リクエスト例:

DELETE /tenant/tenants/<<tenantId>>
Host: [hostname]
Authorization: Basic xxxxxxxxxxxxxxxxxxx

応答例:

HTTP/1.1  204 NO CONTENT

アプリケーションリファレンスコレクション

アプリケーションリファレンスコレクション [application/vnd.com.nsn.cumulocity.applicationReferenceCollection+json].

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
references ApplicationReference 0..n オプションのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 オプションの前のページへのリンク(あれば)
next URI 0..1 オプションの次のページへのリンク(あれば)

POST - アプリケーションをテナントアプリケーションにPOST

リクエスト例: テナントアプリケーションにアプリケーションリファレンスを追加

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN または ROLE_TENANT_MANAGEMENT_UPDATE

POST /tenant/tenants/<<tenantId>>/applications
Host: ...
Authorization: Basic ...
Content-Type: application/vnd.com.nsn.cumulocity.applicationReference+json;ver=...
{
    "application":{"self":"<<Application URL>>"}
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.applicationReference+json;ver=...
Content-Length: ...
{
    "application":{"self":"<<Application URL>>", "id":...}
}

GET - アプリケーションリファレンスコレクションの表現の取得

応答本体: ApplicationReferenceCollection

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

リクエスト例: アプリケーションリファレンスコレクションを取得する

GET /tenant/tenants/<<tenantId>>/applications
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.applicationReferenceCollection+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.applicationReferenceCollection+json;ver=...
Content-Length: ...
{
  "self" : "<<Collection URL>>",
  "references": [
    {
      "application": {
          "availability": "PRIVATE",
          "id": "5",
          "key": "<<hashed value>>",
          "name": "sample_private_application",
          "owner": {
              "self":"<<Application Owner Tenant URL>>",
              "tenant": {
                  "id": "sample_tenant"
              }
          },
          "self":"<<Application 5 URL>>",
          "type": "EXTERNAL"
      },
      "self":"<<This Tenant Application 5 URL>>",
    },
        ...
  ],
  "statistics" : {
    "totalPages" : 1,
    "pageSize" : 5,
    "currentPage" : 1
  },
  "next" : "...",
  "prev" : "..."
}

アプリケーションリファレンス

アプリケーションリファレンス [application/vnd.com.nsn.cumulocity.applicationReference+json].

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
reference Application 0..n 参照されるアプリケーション

DELETE - アプリケーションリファレンスをテナントのアプリケーションより削除する

応答本体: ApplicationReference

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN

リクエスト例: リファレンスの削除

DELETE /tenant/tenants/<<tenantId>>/applications/<<applicationId>>
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1  204 NO CONTENT

オプションコレクション

オプションコレクション[application/vnd.com.nsn.cumulocity.optionCollection+json].

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
options Option 0..n オプションのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 オプションの前のページへのリンク(あれば)
next URI 0..1 オプションの次のページへのリンク(あれば)

GET - オプションコレクションの表現の取得

応答本体: OptionCollection

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例: オプションを取得する

GET /tenant/options
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...
Content-Length: ...
{
  "self" : "<<Collection URL>>",
  "options": [
        {
            "category": "access.control",
            "key": "allow.origin",
            "self": "<<Option access.control.allow.origin URL>>",
            "value": "*"
        },
        ...
  ],
  "statistics" : {
    "totalPages" : 1,
    "pageSize" : 5,
    "currentPage" : 1
  },
  "next" : "...",
  "prev" : "..."
}

POST オプションの表現のPOST

リクエスト本体: Option

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_ADMIN

リクエスト例: オプションをPOSTする

POST /tenant/options
Host: ...
Authorization: Basic ...
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...
{
    "category" : "alarm.type.mapping",
    "key": "temp_too_high",
    "value": "CRITICAL|temperature too high"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Content-Length: ...
{
    "self" : "<<Option alarm.type.mapping.temp_too_high URL>>"
    "category" : "alarm.type.mapping",
    "key": "temp_too_high",
    "value": "CRITICAL|temperature too high"
}

オプション

オプションはcategory-key-valueのタプルであり、テナント構成設定を保存します。オプションの一部のカテゴリーは新規作成が可能な場合もあれば、既定の一連のキーに限られる場合もあります。

「管理」テナントは、テナントのどのオプションも「編集不可」に設定することができます。 その後、テナントがそのオプションに対して PUT や DELETE リクエストを行おうとすると、403 エラー(無許可ーUnauthorized)が発生します。

デフォルトオプション

カテゴリ キー デフォルト値 既定のみ 説明
access.control allow.origin * はい CORS実行向けに許容されるコンマ区切りドメインリスト。ワイルドカードを使用できます(例:*.cumuclocity.com)
alarm.type.mapping <<alarmType>> いいえ タイプ「<<alarmType>>」のアラームに関する重大度およびアラームテキストをオーバーライドします。重大度およびテキストは「<<alarmSeverity>>&124;<<alarmText>>」として指定されます。テキストのいずれかの部分が空だと、値はオーバーライドされません。重大度が「NONE」の場合、アラームは抑制されます

オプション [application/vnd.com.nsn.cumulocity.option+json]

名称 タイプ 発生回数 説明
self URI 0..1 このリソースへのリンク
category String 1 オプションのカテゴリー
key String 1 オプションのキー
value String 1 オプションの値

備考: キーに「credentials.」プレフィックスを追加すると、オプションの値が暗号化されます。さらに、オプションがマイクロサービスに送信されると、「credentials.」プレフィックスが削除され、値が解読されます。 例えば:

{
    "category": "c8y-tutorial-7",
    "key": "credentials.mykey",
    "value": "myvalue"
}

リクエストにはヘッダーが追加されています:

    "Mykey": "myvalue"

GET - オプションの表現を取得

応答体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例: 単一オプションを取得する

GET /tenant/options/<<category>>/<<key>>
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...
Content-Length: ...
{
    "category": "access.control",
    "key": "allow.origin",
    "self": "<<Option access.control.allow.origin URL>>",
    "value": "*"
}

PUT - オプションの更新

リクエスト本体: Option

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_ADMIN

リクエスト例: access.control.allow.origin オプションを更新する

PUT /tenant/options/<<category>>/<<key>>
Host: ...
Authorization: Basic ...
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...
{
    "value": "http://developer.cumulocity.com"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Content-Length: ...
{
    "category": "access.control",
    "key": "allow.origin",
    "self": "<<Option access.control.allow.origin URL>>",
    "value": "http://developer.cumulocity.com"
}

PUT - 所定のカテゴリー内で複数のオプションを更新

リクエスト本体: Option

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_ADMIN

リクエスト例: 所定のカテゴリー内で複数のオプションを更新する

PUT /tenant/options/<<category>>
Host: ...
Authorization: Basic ...
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...
{
    "key1": "value1",
    "key2": "value2",
    "key3": "value3",
    "key4": "value4"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...

GET - 所定のカテゴリーからオプションを取得

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例: 所定のカテゴリーからオプションを取得する

GET /tenant/options/<<category>>
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...
Content-Length: ...
 {
   "key1": "value1"
   "key2": "value2",
   "key3": "value3",
   "key4": "value4",
 }

PUT - オプションの編集可否の定義

リクエスト本体: Option

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_ADMIN, 要求されるテナント: management

リクエスト例: access.control.allow.origin オプションを更新する

PUT /tenant/options/<<category>>/<<key>>/editable
Host: ...
Authorization: Basic ...
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...
{
    "editable": "false"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.option+json;ver=...
Content-Length: ...
{
    "category": "access.control",
    "key": "allow.origin",
    "self": "<<Option access.control.allow.origin URL>>",
    "value": "http://developer.cumulocity.com"
}

システムオプション

このエンドポイントはプラットフォーム構成設定において既定の一連の読み取り専用プロパティを提供します。応答形式はオプションコレクションの場合と全く同じです。

応答本体: OptionCollection

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例: システムオプションの取得

GET /tenant/system/options
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...
Content-Length: ...
{
  "options": [
        {
            "category": "access.control",
            "key": "allow.origin",
            "value": "*"
        },
        ...
  ],
}

カテゴリとIDをURLに指定して、単一のシステムオプションのクエリもできます。

応答本体: Option

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例: 単一のオプションの取得

GET /tenant/system/option/<<category>>/<<id>>
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.option+json;ver=...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.optionCollection+json;ver=...
Content-Length: ...
{
    "category": "access.control",
    "key": "allow.origin",
    "value": "*"
}

テナント使用状況統計

使用状況統計

名称 タイプ 発生回数 説明
day String 1 統計対象日
deviceCount Number 1 テナント内のデバイス数(c8y_IsDevice)
deviceEndpointCount Number 1 子デバイスのないデバイス数(リーフデバイス)
deviceRequestCount Number 1 テナントに対してデバイスからのみ発行されたリクエストの件数
deviceWithChildrenCount Number 1 デバイス数(すべての子デバイスを含む)
requestCount Number 1 テナントに対して発行されたリクエストの件数
storageSize Number 1 テナントが使用するデータベースストレージ(バイト単位)
subscribedApplications List 1 テナントがチャネル接続しているアプリケーション名

「requestCount」および「deviceRequestCount」はクエリ中に発行されたすべてのリクエストの合計件数を格納します。「deviceCount」および「storageSize」はクエリ中の最後に報告された値を格納します。以下の点にご注意ください。

「deviceRequestCount」 - デバイスリクエストは、「X-Cumulocity-Application-Key」ヘッダーを含まないリクエストとして認識されます。 さらに、/user、/tenant、/application へのAPIリクエストは 「deviceRequestCount」としてカウントされません。

SmartREST と MQTTでのリクエストの統計:

全てのインバウンドデータ転送

インバウンドデータ転送とは、データをThings Cloud IoTプラットフォームへ転送するために実行されたインバウンドリクエストの総数を指します。 これには、RESTまたはMQTT インターフェースを使用してデバイスとThings Cloud IoTプラットフォーム間で転送されるセンサーの読み取り値、アラーム、イベント、コマンドなどが含まれます。 このようなインバウンド要求は、カスタムマイクロサービス、Webサイト、またはその他のクライアントからも発生する可能性があります。

以下の表は、Things Cloudテナントの統計を強化し、インバウンドデータ転送を測定するすべてのカウンタを示しています:

名称 タイプ 説明
measurementsCreatedCount Number 作成されたメジャーメント数。 注記:メジャーメントの一括作成は、各測定値が個別にカウントされるように処理されます
alarmsCreatedCount Number 作成されたアラーム数
alarmsUpdatedCount Number アラームの更新回数
eventsCreatedCount Number 作成されたイベント数
eventsUpdatedCount Number イベントの更新回数
inventoriesCreatedCount Number 作成されたマネージドオブジェクト数
inventoriesUpdatedCount Number マネージドオブジェクトの更新回数
totalResourceCreateAndUpdateCount Number 上記の合計値。(全てのインバウンド転送)

上記のカウンターがどのように増加するかについての詳細は、以下の表をご参照ください。 さらに、MQTTとRESTの両方でインバウンドデータ転送がどのように処理されているかを記載しています。

転送タイプ MQTT カウンター情報 REST カウンター情報
1つのリクエストでのアラームの作成 1つのアラーム作成がカウントされます 1つのアラームの作成がREST経由でカウントされます
アラームの更新(例:ステータスの変更) 1つのアラーム作成がカウントされます 1つのアラームの作成がREST経由でカウントされます
1つのリクエストでの複数のアラームの作成 単一のMQTTリクエストでのアラーム作成がそれぞれカウントされます Things Cloudではサポートされていません (RESTは1回のコールで複数のアラームを生成できません)
一度のリクエストでの複数のアラーム(例:ステータスの変更)の更新 単一のMQTTリクエストでのアラーム作成がそれぞれカウントされます Things Cloudではサポートされていません(RESTは1回のコールで複数のアラームを生成できません)
1つのリクエストでのイベントの作成 1つのイベントの更新がカウントされます 1つのイベントの更新がカウントされます
イベントの更新(テキストの変更など) 1つのイベントの更新がカウントされます 1つのイベントの更新がカウントされます
1つのリクエストでの複数のイベントの作成 単一のMQTTリクエストでのイベント作成がそれぞれカウントされます Things Cloudではサポートされていません(RESTは1回のコールで複数のイベントを生成できません)
一度のリクエストでの複数のイベント(テキストの変更など)の更新 単一のMQTTリクエストでのイベントの更新がそれぞれカウントされます Things Cloudではサポートされていません(RESTは1回のコールで複数のイベントを更新できません)
1つのリクエストでメジャーメントを作成 1つのメジャーメントの作成がカウントされます 1つのメジャーメントの作成がカウントされます
1つのリクエストでの複数のメジャーメントの作成 1つのMQTTリクエストでのメジャーメントの作成がそれぞれカウントされます。
例:MQTTを使用して5つのメジャーメントを報告した場合、メジャーメント作成カウンターは5増加します
RESTでは、複数のメジャーメントを1回のコールで送信することで、複数のメジャーメントの作成をすることができます。この場合、REST経由で送信された各メジャーメントは個別にカウントされます。コール自体はカウントされません。例えば、誰かがRESTを使って1回のコールで5つのメジャーメントを送信した場合、応答カウンターは5ずつ増加します。複数のシリーズを含むメジャーメントは単一メジャーメントとしてカウントされます
1つのリクエストでのマネージドオブジェクトの作成 1つのマネージドオブジェクトの作成がカウントされます 1つのマネージドオブジェクトの作成がカウントされます
マネージドオブジェクトの更新(例:ステータスの変更) 1つのマネージドオブジェクトの更新がカウントされます 1つのマネージドオブジェクトの更新がカウントされます
1つのリクエストでの複数のマネージドオブジェクトの更新 1つのMQTTリクエストでのマネージドオブジェクトの更新がそれぞれカウントされます Things Cloudではサポートされていません(RESTは1回のコールで複数のマネージドオブジェクトを更新できません)
複数のアラーム/メジャーメント/イベント/インベントリを1回のコールで合わせて作成/更新 各MQTT回線は別々に処理されます。1つのイベント/アラーム/メジャーメント/インベントリーの作成/更新であれば、応答カウンターは1つ増えます REST APIではサポートされていません

テナント使用状況統計コレクション [application/vnd.com.nsn.cumulocity.tenantUsageStatisticsCollection+json]

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
usageStatistics UsageStatistics 0..n 使用状況統計のリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 テナントの前のページへのリンク(あれば)
next URI 0..1 テナントの次のページへのリンク(あれば)

GET - テナント使用状況統計コレクションの表現を取得する

クエリパラメーター タイプ
dateFrom datetime
dateTo datetime
dateTill (廃止) datetime

応答本体: TenantUsageStatisticsCollection

要求されるロール: ROLE_TENANT_STATISTICS_READ

リクエスト例: 2014年8月1日から今日までの現在のテナントに関する統計を取得する

GET /tenant/statistics?dateFrom=2014-08-01
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenantUsageStatisticsCollection+json; charset=UTF-8; ver=0.9
Content-Length: ...
{
    "statistics": {
        "currentPage": 1,
        "pageSize": 5,
        "totalPages": 5
    },
    "self": "<<Collection URL>>",
    "usageStatistics": [ {
        "day": "2014-08-12T00:00:00.000+02:00",
        "deviceCount": 5,
        "deviceEndpointCount": 5,
        "deviceRequestCount": 101966,
        "deviceWithChildrenCount": 5,
        "requestCount": 103966,
        "self": "...",
        "storageSize": 1005442845,
    "subscribedApplications": [
            "testadmin"
        ]
    },
    {
        "day": "2014-08-07T00:00:00.000+02:00",
        "deviceCount": 30,
        "deviceEndpointCount": 15,
        "deviceRequestCount": 114378,
        "deviceWithChildrenCount": 38,
        "requestCount": 116378,
        "self": "...",
        "storageSize": 1151862557,
    "subscribedApplications": [
            "testadmin"
        ]
    },
    ...
    ]
}

GET - すべてのテナント使用状況統計サマリーの取得

クエリパラメーター タイプ
dateFrom datetime
dateTo datetime

応答本体: application/json

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

リクエスト例: 2014年8月1日から今日までのすべてのテナントに関する統計を取得する

GET /tenant/statistics/allTenantsSummary?dateFrom=2014-08-01
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: ...
[
    {
        "deviceCount": 5,
        "deviceEndpointCount": 5,
        "deviceRequestCount": 114338,
        "deviceWithChildrenCount": 5,
        "requestCount": 116378,
        "tenantId": "tenant1",
        "storageSize": 1151862557,
    "subscribedApplications": [
            "testadmin"
        ]
    },
    {
        "deviceCount": 2,
        "deviceEndpointCount": 2,
        "deviceRequestCount": 114338,
        "deviceWithChildrenCount": 2,
        "requestCount": 116378,
        "tenantId": "tenant2",
        "storageSize": 1151862557,
    "subscribedApplications": [
            "testadmin"
        ]
    },
    ...
]

テナント使用状況統計サマリー [application/vnd.com.nsn.cumulocity.tenantUsageStatisticsSummary+json]

GET - テナント使用状況統計サマリーの表現を取得する

クエリパラメーター タイプ
dateFrom datetime
dateTo datetime
dateTill (廃止) datetime

応答本体: TenantUsageStatisticsSummary

要求されるロール: ROLE_TENANT_STATISTICS_READ

リクエスト例: 今月の初めから現在までのリクエストおよびデータベース使用状況のサマリーを取得する

GET /tenant/statistics/summary
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenantUsageStatisticsSummary+json; charset=UTF-8; ver=0.9
Content-Length: ...

{
    "self": "...",
    "day": "2014-08-21T00:00:00.000+02:00",
    "deviceCount": 30,
    "deviceEndpointCount": 15,
    "deviceRequestCount": 15006838,
    "deviceWithChildrenCount": 38,
    "requestCount": 15013818,
    "storageSize": 983856925,
"subscribedApplications": [
        "testadmin"
    ]
}