Skip to main content

SourcesAPI

Use this API to implement and customize source functionality. With source functionality in place, organizations can use Identity Security Cloud to connect their various sources and user data sets and manage access across all those different sources in a secure, scalable way.

Sources refer to the Identity Security Cloud representations for external applications, databases, and directory management systems that maintain their own sets of users, like Dropbox, GitHub, and Workday, for example. Organizations may use hundreds, if not thousands, of different source systems, and any one employee within an organization likely has a different user record on each source, often with different permissions on many of those records. Connecting these sources to Identity Security Cloud makes it possible to manage user access across them all. Then, if a new hire starts at an organization, Identity Security Cloud can grant the new hire access to all the sources they need. If an employee moves to a new department and needs access to new sources but no longer needs access to others, Identity Security Cloud can grant the necessary access and revoke the unnecessary access for all the employee's various sources. If an employee leaves the company, Identity Security Cloud can revoke access to all the employee's various source accounts immediately. These are just a few examples of the many ways that source functionality makes identity governance easier, more efficient, and more secure.

In Identity Security Cloud, administrators can create configure, manage, and edit sources, and they can designate other users as source admins to be able to do so. They can also designate users as source sub-admins, who can perform the same source actions but only on sources associated with their governance groups. Admins go to Connections > Sources to see a list of the existing source representations in their organizations. They can create new sources or select existing ones.

To create a new source, the following must be specified: Source Name, Description, Source Owner, and Connection Type. Refer to Configuring a Source for more information about the source configuration process.

Identity Security Cloud connects with its sources either by a direct communication with the source server (connection information specific to the source must be provided) or a flat file feed, a CSV file containing all the relevant information about the accounts to be loaded in. Different sources use different connectors to share data with Identity Security Cloud, and each connector's setup process is specific to that connector. SailPoint has built a number of connectors to come out of the box and connect to the most common sources, and SailPoint actively maintains these connectors. Refer to Identity Security Cloud Connectors for more information about these SailPoint supported connectors. Refer to the following links for more information about two useful connectors:

  • JDBC Connector: This customizable connector an directly connect to databases that support JDBC (Java Database Connectivity).

  • Web Services Connector: This connector can directly connect to databases that support Web Services.

Refer to SaaS Connectivity for more information about SailPoint's new connectivity framework that makes it easy to build and manage custom connectors to SaaS sources.

When admins select existing sources, they can view the following information about the source:

  • Associated connections (any associated identity profiles, apps, or references to the source in a transform).

  • Associated user accounts. These accounts are linked to their identities - this provides a more complete picture of each user's access across sources.

  • Associated entitlements (sets of access rights on sources).

  • Associated access profiles (groupings of entitlements).

The user account data and the entitlements update with each data aggregation from the source. Organizations generally run scheduled, automated data aggregations to ensure that their data is always in sync between their sources and their Identity Security Cloud tenants so an access change on a source is detected quickly in Identity Security Cloud. Admins can view a history of these aggregations, and they can also run manual imports. Refer to Loading Account Data for more information about manual and scheduled aggregations.

Admins can also make changes to determine which user account data Identity Security Cloud collects from the source and how it correlates that account data with identity data. To define which account attributes the source shares with Identity Security Cloud, admins can edit the account schema on the source. Refer to Managing Source Account Schemas for more information about source account schemas and how to edit them. To define the mapping between the source account attributes and their correlating identity attributes, admins can edit the correlation configuration on the source. Refer to Assigning Source Accounts to Identities for more information about this correlation process between source accounts and identities.

Admins can also delete sources, but they must first ensure that the sources no longer have any active connections: the source must not be associated with any identity profile or any app, and it must not be referenced by any transform. Refer to Deleting Sources for more information about deleting sources.

Well organized, mapped out connections between sources and Identity Security Cloud are essential to achieving comprehensive identity access governance across all the source systems organizations need. Refer to Managing Sources for more information about all the different things admins can do with sources once they are connected.

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

