Management APIでは次のことができます :

  • サービスとサブサービスの作成、一覧表示、削除
  • ユーザの作成、一覧表示、更新、削除
  • サービス中のユーザにロールを割り当ておよび割り当て解除

これらの操作のほとんどは管理ポータルで利用できますが、動的サービスとユーザ作成をアプリケーションと統合する場合を除き、Management APIを使用する必要はありません。

サービスを作成

まず、サービスを作成する必要があります。これを行うには、IoT Stack 管理トークンが必要であることに注意してください。例では {{admin-token}} と記載されています :

POST /orc/service/ HTTP/1.1
Host: test.ttcloud.net:8008
X-Auth-Token: {{admin-token}}
Content-Type: application/json

{
    "NEW_SERVICE_NAME":"{{Fiware-Service}}",
    "NEW_SERVICE_DESCRIPTION":"new subservice"
}

次の手順に関連する {{service-id}} のレスポンスを受け取ります :

HTTP 201 CREATED
Content-Type: application/json

{
  "id": "5e333fcadadc4707b2a3b26e73c07b69"
}

サブサービスを作成

1つのサービスがあれば、その上でデータを分割して新しいサブサービスを作成することができます :

POST /orc/service/{{service-id}}/subservice HTTP/1.1
Host: test.ttcloud.net:8008
X-Auth-Token: {{admin-token}}
Content-Type: application/json

{
    "SERVICE_NAME":"{{Fiware-Service}}",
    "NEW_SUBSERVICE_NAME":"{{Fiware-ServicePath}}",
    "NEW_SUBSERVICE_DESCRIPTION":"new subservice"
}

サブサービスを識別する {{subservice-id}} を受け取ります :

HTTP 201 CREATED
Content-Type: application/json

{
  "id": "2a3b26e73c07b695e333fcadadc4707b"
}

ユーザを作成

サービスが作成されると、次のようにユーザーを作成できます :

POST /orc/service/{{service-id}}/user HTTP/1.1
Host: test.ttcloud.net:8008
X-Auth-Token: {{admin-token}}
Content-Type: application/json

{
    "NEW_SERVICE_USER_NAME":"{{subservice-user-name}}",
    "NEW_SERVICE_USER_PASSWORD":"{{subservice-user-pass}}",
    "NEW_SERVICE_USER_EMAIL":"{{user-email}}",
    "NEW_SERVICE_USER_DESCRIPTION":"an user description"
}

このユーザはサービスまたはサブサービスに関連付けられていないため、サブサービスにロールを割り当てます。

まず、サブサービスでデフォルトで作成されたロールを取得します :

GET /orc/service/{{service-id}}/role HTTP/1.1
Host: test.ttcloud.net:8008
X-Auth-Token: {{admin-token}}
Content-Type: application/json

レスポンスにロールのリストが表示されます :

HTTP 20O OK
Content-Type: application/json

{
  "totalResults": 2,
  "roles": [
    {
      "domain_id": "669b1e1a3e6c41ee9a1cbe5ab5165f6e",
      "name": "SubServiceCustomer",
      "id": "02f33ab1af5b473aa51d71618ccfad84"
    },
    {
      "domain_id": "669b1e1a3e6c41ee9a1cbe5ab5165f6e",
      "name": "SubServiceAdmin",
      "id": "cbae0186206f4a5a8d00f271ac4e0b4e"
    }
  ]
}

これらのロールのアクセス許可は次のとおりです :

  • SubServiceCustomer : FIWARE IoT Stack に格納されたデータを照会できる
  • SubServiceAdmin : FIWARE IoT Stackでデータのクエリと更新ができる

これらのロールID はサブサービスごとに固有なので、それらを取得する必要があることに注意してください。

サブサービスのロールIDがわかれば、前に作成したユーザーに1つの役割を割り当てることができます :

POST /orc/service/{{service-id}}/role_assignments HTTP/1.1
Host: test.ttcloud.net:8008
X-Auth-Token: {{admin-token}}
Content-Type: application/json

{
    "SUBSERVICE_ID":"{{subservice-id}}",    
    "ROLE_ID":"{{role-id}}",
    "SERVICE_USER_ID":"{{user-id}}"
}

次のように、No Contentレスポンスが送信されます :

HTTP 204 NO CONTENT

詳細情報

IoT Orchestrator apiary のAPIドキュメントのリファレンスで、この関数を提供する FIWARE コンポーネントに関する詳細情報を得ることができます。