Generate and Validate Operations for Specific objects

Last modified 21 Feb 2024 20:39 +01:00


Request to validate or generate a value for a specific object on midPoint. The operations url in this case contains a unique identifier of the object, for which we generate/validate a value and also the endpoint part of the URI of the object.


For the request use the HTTP POST for the request.

The client has to provide the type of the web resource used in the request "{endpoint}" and the oid of the specific object for which we execute the operation "{oid}".

Generate operation
POST http://localhost:8080/midpoint/ws/rest/{endpoint}/{oid}/generate
Validate operation
POST http://localhost:8080/midpoint/ws/rest/{endpoint}/{oid}/validate


Regarding authorization type, the "Basic" Authorization header should be used.

Authorization header example replace {Base64EncodedCredentials} with the encoded credentials
Authorization: Basic {Base64EncodedCredentials}

Another header would be the Content-Type Header.

Content-Type header example, other media types are supported as well
"Content-Type: application/json"

You might need to specify the accepted type of content in case you are interested in a format different from xml (default)

Accept type header example, other media types are supported as well
"Accept: application/json"
For supported media types please refer to the following section of the documentation

Supported Media Types


The body should contain a payload consisting of a policyItemDefinition type of object. Based on the use case you might need to specify which value policy should be used for the operation or which item should be the target of the operation. Please see the examples below.


There are no supported operation options for this type of operation.


Error code Meaning


Information. Stay tuned, operation is in progress.


Success. Operation finished successfully. There are two custom codes:

  • 250 for partial error which means that during processing some error occurred but some changes was executed.

  • 240 for handled error which means that there was originally error, but midPoint was able to fix this using its consistency mechanism.

In this two cases, midPoint returns the OperationResult where there details of executed operations can be found.


Redirection or "in progress". This is returned mostly to indicate two cases:

  • Operation has finished, but the results are not in this resource. Redirection is issues to point the client to the results. Typical example is creation of an object with POST to a collection web resource. In this case a new object is created, new URI is assigned and the client is redirected to this URI. Retrieving that URI provides created object and 200 status code, indicating that the operation is finished.

  • Operation is in progress (asynchronous operation). In this case midPoint API redirects the client to a task object that can be used to track progress of the operation.


Client errors. The client has sent request that cannot be processed. This indicates usual situation that are well handled by the midPoint code. Maybe the client request to create conflicting object, delete non-existent object, modification that violates the schema and so on. The OperationResult structure is usually provided in the response to provide more details about the situation.


Server errors. Situations that the server cannot handle and where the cause is unknown. This usually means bugs in the code, insufficient resources such as RAM or disk space, unforeseen failures in the infrastructure and so on. The OperationResult structure might or might not be provided in this case. Some errors are so severe that the structured error information might not be available.

Status codes and the indication of errors and asynchronous processing applies uniformly to all midPoint web resources (both RESTful and RPC).

Access Authorization




Generate identifier for Role type object
# Authenticating with the credentials "administrator" and password "y0uR_P455woR*d" on a localhost instance running on port 8080
 curl --user administrator:y0uR_P455woR*d -H "Accept: application/json" -H "Content-Type: application/json" -X POST http://localhost:8080/midpoint/ws/rest/roles/ae660563-11e6-41e1-8920-82725cc77021/generate --data-binary @pathToMidpointGit\samples\rest\policy-items-identifier-generate.json -v
Show data source example for "Generate identifier for object" | GitHub
	"policyItemsDefinition": {
		"policyItemDefinition": {
			"target": {
				"path": "identifier"
			"execute": "true"

The response is an HTTP 200 code in case of success with a response body.

Show example output for "Generate identifier for object"
  "@ns" : "",
  "object" : {
    "@type" : "",
    "policyItemDefinition" : [ {
      "target" : {
        "path" : "identifier"
      "value" : {
        "@type" : "xsd:string",
        "@value" : "s2cMJrD5^21"
      "execute" : true
    } ]
Was this page helpful?
Thanks for your feedback