MethodHTTP requestDescription
create-provisioning-policyPost /sources/{sourceId}/provisioning-policiesCreate Provisioning Policy
create-sourcePost /sourcesCreates a source in IdentityNow.
create-source-schemaPost /sources/{sourceId}/schemasCreate Schema on Source
delete-provisioning-policyDelete /sources/{sourceId}/provisioning-policies/{usageType}Delete Provisioning Policy by UsageType
delete-sourceDelete /sources/{id}Delete Source by ID
delete-source-schemaDelete /sources/{sourceId}/schemas/{schemaId}Delete Source Schema by ID
get-accounts-schemaGet /sources/{id}/schemas/accountsDownloads source accounts schema template
get-entitlements-schemaGet /sources/{id}/schemas/entitlementsDownloads source entitlements schema template
get-provisioning-policyGet /sources/{sourceId}/provisioning-policies/{usageType}Get Provisioning Policy by UsageType
get-sourceGet /sources/{id}Get Source by ID
get-source-connectionsGet /sources/{sourceId}/connectionsGet Source Connections by ID
get-source-healthGet /sources/{sourceId}/source-healthFetches source health by id
get-source-schemaGet /sources/{sourceId}/schemas/{schemaId}Get Source Schema by ID
get-source-schemasGet /sources/{sourceId}/schemasList Schemas on Source
import-accounts-schemaPost /sources/{id}/schemas/accountsUploads source accounts schema template
import-connector-filePost /sources/{sourceId}/upload-connector-fileUpload connector file to source
import-entitlements-schemaPost /sources/{id}/schemas/entitlementsUploads source entitlements schema template
list-provisioning-policiesGet /sources/{sourceId}/provisioning-policiesLists ProvisioningPolicies
list-sourcesGet /sourcesLists all sources in IdentityNow.
put-provisioning-policyPut /sources/{sourceId}/provisioning-policies/{usageType}Update Provisioning Policy by UsageType
put-sourcePut /sources/{id}Update Source (Full)
put-source-schemaPut /sources/{sourceId}/schemas/{schemaId}Update Source Schema (Full)
update-provisioning-policies-in-bulkPost /sources/{sourceId}/provisioning-policies/bulk-updateBulk Update Provisioning Policies
update-provisioning-policyPatch /sources/{sourceId}/provisioning-policies/{usageType}Partial update of Provisioning Policy
update-sourcePatch /sources/{id}Update Source (Partial)
update-source-schemaPatch /sources/{sourceId}/schemas/{schemaId}Update Source Schema (Partial)

create-provisioning-policy

Create Provisioning Policy This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to Transforms in Provisioning Policies for more information.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

provisioningPolicyDto | ProvisioningPolicyDto | |

Return type

ProvisioningPolicyDto

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id # string | The Source id
provisioningpolicydto := []byte(`{
"name" : "example provisioning policy for inactive identities",
"description" : "this provisioning policy creates access based on an identity going inactive",
"fields" : [ {
"isRequired" : false,
"transform" : {
"type" : "rule",
"attributes" : {
"name" : "Create Unique LDAP Attribute"
}
},
"isMultiValued" : false,
"name" : "userName",
"attributes" : {
"template" : "${firstname}.${lastname}${uniqueCounter}",
"cloudMaxUniqueChecks" : "50",
"cloudMaxSize" : "20",
"cloudRequired" : "true"
},
"type" : "string"
}, {
"isRequired" : false,
"transform" : {
"type" : "rule",
"attributes" : {
"name" : "Create Unique LDAP Attribute"
}
},
"isMultiValued" : false,
"name" : "userName",
"attributes" : {
"template" : "${firstname}.${lastname}${uniqueCounter}",
"cloudMaxUniqueChecks" : "50",
"cloudMaxSize" : "20",
"cloudRequired" : "true"
},
"type" : "string"
} ],
"usageType" : "CREATE"
}`) // ProvisioningPolicyDto |


