テナント

テナント

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

  • テナントコレクションリソース - 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ヘッダーを使用すべきであり、さもなければ空の応答本体が返されます。

テナントコレクション

TenantCollection [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する

応答本体:テナントコレクション

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

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

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 - 新規テナントの作成

リクエスト本体:テナント

応答本体:テナント

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN or 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",
    "adminEmail" : "john.doe@sample_domain.com",
    "customProperties" : {"referenceId":"1234567890"}
}

各フィールドの制限は以下の表で確認できます。

フィールド タイプ
id VARCHAR(32)
company_name VARCHAR(256)
domain_name VARCHAR(256)
contact_name VARCHAR(30)
contact_phone VARCHAR(20)
administrator VARCHAR(50)

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

  • 小文字、数字、ハイフン、アンダースコアのみが許可されます
  • 英字で始まらなければいけません
  • ハイフン、アンダースコアは文字間でのみ許可されます
  • 最低2文字の長さが必要です

注:adminName、adminPass、およびadminEmailでテナントを作成すると、これらの設定で管理ユーザーが作成されます。テナントIDには、SQLキーワード(例:select,cross,where)は使用できません。

テナント

Tenant [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

テナント情報をGETする

応答本体:テナント

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

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

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 - 既存のテナントを更新する

リクエスト本体:テナント

応答本体:テナント

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN or 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: ...
     "self":"<<ApplicationCollection of This Tenant URL>>",
    "company": "sample_company",
    "domain": "sample_domain.com",
    "status": "ACTIVE",
    "self":"<<This Tenant URL>>",
    "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

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

ApplicationReferenceCollection [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する

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

要求されるロール: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する

応答本体:アプリケーションリファレンスコレクション

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

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

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" : "..."
}

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

ApplicationReference [application/vnd.com.nsn.cumulocity.applicationReference+json].

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

アプリケーションリファレンスをテナントのアプリケーションからDELETEする

応答本体:アプリケーションリファレンス

要求されるロール: ROLE_TENANT_MANAGEMENT_ADMIN

リクエスト例:リファレンスをDELETEする

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

応答例:

HTTP/1.1  204 NO CONTENT

オプションコレクション

OptionCollection [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する

応答本体:オプションコレクション

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

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

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する

リクエスト本体:オプション

応答本体:オプション

要求されるロール: 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」の場合、アラームは抑制されます。

Option [application/vnd.com.nsn.cumulocity.option+json]

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

オプションをGETする

応答本体:オプション

要求されるロール: ROLE_OPTION_MANAGEMENT_READ リクエスト例:単一のオプションをGETする

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 - オプションを更新する

リクエスト本体:オプション

応答本体:オプション

要求されるロール: 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 - 提供されたカテゴリー内で複数のオプションを更新する

リクエスト本体:オプション

応答本体:オプション

要求されるロール: 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する

応答本体:オプション

要求されるロール: ROLE_OPTION_MANAGEMENT_READ リクエスト例:所定のカテゴリーからオプションをGETする

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"
}

システムオプション

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

応答本体:オプションコレクション

要求されるロール: ROLE_OPTION_MANAGEMENT_READ

リクエスト例:システムオプションをGETする

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に指定して、単一のシステムオプションのクエリもできます。

応答本体:オプション

要求されるロール: ROLE_OPTION_MANAGEMENT_READ リクエスト例: 単一のオプションをGETする

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"はクエリ期間中の最後に報告された値を格納します。以下の点にご注意ください。

  • "storageSize"はあなたの保持ルールに影響されます。また、Things Cloud内で実行中のデータベース最適化機能の定期的な実行にも影響されます.サイズが減少しても、必ずしもデータが削除されたことを意味するとは限りません。
  • 日数はサーバーのタイムゾーンに従います。

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

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

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

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

名称 種別 説明
measurementsCreated 数値 作成されたメジャーメント数。 注:メジャーメントの一括作成は、各測定値が個別にカウントされるように処理されます。
alarmsCreated 数値 作成されたアラーム数。
alarmsUpdated 数値 アラームの更新数。
eventsCreated 数値 作成されたイベント数。
eventUpdates 数値 イベントの更新数。
managedObjectsCreated 数値 作成されたマネージドオブジェクト数。
managedObjectUpdates 数値 マネージドオブジェクトの更新数。
totalInboundTransfers 数値 上記の合計値。(全てのインバウンド転送)

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

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

TenantUsageStatisticsCollection [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する

クエリパラメータ type
dateFrom(含む) datetime
dateTill(含む) datetime

応答本体:テナント使用状況統計コレクション

要求されるロール: ROLE_TENANT_STATISTICS_READ

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

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する

クエリパラメータ type
dateFrom datetime
dateTo datetime

応答本体: application/json

要求されるロール: ROLE_TENANT_MANAGEMENT_READ

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

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する

クエリパラメータ type
dateFrom datetime
dateTill datetime

応答本体:テナント使用状況統計サマリー

要求されるロール: ROLE_TENANT_STATISTICS_READ

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

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"
    ]
}

現在のテナント

現在のテナント

[application/vnd.com.nsn.cumulocity.currentTenant+json]

フィールド名 種別 発生回数 説明
name String 1 テナント
domainName String 1 ドメイン名
allowCreateTenants Boolean 1 テナントがサブテナントを作成できるかの表わすフラグ

現在のテナントをGETする

現在ログインしているサービスユーザーのテナントの要求

要求されるロール: ROLE_USER_MANAGEMENT_OWN_READ, or ROLE_SYSTEM

応答本体: CurrentTenant

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

応答例

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