Skip to main content

SODControlsAPI

Use this API to create, list, retrieve, update, and delete compensating controls associated with separation-of-duties policies. Requires policy violation management license.

All URIs are relative to https://sailpoint.api.identitynow.com

MethodHTTP requestDescription
create-control-v1Post /controls/v1Create Compensating Control
delete-control-v1Delete /controls/v1/{id}Delete compensating control by ID
get-control-v1Get /controls/v1/{id}Get compensating control by ID
list-controls-v1Get /controls/v1List Compensating Controls
put-control-v1Put /controls/v1/{id}Put Compensating Control

create-control-v1

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

  configuration = Configuration()
configuration.Experimental = true

Create Compensating Control Creates a compensating control associated with separation-of-duties policies.

API Spec

Path Parameters

Other Parameters

Other parameters are passed through a pointer to a apiCreateControlV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]
compensatingcontrolcreateCompensatingcontrolcreateData needed to create a Compensating Control

Return type

Compensatingcontrolresponse

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"
"encoding/json"
sod_controls "github.com/sailpoint-oss/golang-sdk/v3/sod_controls"
sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
compensatingcontrolcreateJson := []byte(`{
"owner" : {
"id" : "3e07886555ed43cfb83c85c58d2016e6",
"type" : "IDENTITY"
},
"name" : "a name",
"description" : "a description",
"secondaryOwners" : [ {
"id" : "943a7c57da334d07ba2454bf7fcf144f",
"type" : "GOVERNANCE_GROUP"
} ],
"action" : "Workflow",
"expiration" : "20d",
"type" : "Mitigation",
"justificationRequired" : true,
"workflowID" : "3e07886555ed43cfb83c85c58d2016e6"
}`) // Compensatingcontrolcreate | Data needed to create a Compensating Control

var compensatingcontrolcreate sod_controls.Compensatingcontrolcreate
if err := json.Unmarshal(compensatingcontrolcreateJson, &compensatingcontrolcreate); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.SODControlsAPI.CreateControlV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Compensatingcontrolcreate(compensatingcontrolcreate).Execute()
//resp, r, err := apiClient.SODControlsAPI.CreateControlV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Compensatingcontrolcreate(compensatingcontrolcreate).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SODControlsAPI.CreateControlV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `CreateControlV1`: Compensatingcontrolresponse
fmt.Fprintf(os.Stdout, "Response from `SODControlsAPI.CreateControlV1`: %v\n", resp)
}

[Back to top]

delete-control-v1

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

  configuration = Configuration()
configuration.Experimental = true

Delete compensating control by ID Deletes the specified compensating control from the data store.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringthe ID (UUID) of the compensating control to delete.

Other Parameters

Other parameters are passed through a pointer to a apiDeleteControlV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]

Return type

(empty response body)

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
id := `3e078865-55ed-43cf-b83c-85c58d2016e6` // string | the ID (UUID) of the compensating control to delete. # string | the ID (UUID) of the compensating control to delete.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
r, err := apiClient.SODControlsAPI.DeleteControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
//r, err := apiClient.SODControlsAPI.DeleteControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SODControlsAPI.DeleteControlV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}

}

[Back to top]

get-control-v1

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

  configuration = Configuration()
configuration.Experimental = true

Get compensating control by ID Returns a single compensating control by ID.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe ID of the compensating control to fetch

Other Parameters

Other parameters are passed through a pointer to a apiGetControlV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]

Return type

Compensatingcontrolresponse

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
id := `3e078865-55ed-43cf-b83c-85c58d2016e6` // string | The ID of the compensating control to fetch # string | The ID of the compensating control to fetch



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.SODControlsAPI.GetControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
//resp, r, err := apiClient.SODControlsAPI.GetControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SODControlsAPI.GetControlV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetControlV1`: Compensatingcontrolresponse
fmt.Fprintf(os.Stdout, "Response from `SODControlsAPI.GetControlV1`: %v\n", resp)
}

[Back to top]