var provisioningPolicyDto v3.ProvisioningPolicyDto
if err := json.Unmarshal(provisioningpolicydto, &provisioningPolicyDto); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.CreateProvisioningPolicy(context.Background(), sourceId).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.CreateProvisioningPolicy(context.Background(), sourceId).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.CreateProvisioningPolicy``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `CreateProvisioningPolicy`: ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.CreateProvisioningPolicy`: %v\n", resp)
}

[Back to top]

create-source

Creates a source in IdentityNow. This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow.

API Spec

Path Parameters

Other Parameters

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

NameTypeDescriptionNotes
sourceSource
provisionAsCsvboolIf this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don't set this query parameter and you attempt to set the `type` attribute directly, the request won't correctly generate the source.

Return type

Source

HTTP request headers

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

Example

package main

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

func main() {
source := []byte(`{
"cluster" : {
"name" : "Corporate Cluster",
"id" : "2c9180866166b5b0016167c32ef31a66",
"type" : "CLUSTER"
},
"deleteThreshold" : 10,
"connectorId" : "active-directory",
"description" : "This is the corporate directory.",
"type" : "OpenLDAP - Direct",
"connectorClass" : "sailpoint.connector.LDAPConnector",
"connectionType" : "file",
"features" : [ "PROVISIONING", "NO_PERMISSIONS_PROVISIONING", "GROUPS_HAVE_MEMBERS" ],
"passwordPolicies" : [ {
"type" : "PASSWORD_POLICY",
"id" : "2c9180855d191c59015d291ceb053980",
"name" : "Corporate Password Policy"
}, {
"type" : "PASSWORD_POLICY",
"id" : "2c9180855d191c59015d291ceb057777",
"name" : "Vendor Password Policy"
} ],
"modified" : "2024-01-23T18:08:50.897Z",
"id" : "2c91808568c529c60168cca6f90c1324",
"connectorImplementationId" : "delimited-file",
"managerCorrelationRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"owner" : {
"name" : "MyName",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
},
"managementWorkgroup" : {
"name" : "My Management Workgroup",
"id" : "2c91808568c529c60168cca6f90c2222",
"type" : "GOVERNANCE_GROUP"
},
"accountCorrelationRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"authoritative" : false,
"connectorAttributes" : {
"healthCheckTimeout" : 30,
"authSearchAttributes" : [ "cn", "uid", "mail" ]
},
"created" : "2022-02-08T14:50:03.827Z",
"managerCorrelationMapping" : {
"accountAttributeName" : "manager",
"identityAttributeName" : "manager"
},
"credentialProviderEnabled" : false,
"accountCorrelationConfig" : {
"name" : "Directory [source-62867] Account Correlation",
"id" : "2c9180855d191c59015d28583727245a",
"type" : "ACCOUNT_CORRELATION_CONFIG"
},
"connector" : "active-directory",
"healthy" : true,
"schemas" : [ {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180835d191a86015d28455b4b232a",
"name" : "account"
}, {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180835d191a86015d28455b4b232b",
"name" : "group"
} ],
"name" : "My Source",
"connectorName" : "Active Directory",
"category" : "CredentialProvider",
"beforeProvisioningRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"status" : "SOURCE_STATE_HEALTHY",
"since" : "2021-09-28T15:48:29.3801666300Z"
}`) // Source |
provisionAsCsv := false // bool | If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don't set this query parameter and you attempt to set the `type` attribute directly, the request won't correctly generate the source. (optional) # bool | If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don't set this query parameter and you attempt to set the `type` attribute directly, the request won't correctly generate the source. (optional)


var source v3.Source
if err := json.Unmarshal(source, &source); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.CreateSource(context.Background()).Source(source).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.CreateSource(context.Background()).Source(source).ProvisionAsCsv(provisionAsCsv).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.CreateSource``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `CreateSource`: Source
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.CreateSource`: %v\n", resp)
}

[Back to top]

create-source-schema

Create Schema on Source Use this API to create a new schema on the specified source in Identity Security Cloud (ISC).

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

schema | Schema | |

Return type

Schema

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.
schema := []byte(`{
"features" : [ "PROVISIONING", "NO_PERMISSIONS_PROVISIONING", "GROUPS_HAVE_MEMBERS" ],
"nativeObjectType" : "User",
"configuration" : {
"groupMemberAttribute" : "member"
},
"created" : "2019-12-24T22:32:58.104Z",
"includePermissions" : false,
"name" : "account",
"hierarchyAttribute" : "memberOf",
"modified" : "2019-12-31T20:22:28.104Z",
"attributes" : [ {
"name" : "sAMAccountName",
"type" : "STRING",
"isMultiValued" : false,
"isEntitlement" : false,
"isGroup" : false
}, {
"name" : "memberOf",
"type" : "STRING",
"schema" : {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180887671ff8c01767b4671fc7d60",
"name" : "group"
},
"description" : "Group membership",
"isMultiValued" : true,
"isEntitlement" : true,
"isGroup" : true
} ],
"id" : "2c9180835d191a86015d28455b4a2329",
"displayAttribute" : "distinguishedName",
"identityAttribute" : "sAMAccountName"
}`) // Schema |


var schema v3.Schema
if err := json.Unmarshal(schema, &schema); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.CreateSourceSchema(context.Background(), sourceId).Schema(schema).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.CreateSourceSchema(context.Background(), sourceId).Schema(schema).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.CreateSourceSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `CreateSourceSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.CreateSourceSchema`: %v\n", resp)
}

[Back to top]

delete-provisioning-policy

Delete Provisioning Policy by UsageType Deletes the provisioning policy with the specified usage on an application.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source ID.
usageTypeUsageTypeThe type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.

Other Parameters

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

NameTypeDescriptionNotes

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/v2"
)

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source ID. # string | The Source ID.
usageType := CREATE // UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. # UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
r, err := apiClient.V3.SourcesAPI.DeleteProvisioningPolicy(context.Background(), sourceId, usageType).Execute()
//r, err := apiClient.V3.SourcesAPI.DeleteProvisioningPolicy(context.Background(), sourceId, usageType).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.DeleteProvisioningPolicy``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}

[Back to top]

delete-source

Delete Source by ID Use this API to delete a specific source in Identity Security Cloud (ISC). The API removes all the accounts on the source first, and then it deletes the source. You can retrieve the actual task execution status with this method: GET /task-status/{id}

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

Return type

DeleteSource202Response

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.



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

[Back to top]

delete-source-schema

Delete Source Schema by ID

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.
schemaIdstringThe Schema id.

