Bulk Update Generic Action#
Action |
bulk_update (1) |
---|---|
title |
First task: Obtain the URL and schema needed to construct the payload to modify the resource. |
method |
GET |
URL |
/api/<resource_type>/<resource_name>/bulk_update/ |
Parameters |
hierarchy=[hierarchy], format=json |
Response |
Returns: POST call that is used to update the instances of resource schema that is used to create POST payload. |
support_async |
false |
class |
update |
Action |
bulk_update (2) |
---|---|
title |
Second task: Perform the bulk modify on the required list of instances each with [pkid] with the payload constructed from the schema in the first task. |
method |
POST |
URL |
/api/<resource_type>/<resource_name>/bulk_update/ |
Parameters |
hierarchy=[hierarchy], format=json |
Payload |
Contains update data and instance pkids to update. |
Use the GET request to obtain a list of instance pkids to select for the bulk update:
GET /api/<resource_type>/<resource_name>/?hierarchy=[hierarchy]&format=json
As an example, the request below shows the required details for a particular model. (Using variables [hierarchy], [pkid1], [pkid2])
Request for POST call and schema:
GET /api/data/AccessProfile/bulk_update/
?hierarchy=[hierarchy]
&schema_rules=true
&format=json
&schema=1
Response snippet - POST call:
"bulk_update": {
"class": "update",
"href": "/api/data/AccessProfile/bulk_update/?hierarchy=[hierarchy]",
"method": "POST",
"support_async": true,
"title": "Bulk Modify"
}
Response snippet - schema:
"schema": {
"$schema": "http://json-schema.org/draft-03/schema",
"properties": {
"description": {
"description": "A description for the Access Profile.",
"required": false,
"title": "Description",
"type": "string"
},
"full_access": {
"description": "Enabling this flag, grants the user full
system access.",
"required": false,
"title": "Full Access",
"type": "boolean"
},
"miscellaneous_permissions": {
"description": "The list of miscellaneous operations permitted by
this Access Profile.",
"items": {
"choices": [
{
"title": "",
"value": ""
}
],
"type": "string"
},
"required": false,
"title": "Miscellaneous Permissions",
"type": "array"
},
"name": {
"description": "The name that is given to the Access Profile.",
"required": false,
"title": "Name \*",
"type": "string"
},
"type_specific_permissions": {
"description": "The list of types that are permitted by
this Access Profile.",
"items": {
"properties": {
"operations": {
"description": "The operations that are permitted by this Access
Profile for the given type.",
"items": {
"choices": [
{
"title": "",
"value": ""
}
],
"type": "string"
},
"required": false,
"title": "Permitted Operations \*",
"type": "array"
},
"type": {
"choices": [],
"description": "The type that is permitted by this Access Profile.
This field supports the use of the * wildcard.",
"format": "uri",
"required": false,
"target": "/api/choices/?hierarchy=[hierarchy]&format=json",
"target_model_type": "",
"title": "Permitted Type \*",
"type": "string"
}
},
"type": "object"
},
"required": false,
"title": "Type Specific Permissions",
"type": "array"
}
},
"schema_version": "0.1.8",
"type": "object"
},
Example POST request to carry out the update:
POST /api/data/AccessProfile/bulk_update/
?hierarchy=[hierarchy]
&nowait=true
&format=json
Payload example - bulk updating the description of instances having pkid1, pkid2 with the string “profile”:
{"data":{"description":"profile"},
"meta":{
"references":{
"form_href":"/api/data/AccessProfile/bulk_update/
?hierarchy=[hierarchy]
&schema=
&schema_rules=true"
}
},
"request_meta":{
"hrefs":[
"/api/data/AccessProfile/[pkid1]",
"/api/data/AccessProfile/[pkid2]"
]
}
}