Create a Policy
Create a Policy with the ID specified by the <namespace>/<policyName> pair in the topic and the 
 JSON representation provided in the value.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/create | 
| path | / | 
| value | The complete Policy as JSON object, see Policy representation (JSON). | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/create | |
| path | / | |
| value | The created Policy as JSON object, see Policy representation (JSON). | |
| status | code | |
| 201 | Success - The Policy was successfully created. | 
Example: Create a Policy.
Create or modify a Policy
This command modifies the Policy with the ID specified by the <namespace>/<policyName> pair in the topic and with the
 JSON provided in the value, if it already exists. Otherwise, the Policy is created.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | / | 
| value | The complete Policy as JSON. see Policy representation (JSON) | 
For modifying an existing policy, the authorized subject needs WRITE permission on the policy:/. resource.
If the Policy does not yet exist, the same rules apply as described for the create command.
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | / | |
| value | The created Policy as JSON object, see Policy representation (JSON). This field is not available, if the Policy entry already existed. | |
| status | code | |
| 201 | Success - The Policy was successfully created. | |
| 204 | Success - The Policy was successfully updated. | 
Example: Modify a Policy
Modify Policy entries
Modify the Policy entries of the Policy identified by the <namespace>/<policyName> pair in the topic field.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries | 
| value | The Policy entries as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries | |
| status | code | |
| 204 | Success - The Policy entries were successfully updated. | 
Example: Modify all Policy entries
Create or modify a Policy entry
Create or modify the Policy entry identified by the <namespace>/<policyName> pair in the topic field and the <label> in
 the path field.
If you specify a new label, the respective Policy entry will be created. 
If you specify an existing label, the respective Policy entry will be updated.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries/<label> | 
| value | The Policy entry as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries/<label> | |
| value | The created Policy entry as JSON object, see Policy representation (JSON). This field is not available, if the Policy entry already existed. | |
| status | code | |
| 201 | Success - The Policy entry was successfully created. | |
| 204 | Success - The Policy entry was successfully updated. | 
Example: Modify a single Policy entry
Modify all subjects
Modify at once all subjects of the Policy entry identified by the <namespace>/<policyName> pair in the topic 
field and by the <label> in the path topic.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries/<label>/subjects | 
| value | The subjects of the policy as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries/<label>/subjects | |
| status | code | |
| 204 | Success - The subjects of the policy were successfully updated. | 
Example: Modify all subjects
Create or modify a single subject
Create or modify the subject with ID subjectId of the Policy identified by the <namespace>/<policyName> pair in the
 topic field and by the <label> and the <subjectId> in the path field.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries/<label>/subjects/<subjectId> | 
| value | The subject of the policy as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries/<label>/subjects/<subjectId> | |
| value | The created subject as JSON object, see Policy representation (JSON). This field is not available, if the subject already existed. | |
| status | code | |
| 201 | Success - The subject was successfully created. | |
| 204 | Success - The subject was successfully updated. | 
Example: Modify a single subject
Modify all resources
Modify all resources of the Policy identified by the <namespace>/<policyName> pair in the topic field and by the <label> in the path field.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries/<label>/resources | 
| value | The resources of the policy as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries/<label>/resources | |
| status | code | |
| 204 | Success - The Policy resources were successfully updated. | 
Example: Modify all resources
Create or modify a single resource
Create or modify the resource identified by the path field of the Policy entry identified the 
<namespace>/<policyName> pair in the topic field and the <resource> in the path field.
Command
| Field | Value | 
|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | 
| path | /entries/<label>/resources/<resource> | 
| value | The Policy resource as JSON. see Policy representation (JSON) | 
Response
| Field | Value | |
|---|---|---|
| topic | <namespace>/<policyName>/policies/commands/modify | |
| path | /entries/<label>/resources/<resource> | |
| value | The created Policy resource as JSON object, see Policy representation (JSON). This field is not available, if the resource already existed. | |
| status | code | |
| 201 | Success - The resource was successfully created. | |
| 204 | Success - The resource was successfully updated. | 
Example: Modify a single resource
Common errors
| status | Value | 
|---|---|
| 400 | Bad Format - The request could not be completed due to malformed request syntax. | 
| 401 | Unauthorized - The request could not be completed due to missing authentication. | 
| 403 | Forbidden - The Policy could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | 
| 404 | Not Found - The request could not be completed. The Policy with the given ID was not found in the context of the authenticated user. | 
| 412 | Precondition Failed - A precondition for reading or writing the (sub-)resource failed. This will happen for write requests, if you specified an If-Match or If-None-Match header, which fails the precondition check against the current ETag of the (sub-)resource. | 
| 413 | Request Entity Too Large - The created or modified entity is larger than the accepted limit of 100 kB. | 
| See Policy Error Responses for examples of other error responses. |