Other Parameters

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

NameTypeDescriptionNotes

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/v2"
)

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
schemaId := `2c9180835d191a86015d28455b4a2329` // string | The Schema id. # string | The Schema id.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
r, err := apiClient.V3.SourcesAPI.DeleteSourceSchema(context.Background(), sourceId, schemaId).Execute()
//r, err := apiClient.V3.SourcesAPI.DeleteSourceSchema(context.Background(), sourceId, schemaId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.DeleteSourceSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}

[Back to top]

get-accounts-schema

Downloads source accounts schema template This API downloads the CSV schema that defines the account attributes on a source.

NOTE: This API is designated only for Delimited File sources.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

Return type

(empty response body)

HTTP request headers

  • Content-Type: Not defined
  • Accept: text/csv, application/json

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `8c190e6787aa4ed9a90bd9d5344523fb` // string | The Source id # string | The Source id



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

[Back to top]

get-entitlements-schema

Downloads source entitlements schema template This API downloads the CSV schema that defines the entitlement attributes on a source.

NOTE: This API is designated only for Delimited File sources.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

schemaName | string | Name of entitlement schema |

Return type

(empty response body)

HTTP request headers

  • Content-Type: Not defined
  • Accept: text/csv, application/json

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `8c190e6787aa4ed9a90bd9d5344523fb` // string | The Source id # string | The Source id
schemaName := `?schemaName=group` // string | Name of entitlement schema (optional) # string | Name of entitlement schema (optional)



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

[Back to top]

get-provisioning-policy

Get Provisioning Policy by UsageType This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source ID.
usageTypeUsageTypeThe type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.

Other Parameters

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

NameTypeDescriptionNotes

Return type

ProvisioningPolicyDto

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source ID. # string | The Source ID.
usageType := CREATE // UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. # UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.GetProvisioningPolicy(context.Background(), sourceId, usageType).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.GetProvisioningPolicy(context.Background(), sourceId, usageType).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.GetProvisioningPolicy``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetProvisioningPolicy`: ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.GetProvisioningPolicy`: %v\n", resp)
}

[Back to top]

get-source

Get Source by ID Use this API to get a source by a specified ID in Identity Security Cloud (ISC).

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

Return type

Source

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.



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

[Back to top]

get-source-connections

Get Source Connections by ID Use this API to get all dependent Profiles, Attributes, Applications and Custom Transforms for a source by a specified ID in Identity Security Cloud (ISC).

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

Return type

