Reassign Identities or Items
POSThttps://sailpoint.api.identitynow.com/v3/certifications/:id/reassign
This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.
Request
Path Parameters
The identity campaign certification ID
- application/json
Bodyrequired
reassign object[]required
The ID of the identity to which the certification is reassigned
ef38f94347e94562b5bb8424a56397d8
The reason comment for why the reassign was made
reassigned for some reason
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- 500
An identity campaign certification details after completing the reassignment.
- application/json
- Schema
- Example (auto)
Schema
STAGED
: The campaign is waiting to be activated.ACTIVE
: The campaign is active.SIGNED
: The reviewer has signed off on the campaign, and it is considered complete.
id of the certification
2c9180835d2e5168015d32f890ca1581
name of the certification
Source Owner Access Review for Employees [source]
campaign object
Have all decisions been made?
true
The number of identities for whom all decisions have been made and are complete.
5
The total number of identities in the Certification, both complete and incomplete.
10
created date
2018-06-25T20:22:28.104Z
modified date
2018-06-25T20:22:28.104Z
The number of approve/revoke/acknowledge decisions that have been made.
20
The total number of approve/revoke/acknowledge decisions.
40
The due date of the certification.
2018-10-19T13:49:37.385Z
The date the reviewer signed off on the Certification.
2018-10-19T13:49:37.385Z
reviewer object
reassignment objectnullable
Identifies if the certification has an error
false
Description of the certification error
The certification has an error
The current phase of the campaign.
Possible values: [STAGED
, ACTIVE
, SIGNED
]
ACTIVE
{
"id": "2c9180835d2e5168015d32f890ca1581",
"name": "Source Owner Access Review for Employees [source]",
"campaign": {
"id": "ef38f94347e94562b5bb8424a56397d8",
"name": "Campaign Name",
"type": "CAMPAIGN",
"campaignType": "MANAGER",
"description": "A description of the campaign",
"correlatedStatus": "CORRELATED",
"mandatoryCommentRequirement": "NO_DECISIONS"
},
"completed": true,
"identitiesCompleted": 5,
"identitiesTotal": 10,
"created": "2018-06-25T20:22:28.104Z",
"modified": "2018-06-25T20:22:28.104Z",
"decisionsMade": 20,
"decisionsTotal": 40,
"due": "2018-10-19T13:49:37.385Z",
"signed": "2018-10-19T13:49:37.385Z",
"reviewer": {
"id": "ef38f94347e94562b5bb8424a56397d8",
"name": "Reviewer Name",
"email": "reviewer@test.com",
"type": "IDENTITY",
"created": "2018-06-25T20:22:28.104Z",
"modified": "2018-06-25T20:22:28.104Z"
},
"reassignment": {
"from": {
"id": "ef38f94347e94562b5bb8424a56397d8",
"name": "Certification Name",
"type": "CERTIFICATION",
"reviewer": {
"id": "ef38f94347e94562b5bb8424a56397d8",
"name": "Reviewer Name",
"email": "reviewer@test.com",
"type": "IDENTITY",
"created": "2018-06-25T20:22:28.104Z",
"modified": "2018-06-25T20:22:28.104Z"
}
},
"comment": "Reassigned for a reason"
},
"hasErrors": false,
"errorMessage": "The certification has an error",
"phase": "ACTIVE"
}
Client Error - Returned if the request body is invalid.
- application/json
- Schema
- Example (auto)
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
- application/json
- Schema
- Example (auto)
Schema
A message describing the error
JWT validation failed: JWT is expired
{
"error": "JWT validation failed: JWT is expired"
}
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
- application/json
- Schema
- Example (auto)
- 403
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 403 response object
{
"detailCode": "403 Forbidden",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server understood the request but refuses to authorize it."
}
]
}
Not Found - returned if the request URL refers to a resource or object that does not exist
- application/json
- Schema
- Example (auto)
- 404
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 404 response object
{
"detailCode": "404 Not found",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server did not find a current representation for the target resource."
}
]
}
Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.
- application/json
- Schema
- Example (auto)
Schema
A message describing the error
Rate Limit Exceeded
{
"message": " Rate Limit Exceeded "
}
Internal Server Error - Returned if there is an unexpected error.
- application/json
- Schema
- Example (auto)
- 500
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 500 response object
{
"detailCode": "500.0 Internal Fault",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "An internal fault occurred."
}
]
}
Authorization: oauth2
type: Personal Access Tokenscopes: sp:scopes:all
- go
- powershellSailPoint SDK
- pythonSailPoint SDK
- csharp
- curl
- dart
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- r
- ruby
- rust
- shell
- swift
- NATIVE
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sailpoint.api.identitynow.com/v3/certifications/:id/reassign"
method := "POST"
payload := strings.NewReader(`{
"reassign": [
{
"id": "ef38f94347e94562b5bb8424a56397d8",
"type": "ITEM"
}
],
"reassignTo": "ef38f94347e94562b5bb8424a56397d8",
"reason": "reassigned for some reason"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer <TOKEN>")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}