保持ルール

保持ルール

保持データをデータベースから1日1回削除するためのルールが使用されます。 削除対象となるデータは保持ルールを直接示します。 例えば、dataType=EVENTおよびmaximumAge=30とする保持ルールは、30日間を経過したイベントをすべてシステムから削除します。 保持ルールインターフェースは以下の3つの要素で構成されます。

  • 保持ルールコレクションリソースは、URL「/retention/retentions」によりアクセス可能な保持ルールを読み出します。
  • 保持ルールコレクションリソースは、URL「/retetion/retentions/{retentionRuleId}」によりアクセス可能、閲覧可能な個別の保持ルールを読み出します。

保持ルールコレクション

RetentionRuleCollection [application/vnd.com.nsn.cumulocity.retentionRuleCollection+json]

名称 種別 発生回数 説明
self URI 1 このリソースへのリンク
retentionRules RetentionRule 0..n 保持ルールのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 テナントの潜在的な前のページへのリンク
next URI 0..1 テナントの潜在的な次のページへのリンク

保持ルールコレクションの表現をGETする

応答本体:保持ルールコレクション

多くの場合、テナントIDは Things Cloud へアクセスするために使用しているURLの先頭部分に相当します。例えば、「mytenant.cumulocity.com」をURLとしてお使いの場合、"mytenant"がテナントIDに当たります。 とはいえ、Things Cloud ではURLのホスト名とテナントIDが異なるケースもありうることに注意してください。デバイスエージェントなどユースケースが特定されない開発では、ホスト名とテナント名を別々に設定できるよう設計し、Authorization ヘッダーにテナントIDを含められるようにすべきです。

リクエスト例:保持ルールをsample_tenantとしてGETする

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

応答例:

HTTP/1.1 200 OK
{
"statistics": {
    "currentPage": 1,
    "pageSize": 5,
    "totalPages": 1
},
"retentionRules": [
    {
        "dataType": "ALARM",
        "fragmentType": "fragmentType",
        "id": 1,
        "maximumAge": 12,
        "self": "<<URL of retentionRule>>",
        "source": "source",
        "type": "type"
    },
    {
        "dataType": "ALARM",
        "fragmentType": "fragmentType",
        "id": 2,
        "maximumAge": 12,
        "self": "<<URL of retentionRule>>",
        "source": "source",
        "type": "type"
    },
    {
        "dataType": "*",
        "fragmentType": "*",
        "id": 5,
        "maximumAge": 12,
        "self": "<<URL of retentionRule>>",
        "source": "*",
        "type": "*"
    },
    {
        "dataType": "ALARM",
        "fragmentType": "fragmentTypeUpdated",
        "id": 3,
        "maximumAge": 24,
        "self": "<<URL of retentionRule>>",
        "source": "source",
        "type": "type"
    }
],
"self": "<<URL of current page>>"
}

POST - 新規保持ルールを作成する

リクエスト本体:保持ルール

応答本体:保持ルール

要求されるロール:ROLE_RETENTION_RULE_ADMIN

リクエスト例(全体POST):

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

{
    "dataType":"ALARM",
    "fragmentType":"fragmentType",
    "type":"type",
    "source":"source",
    "maximumAge":"12"
}

応答例(全体POST):

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

{
    "id" : "<<ID of new retetionRule>>",
    "self" : "<<URL of new retetionRule>>",
    "dataType":"ALARM",
    "fragmentType":"fragmentType",
    "type":"type",
    "source":"source",
    "maximumAge":"12",
    "editable":"true"
}

リクエスト例(部分POST):

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

{
    "dataType":"ALARM",
    "maximumAge":"12"
}

応答例 (部分POST):

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

{
    "id" : "<<ID of new retetionRule>>",
    "self" : "<<URL of new retetionRule>>",
    "dataType":"ALARM",
    "fragmentType":"*",
    "type":"*",
    "source":"*",
    "maximumAge":"12",
    "editable":"true"
}

保持ルール

RetentionRule [application/vnd.com.nsn.cumulocity.retentionRule+json]

名称 種別 発生回数 説明 可視性
self URI 0..1 このリソースへのリンク Public
id Long 1 RetentionRulle id. Public
dataType String 0..1 保持ルールはこのドキュメント種別に適用されます。可能な値:ALARM、AUDIT、EVENT、MEASUREMENT、OPERATION * Public
fragmentType String 0..1 保持ルールはfragmentTypeを有するドキュメントに適用されます。 Public
type String 0..1 保持ルールは種別を有するドキュメントに適用されます。 Public
source String 0..1 保持ルールはソースを有するドキュメントに適用されます。 Public
maximumAge Long 1 最長ドキュメント保持日数 Public
editable boolean 1 ルールが編集可能かを示します。マネジメントテナントのみで更新できます。 Public
  • 保持ルール内のフィールドは論理演算子ANDによって結合されます。
  • dataType、fragmentType、type、sourceのフィールドは値を「 」に設定することができます。値が「 」に設定されたフィールドは照合時にすべてに適合します。

保持ルールをGETする

応答本体:保持ルール

要求されるロール:ROLE_RETENTION_RULE_READ

リクエスト例:単一の保持ルールをGETする

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

応答例:

HTTP/1.1 200 OK
Content-Length: ...

{
    "dataType": "EVENT",
    "fragmentType": "*",
    "id" : "<<ID of new retetionRule>>",
    "maximumAge": 12,
    "self" : "<<URL of new retetionRule>>",
    "source": "source",
    "type": "*",
    "editable":"true"

PUT - 既存の保持ルールを更新する

リクエスト本体:保持ルール

応答本体:保持ルール

要求されるロール:ROLE_RETENTION_RULE_ADMIN

リクエスト例:

PUT ...
Host: ...
Authorization: Basic ...
Content-Length: ...
Accept: application/vnd.com.nsn.cumulocity.retentionRule+json;ver=...
Content-Type: application/vnd.com.nsn.cumulocity.retentionRule+json;ver=...
{
    "fragmentType":"fragmentTypeUpdated"
}

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.tenant+json;ver=...
Content-Length: ...
    "dataType": "EVENT",
    "fragmentType": "fragmentTypeUpdated",
    "id" : "<<ID of new retetionRule>>",
    "maximumAge": 12,
    "self" : "<<URL of new retetionRule>>",
    "source": "source",
    "type": "*",
    "editable":"true"
}

保持ルールをDELETEする

リクエスト本体:N/A

応答本体:N/A

要求されるロール:ROLE_RETENTION_RULE_ADMIN

リクエスト例:

DELETE [URL to the resource]
Host: [hostname]
Authorization: Basic xxxxxxxxxxxxxxxxxxx

応答例:

HTTP/1.1  204 NO CONTENT