Box Developerドキュメント

リテンションポリシーを割り当て

post
https://api.box.com/2.0
/retention_policy_assignments

リテンションポリシーを項目に割り当てます。

リクエスト

bearer [ACCESS_TOKEN]
application/json

リクエスト本文

object本文内

ポリシーを割り当てる項目

string本文内必須
"6564564"

ポリシーを割り当てる項目のID。typeenterpriseに設定されている場合は、nullに設定するか省略します。

string本文内必須
"metadata_template"

ポリシーを割り当てる項目のタイプ。

次の値のいずれか1つ: enterprise,folder,metadata_template

object array本文内省略可能

assign_toのタイプがmetadata_templateの場合は、必要に応じてfilter_fieldsパラメータを追加します。このパラメータには、フィールドエントリと値エントリを含むオブジェクトの配列が必要になります。現在、fieldおよびvalueのオブジェクトは1つだけサポートされています。

string本文内省略可能
"a0f4ee4e-1dc1-4h90-a8a9-aef55fc681d4"

メタデータ属性キーID。

string本文内省略可能
"0c27b756-0p87-4fe0-a43a-59fb661ccc4e"

メタデータ属性フィールドID。値については、列挙型とmultiselect型のみがサポートされています。

string本文内必須
"173463"

割り当てるリテンションポリシーのID

string本文内省略可能
"upload_date"

リテンションポリシー割り当ての開始日。

assigned_toのタイプがmetadata_templateの場合、このフィールドには、日付フィールドのメタデータ属性キーIDを指定できます。

レスポンス

新しいリテンションポリシー割り当てオブジェクトを返します。

企業にリテンションポリシーを割り当てている最中にidが指定された場合は、エラーを返します。

start_date_fieldが存在するものの、assign_to.typemetadata_templateでない場合は、エラーを返します。

start_date_fieldが存在するものの、assign_to.idで指定されたものとは異なるメタデータテンプレートに属している場合は、エラーを返します。

start_date_fieldが存在するものの、retention_policyretention_lengthが「indefinite」である場合は、エラーを返します。

start_date_fieldが存在するものの、有効なメタデータの日付フィールドに解決できない場合は、エラーを返します。

指定したpolicy_idを持つリテンションポリシーが存在しない場合は、エラーを返します。

期間が同じであるか、それよりも長いリテンションポリシーがこの項目にすでに割り当てられている場合は、エラーを返します。

予期しないクライアントエラー。

post
リテンションポリシーを割り当て
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X POST "https://api.box.com/2.0/retention_policy_assignments" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "policy_id": "173463",
       "assign_to": {
         "type": "folder",
         "id": "6564564"
       }
     }'
TypeScript Gen
await client.retentionPolicyAssignments.createRetentionPolicyAssignment({
  policyId: retentionPolicy.id,
  assignTo: {
    id: folder.id,
    type: 'folder' as CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField,
  } satisfies CreateRetentionPolicyAssignmentRequestBodyAssignToField,
} satisfies CreateRetentionPolicyAssignmentRequestBody);
Python Gen
client.retention_policy_assignments.create_retention_policy_assignment(
    retention_policy.id,
    CreateRetentionPolicyAssignmentAssignTo(
        id=folder.id, type=CreateRetentionPolicyAssignmentAssignToTypeField.FOLDER.value
    ),
)
.NET Gen
await client.RetentionPolicyAssignments.CreateRetentionPolicyAssignmentAsync(requestBody: new CreateRetentionPolicyAssignmentRequestBody(policyId: retentionPolicy.Id, assignTo: new CreateRetentionPolicyAssignmentRequestBodyAssignToField(type: CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.Folder) { Id = folder.Id }));
Java
// Assign the policy to the entire enterprise
BoxRetentionPolicy policy = new BoxRetentionPolicy(api, policyID);
policy.assignToEnterprise();

// Assign the policy to a single folder
BoxFolder folder = new BoxFolder(api, folderID);
policy.assignTo(folderID);

// Assign the policy to all items with metadata template
String metadataTemplateID = "f0dce190-8106-43ca-9d67-7dce9b10a55e";
policy.assignToMetadataTemplate(metadataTemplateID);
// You can also pass an optional `startDateField` parameter containing the ID of the metadata template's `date` field
String dateFieldID = "fb523725-04b1-4502-b871-eac305274533";
policy.assignToMetadataTemplate(metadataTemplateID, dateFieldID);
Python
folder = client.folder(folder_id='1111')
assignment = client.retention_policy(retention_id='12345').assign(folder)
print(f'Assignment ID is {assignment.id} and it is assigned by {assignment.assigned_by.name}')
.NET
var assignmentParams = new BoxRetentionPolicyAssignmentRequest()
{
    PolicyId = "11111",
    AssignTo = new BoxRequestEntity()
    {
        Type = BoxType.folder,
        Id = "22222"
    }
};
BoxRetentionPolicyAssignment assignment = await client.RetentionPoliciesManager
    .CreateRetentionPolicyAssignmentAsync(assignmentParams);
Node
client.retentionPolicies
	.assign('11111', 'folder', '22222')
	.then((assignment) => {
		/* assignment -> {
			type: 'retention_policy_assignment',
			id: '12345',
			retention_policy:
			{ type: 'retention_policy',
				id: '11111',
				policy_name: 'Tax Documents' },
			assigned_to: { type: 'folder', id: '22222' },
			assigned_by:
			{ type: 'user',
				id: '33333',
				name: 'Example User',
				login: 'user@example.com' },
			assigned_at: '2015-07-20T14:28:09-07:00' }
		*/
	});
iOS
client.retentionPolicy.assign(policyId: "12345",  assignedContentId: "1111", assignContentType: .folder) { result in
    guard case let .success(retentionPolicyAssignment) = result else {
        print("Error creating retention policy assignment")
        return
    }
    
    print("Retention policy assignment: \(retentionPolicyAssignment.id) was created")
}

レスポンスの例

{
  "id": "11446498",
  "type": "retention_policy_assignment",
  "assigned_at": "2012-12-12T10:53:43-08:00",
  "assigned_by": {
    "id": "11446498",
    "type": "user",
    "login": "ceo@example.com",
    "name": "Aaron Levie"
  },
  "assigned_to": {
    "id": "a983f69f-e85f-4ph4-9f46-4afdf9c1af65",
    "type": "metadata_template"
  },
  "filter_fields": [
    {
      "field": "a0f4ee4e-1dc1-4h90-a8a9-aef55fc681d4",
      "value": "0c27b756-0p87-4fe0-a43a-59fb661ccc4e"
    }
  ],
  "retention_policy": {
    "id": "12345",
    "type": "retention_policy",
    "disposition_action": "permanently_delete",
    "policy_name": "Some Policy Name",
    "retention_length": "365"
  },
  "start_date_field": "upload_date"
}