list-controls-v1

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

  configuration = Configuration()
configuration.Experimental = true

List Compensating Controls Returns a list of compensating controls associated with separation-of-duties policies.

API Spec

Path Parameters

Other Parameters

Other parameters are passed through a pointer to a apiListControlsV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]
limitint32Max number of results to return. See V3 API Standard Collection Parameters for more information.[default to 250]
offsetint32Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.[default to 0]
countboolIf true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored. Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used. See V3 API Standard Collection Parameters for more information.[default to false]
filtersstringFilter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: id: eq, in name: eq, in, sw, co type: eq owner: eq, in description: eq, in, sw, co action: eq, in
sortstringSort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: name Prefix a field with - for descending order, for example -name. If no sort is provided, results default to name ascending.

Return type

[]Compensatingcontrolresponse

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
limit := 250 // int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250) # int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250)
offset := 0 // int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0) # int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0)
count := true // bool | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to false) # bool | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to false)
filters := `type eq "Mitigation" and name co "payroll"` // string | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* **type**: *eq* **owner**: *eq, in* **description**: *eq, in, sw, co* **action**: *eq, in* (optional) # string | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* **type**: *eq* **owner**: *eq, in* **description**: *eq, in, sw, co* **action**: *eq, in* (optional)
sort := `-name` // string | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** Prefix a field with - for descending order, for example -name. If no sort is provided, results default to name ascending. (optional) # string | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** Prefix a field with - for descending order, for example -name. If no sort is provided, results default to name ascending. (optional)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.SODControlsAPI.ListControlsV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Execute()
//resp, r, err := apiClient.SODControlsAPI.ListControlsV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Limit(limit).Offset(offset).Count(count).Filters(filters).Sort(sort).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SODControlsAPI.ListControlsV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ListControlsV1`: []Compensatingcontrolresponse
fmt.Fprintf(os.Stdout, "Response from `SODControlsAPI.ListControlsV1`: %v\n", resp)
}

[Back to top]

put-control-v1

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

  configuration = Configuration()
configuration.Experimental = true

Put Compensating Control Updates the specified compensating control.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe unique identifier of the Compensating Control to be updated.

Other Parameters

Other parameters are passed through a pointer to a apiPutControlV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]

compensatingcontrolupdate | Compensatingcontrolupdate | Data needed to put a Compensating Control |

Return type

Compensatingcontrolresponse

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"
"encoding/json"
sod_controls "github.com/sailpoint-oss/golang-sdk/v3/sod_controls"
sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
id := `3e078865-55ed-43cf-b83c-85c58d2016e6` // string | The unique identifier of the Compensating Control to be updated. # string | The unique identifier of the Compensating Control to be updated.
compensatingcontrolupdateJson := []byte(`{
"owner" : {
"id" : "3e07886555ed43cfb83c85c58d2016e6",
"type" : "IDENTITY"
},
"name" : "a name",
"description" : "a description",
"secondaryOwners" : [ {
"id" : "943a7c57da334d07ba2454bf7fcf144f",
"type" : "GOVERNANCE_GROUP"
} ],
"action" : "Workflow",
"expiration" : "20d",
"type" : "Mitigation",
"justificationRequired" : true,
"workflowID" : "3e07886555ed43cfb83c85c58d2016e6"
}`) // Compensatingcontrolupdate | Data needed to put a Compensating Control

var compensatingcontrolupdate sod_controls.Compensatingcontrolupdate
if err := json.Unmarshal(compensatingcontrolupdateJson, &compensatingcontrolupdate); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.SODControlsAPI.PutControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Compensatingcontrolupdate(compensatingcontrolupdate).Execute()
//resp, r, err := apiClient.SODControlsAPI.PutControlV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Compensatingcontrolupdate(compensatingcontrolupdate).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SODControlsAPI.PutControlV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `PutControlV1`: Compensatingcontrolresponse
fmt.Fprintf(os.Stdout, "Response from `SODControlsAPI.PutControlV1`: %v\n", resp)
}

[Back to top]