SourceConnectionsDto

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.GetSourceConnections(context.Background(), sourceId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.GetSourceConnections(context.Background(), sourceId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.GetSourceConnections``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetSourceConnections`: SourceConnectionsDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.GetSourceConnections`: %v\n", resp)
}

[Back to top]

get-source-health

Fetches source health by id This endpoint fetches source health by source's id

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.

Other Parameters

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

NameTypeDescriptionNotes

Return type

SourceHealthDto

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.GetSourceHealth(context.Background(), sourceId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.GetSourceHealth(context.Background(), sourceId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.GetSourceHealth``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetSourceHealth`: SourceHealthDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.GetSourceHealth`: %v\n", resp)
}

[Back to top]

get-source-schema

Get Source Schema by ID Get the Source Schema by ID in IdentityNow.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.
schemaIdstringThe Schema id.

Other Parameters

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

NameTypeDescriptionNotes

Return type

Schema

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
schemaId := `2c9180835d191a86015d28455b4a2329` // string | The Schema id. # string | The Schema id.



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.GetSourceSchema(context.Background(), sourceId, schemaId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.GetSourceSchema(context.Background(), sourceId, schemaId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.GetSourceSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetSourceSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.GetSourceSchema`: %v\n", resp)
}

[Back to top]

get-source-schemas

List Schemas on Source Use this API to list the schemas that exist on the specified source in Identity Security Cloud (ISC).

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

includeTypes | string | If set to 'group', then the account schema is filtered and only group schemas are returned. Only a value of 'group' is recognized presently. Note: The API will check whether include-types is group or not, if not, it will list schemas based on include-names, if include-names is not provided, it will list all schemas. | includeNames | string | A comma-separated list of schema names to filter result. |

Return type

[]Schema

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.
includeTypes := `group` // string | If set to 'group', then the account schema is filtered and only group schemas are returned. Only a value of 'group' is recognized presently. Note: The API will check whether include-types is group or not, if not, it will list schemas based on include-names, if include-names is not provided, it will list all schemas. (optional) # string | If set to 'group', then the account schema is filtered and only group schemas are returned. Only a value of 'group' is recognized presently. Note: The API will check whether include-types is group or not, if not, it will list schemas based on include-names, if include-names is not provided, it will list all schemas. (optional)
includeNames := `account` // string | A comma-separated list of schema names to filter result. (optional) # string | A comma-separated list of schema names to filter result. (optional)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.GetSourceSchemas(context.Background(), sourceId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.GetSourceSchemas(context.Background(), sourceId).IncludeTypes(includeTypes).IncludeNames(includeNames).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.GetSourceSchemas``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetSourceSchemas`: []Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.GetSourceSchemas`: %v\n", resp)
}

[Back to top]

import-accounts-schema

Uploads source accounts schema template This API uploads a source schema template file to configure a source's account attributes.

To retrieve the file to modify and upload, log into Identity Now.

Click Admin -> Connections -> Sources -> {SourceName} -> Import Data -> Account Schema -> Options -> Download Schema

NOTE: This API is designated only for Delimited File sources.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

file | *os.File | |

Return type

Schema

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `8c190e6787aa4ed9a90bd9d5344523fb` // string | The Source id # string | The Source id
file := BINARY_DATA_HERE // *os.File | (optional) # *os.File | (optional)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.ImportAccountsSchema(context.Background(), id).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.ImportAccountsSchema(context.Background(), id).File(file).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.ImportAccountsSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ImportAccountsSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ImportAccountsSchema`: %v\n", resp)
}

[Back to top]

import-connector-file

Upload connector file to source This uploads a supplemental source connector file (like jdbc driver jars) to a source's S3 bucket. This also sends ETS and Audit events.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.

Other Parameters

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

NameTypeDescriptionNotes

file | *os.File | |

Return type

Source

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
file := BINARY_DATA_HERE // *os.File | (optional) # *os.File | (optional)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.ImportConnectorFile(context.Background(), sourceId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.ImportConnectorFile(context.Background(), sourceId).File(file).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.ImportConnectorFile``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ImportConnectorFile`: Source
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ImportConnectorFile`: %v\n", resp)
}

[Back to top]

import-entitlements-schema

Uploads source entitlements schema template This API uploads a source schema template file to configure a source's entitlement attributes.

To retrieve the file to modify and upload, log into Identity Now.

Click Admin -> Connections -> Sources -> {SourceName} -> Import Data -> Import Entitlements -> Download

NOTE: This API is designated only for Delimited File sources.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

schemaName | string | Name of entitlement schema | file | *os.File | |

Return type

Schema

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
id := `8c190e6787aa4ed9a90bd9d5344523fb` // string | The Source id # string | The Source id
schemaName := `?schemaName=group` // string | Name of entitlement schema (optional) # string | Name of entitlement schema (optional)
file := BINARY_DATA_HERE // *os.File | (optional) # *os.File | (optional)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.ImportEntitlementsSchema(context.Background(), id).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.ImportEntitlementsSchema(context.Background(), id).SchemaName(schemaName).File(file).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.ImportEntitlementsSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ImportEntitlementsSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ImportEntitlementsSchema`: %v\n", resp)
}

[Back to top]

list-provisioning-policies

Lists ProvisioningPolicies This end-point lists all the ProvisioningPolicies in IdentityNow.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id

Other Parameters

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

NameTypeDescriptionNotes

Return type

[]ProvisioningPolicyDto

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id # string | The Source id



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.ListProvisioningPolicies(context.Background(), sourceId).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.ListProvisioningPolicies(context.Background(), sourceId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.ListProvisioningPolicies``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ListProvisioningPolicies`: []ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ListProvisioningPolicies`: %v\n", resp)
}

[Back to top]

list-sources

Lists all sources in IdentityNow. This end-point lists all the sources in IdentityNow.

API Spec

Path Parameters

Other Parameters

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

NameTypeDescriptionNotes
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, ge, gt, le, lt, ne, isnull, sw name: co, eq, in, sw, ge, gt, ne, isnull type: eq, in, ge, gt, ne, isnull, sw owner.id: eq, in, ge, gt, le, lt, ne, isnull, sw features: ca, co created: eq, ge, gt, in, le, lt, ne, isnull, sw modified: eq, ge, gt, in, le, lt, ne, isnull, sw managementWorkgroup.id: eq, ge, gt, in, le, lt, ne, isnull, sw description: eq, sw authoritative: eq, ne, isnull healthy: isnull status: eq, in, ge, gt, le, lt, ne, isnull, sw connectionType: eq, ge, gt, in, le, lt, ne, isnull, sw connectorName: eq, ge, gt, in, ne, isnull, sw category: co, eq, ge, gt, in, le, lt, ne, sw
sortersstringSort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType
forSubadminstringFilter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value me indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.
includeIDNSourceboolInclude the IdentityNow source in the response.[default to false]

Return type

[]Source

HTTP request headers

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

Example

package main

import (
"context"
"fmt"
"os"


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

func main() {
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 := `name eq "Employees"` // 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, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **modified**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **managementWorkgroup.id**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, ge, gt, in, ne, isnull, sw* **category**: *co, eq, ge, gt, in, le, lt, ne, sw* (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, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **modified**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **managementWorkgroup.id**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, ge, gt, in, ne, isnull, sw* **category**: *co, eq, ge, gt, in, le, lt, ne, sw* (optional)
sorters := `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: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** (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: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** (optional)
forSubadmin := `name` // string | Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. (optional) # string | Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. (optional)
includeIDNSource := true // bool | Include the IdentityNow source in the response. (optional) (default to false) # bool | Include the IdentityNow source in the response. (optional) (default to false)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.ListSources(context.Background()).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.ListSources(context.Background()).Limit(limit).Offset(offset).Count(count).Filters(filters).Sorters(sorters).ForSubadmin(forSubadmin).IncludeIDNSource(includeIDNSource).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.ListSources``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ListSources`: []Source
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ListSources`: %v\n", resp)
}

[Back to top]

put-provisioning-policy

Update Provisioning Policy by UsageType This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to Transforms in Provisioning Policies for more information.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source ID.
usageTypeUsageTypeThe type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.

Other Parameters

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

NameTypeDescriptionNotes

provisioningPolicyDto | ProvisioningPolicyDto | |

Return type

ProvisioningPolicyDto

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source ID. # string | The Source ID.
usageType := CREATE // UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. # UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.
provisioningpolicydto := []byte(`{
"name" : "example provisioning policy for inactive identities",
"description" : "this provisioning policy creates access based on an identity going inactive",
"fields" : [ {
"isRequired" : false,
"transform" : {
"type" : "rule",
"attributes" : {
"name" : "Create Unique LDAP Attribute"
}
},
"isMultiValued" : false,
"name" : "userName",
"attributes" : {
"template" : "${firstname}.${lastname}${uniqueCounter}",
"cloudMaxUniqueChecks" : "50",
"cloudMaxSize" : "20",
"cloudRequired" : "true"
},
"type" : "string"
}, {
"isRequired" : false,
"transform" : {
"type" : "rule",
"attributes" : {
"name" : "Create Unique LDAP Attribute"
}
},
"isMultiValued" : false,
"name" : "userName",
"attributes" : {
"template" : "${firstname}.${lastname}${uniqueCounter}",
"cloudMaxUniqueChecks" : "50",
"cloudMaxSize" : "20",
"cloudRequired" : "true"
},
"type" : "string"
} ],
"usageType" : "CREATE"
}`) // ProvisioningPolicyDto |


var provisioningPolicyDto v3.ProvisioningPolicyDto
if err := json.Unmarshal(provisioningpolicydto, &provisioningPolicyDto); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.PutProvisioningPolicy(context.Background(), sourceId, usageType).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.PutProvisioningPolicy(context.Background(), sourceId, usageType).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.PutProvisioningPolicy``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `PutProvisioningPolicy`: ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.PutProvisioningPolicy`: %v\n", resp)
}

[Back to top]

put-source

Update Source (Full) Use this API to update a source in Identity Security Cloud (ISC), using a full object representation. This means that when you use this API, it completely replaces the existing source configuration.

These fields are immutable, so they cannot be changed:

  • id
  • type
  • authoritative
  • connector
  • connectorClass
  • passwordPolicies

Attempts to modify these fields will result in a 400 error.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

source | Source | |

Return type

Source

HTTP request headers

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

Example

package main

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

func main() {
id := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.
source := []byte(`{
"cluster" : {
"name" : "Corporate Cluster",
"id" : "2c9180866166b5b0016167c32ef31a66",
"type" : "CLUSTER"
},
"deleteThreshold" : 10,
"connectorId" : "active-directory",
"description" : "This is the corporate directory.",
"type" : "OpenLDAP - Direct",
"connectorClass" : "sailpoint.connector.LDAPConnector",
"connectionType" : "file",
"features" : [ "PROVISIONING", "NO_PERMISSIONS_PROVISIONING", "GROUPS_HAVE_MEMBERS" ],
"passwordPolicies" : [ {
"type" : "PASSWORD_POLICY",
"id" : "2c9180855d191c59015d291ceb053980",
"name" : "Corporate Password Policy"
}, {
"type" : "PASSWORD_POLICY",
"id" : "2c9180855d191c59015d291ceb057777",
"name" : "Vendor Password Policy"
} ],
"modified" : "2024-01-23T18:08:50.897Z",
"id" : "2c91808568c529c60168cca6f90c1324",
"connectorImplementationId" : "delimited-file",
"managerCorrelationRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"owner" : {
"name" : "MyName",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
},
"managementWorkgroup" : {
"name" : "My Management Workgroup",
"id" : "2c91808568c529c60168cca6f90c2222",
"type" : "GOVERNANCE_GROUP"
},
"accountCorrelationRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"authoritative" : false,
"connectorAttributes" : {
"healthCheckTimeout" : 30,
"authSearchAttributes" : [ "cn", "uid", "mail" ]
},
"created" : "2022-02-08T14:50:03.827Z",
"managerCorrelationMapping" : {
"accountAttributeName" : "manager",
"identityAttributeName" : "manager"
},
"credentialProviderEnabled" : false,
"accountCorrelationConfig" : {
"name" : "Directory [source-62867] Account Correlation",
"id" : "2c9180855d191c59015d28583727245a",
"type" : "ACCOUNT_CORRELATION_CONFIG"
},
"connector" : "active-directory",
"healthy" : true,
"schemas" : [ {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180835d191a86015d28455b4b232a",
"name" : "account"
}, {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180835d191a86015d28455b4b232b",
"name" : "group"
} ],
"name" : "My Source",
"connectorName" : "Active Directory",
"category" : "CredentialProvider",
"beforeProvisioningRule" : {
"name" : "Example Rule",
"id" : "2c918085708c274401708c2a8a760001",
"type" : "RULE"
},
"status" : "SOURCE_STATE_HEALTHY",
"since" : "2021-09-28T15:48:29.3801666300Z"
}`) // Source |


var source v3.Source
if err := json.Unmarshal(source, &source); err != nil {
fmt.Println("Error:", err)
return
}


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

[Back to top]

put-source-schema

Update Source Schema (Full) This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below.

  • id
  • name
  • created
  • modified

Any attempt to modify these fields will result in an error response with a status code of 400.

id must remain in the request body, but it cannot be changed. If id is omitted from the request body, the result will be a 400 error.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.
schemaIdstringThe Schema id.

Other Parameters

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

NameTypeDescriptionNotes

schema | Schema | |

Return type

Schema

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
schemaId := `2c9180835d191a86015d28455b4a2329` // string | The Schema id. # string | The Schema id.
schema := []byte(`{
"features" : [ "PROVISIONING", "NO_PERMISSIONS_PROVISIONING", "GROUPS_HAVE_MEMBERS" ],
"nativeObjectType" : "User",
"configuration" : {
"groupMemberAttribute" : "member"
},
"created" : "2019-12-24T22:32:58.104Z",
"includePermissions" : false,
"name" : "account",
"hierarchyAttribute" : "memberOf",
"modified" : "2019-12-31T20:22:28.104Z",
"attributes" : [ {
"name" : "sAMAccountName",
"type" : "STRING",
"isMultiValued" : false,
"isEntitlement" : false,
"isGroup" : false
}, {
"name" : "memberOf",
"type" : "STRING",
"schema" : {
"type" : "CONNECTOR_SCHEMA",
"id" : "2c9180887671ff8c01767b4671fc7d60",
"name" : "group"
},
"description" : "Group membership",
"isMultiValued" : true,
"isEntitlement" : true,
"isGroup" : true
} ],
"id" : "2c9180835d191a86015d28455b4a2329",
"displayAttribute" : "distinguishedName",
"identityAttribute" : "sAMAccountName"
}`) // Schema |


var schema v3.Schema
if err := json.Unmarshal(schema, &schema); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.PutSourceSchema(context.Background(), sourceId, schemaId).Schema(schema).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.PutSourceSchema(context.Background(), sourceId, schemaId).Schema(schema).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.PutSourceSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `PutSourceSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.PutSourceSchema`: %v\n", resp)
}

[Back to top]

update-provisioning-policies-in-bulk

Bulk Update Provisioning Policies This end-point updates a list of provisioning policies on the specified source in IdentityNow.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.

Other Parameters

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

NameTypeDescriptionNotes

provisioningPolicyDto | []ProvisioningPolicyDto | |

Return type

[]ProvisioningPolicyDto

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
provisioningpolicydto := []byte(``) // []ProvisioningPolicyDto |


var provisioningPolicyDto v3.[]ProvisioningPolicyDto
if err := json.Unmarshal(provisioningpolicydto, &provisioningPolicyDto); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.UpdateProvisioningPoliciesInBulk(context.Background(), sourceId).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.UpdateProvisioningPoliciesInBulk(context.Background(), sourceId).ProvisioningPolicyDto(provisioningPolicyDto).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.UpdateProvisioningPoliciesInBulk``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `UpdateProvisioningPoliciesInBulk`: []ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.UpdateProvisioningPoliciesInBulk`: %v\n", resp)
}

[Back to top]

update-provisioning-policy

Partial update of Provisioning Policy This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to Transforms in Provisioning Policies for more information.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.
usageTypeUsageTypeThe type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.

Other Parameters

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

NameTypeDescriptionNotes

jsonPatchOperation | []JsonPatchOperation | The JSONPatch payload used to update the schema. |

Return type

ProvisioningPolicyDto

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
usageType := CREATE // UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. # UsageType | The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to 'Create Account Profile', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to 'Update Account Profile', the provisioning template for the 'Update' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to 'Enable Account Profile', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner's account is created. DISABLE - This usage type relates to 'Disable Account Profile', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.
jsonpatchoperation := []byte(`[{op=add, path=/fields/0, value={name=email, transform={type=identityAttribute, attributes={name=email}}, attributes={}, isRequired=false, type=string, isMultiValued=false}}]`) // []JsonPatchOperation | The JSONPatch payload used to update the schema.


var jsonPatchOperation v3.[]JsonPatchOperation
if err := json.Unmarshal(jsonpatchoperation, &jsonPatchOperation); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.UpdateProvisioningPolicy(context.Background(), sourceId, usageType).JsonPatchOperation(jsonPatchOperation).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.UpdateProvisioningPolicy(context.Background(), sourceId, usageType).JsonPatchOperation(jsonPatchOperation).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.UpdateProvisioningPolicy``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `UpdateProvisioningPolicy`: ProvisioningPolicyDto
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.UpdateProvisioningPolicy`: %v\n", resp)
}

[Back to top]

update-source

Update Source (Partial) Use this API to partially update a source in Identity Security Cloud (ISC), using a list of patch operations according to the JSON Patch standard.

These fields are immutable, so they cannot be changed:

  • id
  • type
  • authoritative
  • created
  • modified
  • connector
  • connectorClass
  • passwordPolicies

Attempts to modify these fields will result in a 400 error.

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringSource ID.

Other Parameters

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

NameTypeDescriptionNotes

jsonPatchOperation | []JsonPatchOperation | A list of account update operations according to the JSON Patch standard. Any password changes are submitted as plain-text and encrypted upon receipt in Identity Security Cloud (ISC). |

Return type

Source

HTTP request headers

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

Example

package main

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

func main() {
id := `2c9180835d191a86015d28455b4a2329` // string | Source ID. # string | Source ID.
jsonpatchoperation := []byte(`[{op=replace, path=/description, value=new description}]`) // []JsonPatchOperation | A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in Identity Security Cloud (ISC).


var jsonPatchOperation v3.[]JsonPatchOperation
if err := json.Unmarshal(jsonpatchoperation, &jsonPatchOperation); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.UpdateSource(context.Background(), id).JsonPatchOperation(jsonPatchOperation).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.UpdateSource(context.Background(), id).JsonPatchOperation(jsonPatchOperation).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.UpdateSource``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `UpdateSource`: Source
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.UpdateSource`: %v\n", resp)
}

[Back to top]

update-source-schema

Update Source Schema (Partial) Use this API to selectively update an existing Schema using a JSONPatch payload.

The following schema fields are immutable and cannot be updated:

  • id
  • name
  • created
  • modified

To switch an account attribute to a group entitlement, you need to have the following in place:

  • isEntitlement: true
  • Must define a schema for the group and add it to the source before updating the isGroup flag. For example, here is the group account attribute referencing a schema that defines the group:
{
"name": "groups",
"type": "STRING",
"schema": {
"type": "CONNECTOR_SCHEMA",
"id": "2c9180887671ff8c01767b4671fc7d60",
"name": "group"
},
"description": "The groups, roles etc. that reference account group objects",
"isMulti": true,
"isEntitlement": true,
"isGroup": true
}

API Spec

Path Parameters

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
sourceIdstringThe Source id.
schemaIdstringThe Schema id.

Other Parameters

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

NameTypeDescriptionNotes

jsonPatchOperation | []JsonPatchOperation | The JSONPatch payload used to update the schema. |

Return type

Schema

HTTP request headers

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

Example

package main

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

func main() {
sourceId := `2c9180835d191a86015d28455b4a2329` // string | The Source id. # string | The Source id.
schemaId := `2c9180835d191a86015d28455b4a2329` // string | The Schema id. # string | The Schema id.
jsonpatchoperation := []byte(`[{op=add, path=/attributes/-, value={name=location, type=STRING, schema=null, description=Employee location, isMulti=false, isEntitlement=false, isGroup=false}}]`) // []JsonPatchOperation | The JSONPatch payload used to update the schema.


var jsonPatchOperation v3.[]JsonPatchOperation
if err := json.Unmarshal(jsonpatchoperation, &jsonPatchOperation); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.V3.SourcesAPI.UpdateSourceSchema(context.Background(), sourceId, schemaId).JsonPatchOperation(jsonPatchOperation).Execute()
//resp, r, err := apiClient.V3.SourcesAPI.UpdateSourceSchema(context.Background(), sourceId, schemaId).JsonPatchOperation(jsonPatchOperation).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SourcesAPI.UpdateSourceSchema``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `UpdateSourceSchema`: Schema
fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.UpdateSourceSchema`: %v\n", resp)
}

[Back to top]