### Golang SDK Example - Get Connector Rule List Source: https://developer.sailpoint.com/docs/api/beta/get-connector-rule-list An example demonstrating how to use the SailPoint Golang SDK to fetch a list of connector rules. ```APIDOC ## Golang SDK Example - Get Connector Rule List ### Description This example shows how to initialize the SailPoint Golang SDK and call the `GetConnectorRuleList` function. ### Method SDK Function Call ### Endpoint (N/A - SDK abstraction) ### Parameters (N/A - SDK abstraction) ### Request Example ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.ConnectorRuleManagementAPI.GetConnectorRuleList(context.Background()).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `ConnectorRuleManagementAPI.GetConnectorRuleList`: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `GetConnectorRuleList`: []ConnectorRuleResponse fmt.Fprintf(os.Stdout, "Response from `ConnectorRuleManagementAPI.GetConnectorRuleList`: %v\n", resp) } ``` ### Response #### Success Response (200) - **resp** ([]beta.ConnectorRuleResponse) - The list of connector rules. #### Response Example (Output will be printed to stdout as shown in the `fmt.Fprintf` statement in the code) ``` -------------------------------- ### Go SDK Example for Get Role Assignment Source: https://developer.sailpoint.com/docs/api/beta/get-role-assignment Example demonstrating how to use the SailPoint Go SDK to retrieve a role assignment. ```APIDOC ## Go SDK Example: Get Role Assignment ### Description This Go code snippet shows how to use the SailPoint Go SDK to fetch a specific role assignment for an identity. It includes setting up the API client, defining identity and assignment IDs, and handling the response or errors. ### Method SDK (Go) ### Endpoint `/beta/identities/{identityId}/assignments/{assignmentId}` ### Request Example ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { identityId := `ef38f94347e94562b5bb8424a56397d8` // string | Identity Id assignmentId := `1cbb0705b38c4226b1334eadd8874086` // string | Assignment Id configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.IdentitiesAPI.GetRoleAssignment(context.Background(), identityId, assignmentId).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `IdentitiesAPI.GetRoleAssignment`: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `GetRoleAssignment`: RoleAssignmentDto fmt.Fprintf(os.Stdout, "Response from `IdentitiesAPI.GetRoleAssignment`: %v\n", resp) } ``` ### Response Example ```go // Response from `IdentitiesAPI.GetRoleAssignment`: %v\n" + resp ``` ``` -------------------------------- ### Start Certification Campaign using Go SDK Source: https://developer.sailpoint.com/docs/api/beta/start-campaign This Go code snippet demonstrates how to initiate a certification campaign using the SailPoint Go SDK. It shows how to set up the API client, specify campaign details, and execute the request, including optional activation options with timezone. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { id := `ef38f94347e94562b5bb8424a56397d8` // string | Campaign ID. # string | Campaign ID. activatecampaignoptions := []byte(`{ "timeZone" : "-05:00" }`) // ActivateCampaignOptions | Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller's timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. (optional) configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.CertificationCampaignsAPI.StartCampaign(context.Background(), id).Execute() //resp, r, err := apiClient.Beta.CertificationCampaignsAPI.StartCampaign(context.Background(), id).ActivateCampaignOptions(activateCampaignOptions).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `CertificationCampaignsAPI.StartCampaign``: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `StartCampaign`: map[string]interface{} fmt.Fprintf(os.Stdout, "Response from `CertificationCampaignsAPI.StartCampaign`: %v\n", resp) } ``` -------------------------------- ### Get Public Identities (Example V3 API Call) Source: https://developer.sailpoint.com/docs/api/beta/getting-started This endpoint demonstrates how to make a GET request to the V3 API using a generated access token to retrieve public identity information. ```APIDOC ## GET /v3/public-identities ### Description Retrieves a list of public identities. This example demonstrates a simple GET request to test your access token. ### Method GET ### Endpoint `https://{tenant}.api.identitynow.com/v3/public-identities?limit=1` ### Parameters #### Query Parameters - **limit** (integer) - Optional - Limits the number of identities returned. Example: `1`. #### Request Headers - **authorization** (string) - Required - The access token in the format 'Bearer {access_token}'. ### Request Example ```bash curl --request GET --url 'https://{tenant}.api.identitynow.com/v3/public-identities?limit=1' --header 'authorization: Bearer {access_token}' ``` ### Response #### Success Response (200) - **(Array of Identity Objects)** - A JSON array representing the public identities found. #### Response Example ```json [ { "id": "a34fsd7f-67f4-471e-90b1-821170b11356", "type": "IDENTITY", "name": "John.Doe", "displayName": "John Doe", "email": "john.doe@example.com", "created": "2023-01-01T10:00:00Z", "modified": "2023-01-01T10:00:00Z" } ] ``` ``` -------------------------------- ### Go: Get Identities using SailPoint SDK Beta Source: https://developer.sailpoint.com/docs/api/beta/list-identities This Go code snippet demonstrates how to retrieve identities using the SailPoint SDK's beta API. It includes examples of filtering, sorting, and pagination. Ensure the SailPoint SDK is installed and configured. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { filters := `id eq "6c9079b270a266a60170a2779fcb0006" or correlated eq false` // 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, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq* (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, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq* (optional) sorters := `name,-cloudStatus` // 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, alias, cloudStatus** (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, alias, cloudStatus** (optional) defaultFilter := `NONE` // string | Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter. (optional) (default to "CORRELATED_ONLY") # string | Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter. (optional) (default to "CORRELATED_ONLY") 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) 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) configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) // Example of how to call the GetIdentities API (replace with actual call) // identities, resp, err := beta.NewIdentitiesApi(apiClient).GetIdentities(context.TODO(), filters, sorters, defaultFilter, count, limit, offset) // if err != nil { // fmt.Fprintf(os.Stderr, "Error when calling IdentitiesApi->GetIdentities: %v\n", err) // } // fmt.Printf("%+v\n", identities) // fmt.Printf("%+v\n", resp) } ``` -------------------------------- ### Golang SDK Example Source: https://developer.sailpoint.com/docs/api/beta/get-access-request-config Example demonstrating how to use the SailPoint Golang SDK to interact with the Beta API, specifically for retrieving access request configurations. ```APIDOC ## Golang SDK Usage Example ### Description This Go code snippet shows how to initialize the SailPoint SDK and make a call to the `GetAccessRequestConfig` endpoint. ### Method GET ### Endpoint /beta/access-request-configs (via SDK) ### Parameters None (handled by SDK) ### Request Example ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.AccessRequestsAPI.GetAccessRequestConfig(context.Background()).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `AccessRequestsAPI.GetAccessRequestConfig``: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `GetAccessRequestConfig`: AccessRequestConfig fmt.Fprintf(os.Stdout, "Response from `AccessRequestsAPI.GetAccessRequestConfig`: %v\n", resp) } ``` ### Response #### Success Response (200) - **AccessRequestConfig** (object) - The access request configuration returned by the API. #### Response Example Output will be printed to stdout, showing the retrieved configuration object. ``` -------------------------------- ### Getting Started with Authentication Source: https://developer.sailpoint.com/docs/api/beta/authentication This section guides you through the initial steps required to authenticate to the SailPoint ISC APIs, including finding tenant OAuth details, generating a PAT, choosing an authorization grant flow, and requesting an access token. ```APIDOC ## Get Started To authenticate to the ISC APIs, follow these steps: 1. **Find your tenant's OAuth details**: Identify your tenant's name, `authorizeEndpoint`, and `tokenEndpoint` URLs. 2. **Generate personal access token**: Create a PAT to initiate the authentication process. 3. **Choose authorization grant flow**: Select the appropriate OAuth 2.0 grant type for your application. 4. **Request access token**: Use the obtained details and PAT to request a JWT `access_token`. ``` -------------------------------- ### SailPoint Provisioning Configuration Example Source: https://developer.sailpoint.com/docs/api/beta/get-service-desk-integration-list An example of a provisioning configuration object for a SailPoint VA. It includes details about universal manager status, managed resources, and a provisioning script. ```json { "id": "2c9180847a7fccdd017aa5896f9f4f6f", "name": "Training VA", "provisioningConfig": { "universalManager": true, "managedResourceRefs": [ { "type": "SOURCE", "id": "2c9180855d191c59015d291ceb051111", "name": "My Source 1" }, { "type": "SOURCE", "id": "2c9180855d191c59015d291ceb052222", "name": "My Source 2" } ], "planInitializerScript": { "source": "\r\n\r\n\r\n Before Provisioning Rule which changes disables and enables to a modify.\r\n " }, "noProvisioningRequests": true, "provisioningRequestExpiration": 7 }, "attributes": { "property": "value", "key": "value" }, "beforeProvisioningRule": { "type": "RULE", "id": "048eb3d55c5a4758bd07dccb87741c78", "name": "Before Provisioning Airtable Rule" } } ``` -------------------------------- ### Start SailPoint Launcher using Go SDK Source: https://developer.sailpoint.com/docs/api/beta/start-launcher This Go code snippet demonstrates how to use the SailPoint Go SDK to start a launcher. It configures the API client, specifies the launcher ID, and calls the `StartLauncher` method. Error handling for the API call is included. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { launcherID := `e3012408-8b61-4564-ad41-c5ec131c325b` // string | ID of the Launcher to be launched # string | ID of the Launcher to be launched configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.LaunchersAPI.StartLauncher(context.Background(), launcherID).Execute() //resp, r, err := apiClient.Beta.LaunchersAPI.StartLauncher(context.Background(), launcherID).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `LaunchersAPI.StartLauncher``: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `StartLauncher`: StartLauncher200Response fmt.Fprintf(os.Stdout, "Response from `LaunchersAPI.StartLauncher`: %v\n", resp) } ``` -------------------------------- ### API GET Request Examples for Pagination Source: https://developer.sailpoint.com/docs/api/beta/api/beta/standard-collection-parameters Examples of GET requests to the SailPoint API demonstrating pagination using 'limit', 'offset', and 'count' parameters. These are used for standard collection endpoints. ```HTTP GET /v3/public-identities?limit=2 ``` ```HTTP GET /v3/public-identities?limit=20&offset=4 ``` ```HTTP GET /v3/public-identities?count=true ``` -------------------------------- ### JSON Example of Slim Discovered Applications Source: https://developer.sailpoint.com/docs/api/beta/get-discovered-applications This JSON example demonstrates the structure of a 'Slim Discovered Application' object. It includes essential details like ID, name, discovery source, and status, omitting more detailed fields. ```json [ { "id": "2d9180835d2e5168015d32f890ca1581", "name": "ExampleApp", "discoverySource": "csv", "discoveredVendor": "ExampleVendor", "description": "An application for managing examples.", "recommendedConnectors": [ "ConnectorA", "ConnectorB" ], "discoveredAt": "2023-01-01T12:00:00Z", "createdAt": "2023-01-01T12:00:00Z", "status": "ACTIVE" }, { "id": "2d9180835d2e5168015d32f890ca1581", "name": "ExampleApp", "discoverySource": "csv", "discoveredVendor": "ExampleVendor", "description": "An application for managing examples.", "recommendedConnectors": [ "ConnectorA", "ConnectorB" ], "discoveredAt": "2023-01-01T12:00:00Z", "createdAt": "2023-01-01T12:00:00Z", "status": "ACTIVE", "associatedSources": [ "e0cc5d7d-bf7f-4f81-b2af-8885b09d9923", "a0303682-5e4a-44f7-bdc2-6ce6112549c1" ] } ] ``` -------------------------------- ### Go SDK Example: Get Public Identity Config Source: https://developer.sailpoint.com/docs/api/beta/get-public-identity-config An example demonstrating how to use the SailPoint Go SDK to retrieve the public identity configuration. ```APIDOC ## Go SDK Example: Get Public Identity Config ### Description This Go code snippet demonstrates how to use the SailPoint Go SDK to call the `GetPublicIdentityConfig` endpoint. ### Language Go ### Code ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) // Example of calling GetPublicIdentityConfig resp, r, err := apiClient.Beta.PublicIdentitiesConfigAPI.GetPublicIdentityConfig(context.Background()).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `PublicIdentitiesConfigAPI.GetPublicIdentityConfig`: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) os.Exit(1) } // Process the response fmt.Fprintf(os.Stdout, "Response from `PublicIdentitiesConfigAPI.GetPublicIdentityConfig`: %+v\n", resp) } ``` ### Dependencies - `github.com/sailpoint-oss/golang-sdk/v2/api_beta` - `github.com/sailpoint-oss/golang-sdk/v2` ``` -------------------------------- ### Service Desk Integration Schema Example Source: https://developer.sailpoint.com/docs/api/beta/patch-before-provisioning-rule An example JSON object representing a Service Desk integration, including its name, description, type, owner reference, and cluster reference. ```json { "name": "Service Desk Integration Name", "description": "A very nice Service Desk integration", "type": "ServiceNowSDIM", "ownerRef": { "type": "IDENTITY", "id": "2c9180a46faadee4016fb4e018c20639", "name": "Support" }, "clusterRef": { "type": "CLUSTER", ``` -------------------------------- ### Example MFA Method Configuration (JSON) Source: https://developer.sailpoint.com/docs/api/beta/get-mfa-okta-config An example JSON object representing the configuration for an Okta MFA method. This includes details like the MFA method name, whether it's enabled, the host of the MFA provider, and access credentials. ```json { "mfaMethod": "okta-verify", "enabled": true, "host": "example.com", "accessKey": "qw123Y3QlA5UqocYpdU3rEkzrK2D497y", "identityAttribute": "email" } ``` -------------------------------- ### List Sources using SailPoint Beta API in Go Source: https://developer.sailpoint.com/docs/api/beta/list-sources This Go code snippet demonstrates how to list sources using the SailPoint Beta API. It initializes the API client, makes a `ListSources` call with optional parameters, and handles potential errors. The response is then printed to standard output. Dependencies include the SailPoint SDK and standard Go libraries like `context`, `fmt`, and `os`. ```go package main import ( "context" "fmt" "os" "github.com/sailpoint/sailpoint-sdk-go/sailpoint" ) func main() { // Example usage of ListSources s// Define optional parameters svar limit int var offset int var count bool filters := "" sorters := "name" forSubadmin := "name" includeIDNSource := true configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) // Make the API call to list sources resp, r, err := apiClient.Beta.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) } // Process the response fmt.Fprintf(os.Stdout, "Response from `SourcesAPI.ListSources`: %v\n", resp) } ``` -------------------------------- ### Get Identity Start Date Source: https://developer.sailpoint.com/docs/api/beta/get-identity-start-date Retrieves the start date for a specific identity. This endpoint is part of the Identity History API within the Beta version of the SailPoint API. ```APIDOC ## GET /beta/identities/{id}/startDate ### Description Retrieves the start date for a specific identity. ### Method GET ### Endpoint /beta/identities/{id}/startDate ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the identity. ### Request Example (No request body for this GET request) ### Response #### Success Response (200) - **string** - The start date of the identity. #### Response Example "2023-10-27T10:00:00Z" ``` -------------------------------- ### Duo MFA Method Configuration Example Source: https://developer.sailpoint.com/docs/api/beta/get-mfa-duo-config This snippet shows an example of a Duo MFA method configuration. It includes the MFA method name, enablement status, host, access key, identity attribute, and additional configuration properties. ```json { "mfaMethod": "duo-web", "enabled": true, "host": "example.com", "accessKey": "qw123Y3QlA5UqocYpdU3rEkzrK2D497y", "identityAttribute": "email", "configProperties": { "skey": "qwERttyZx1CdlQye2Vwtbsjr3HKddy4BAiCXjc5x", "ikey": "Q123WE45R6TY7890ZXCV" } } ``` ```json { "mfaMethod": "duo-web", "enabled": true, "host": "www.example.com", "accessKey": "d******Y", "identityAttribute": "email", "configProperties": { "skey": "6******B", "ikey": "Q123WE45R6TY7890ZXCV" } } ``` -------------------------------- ### Patch SIM Attribute - Node.js Example Source: https://developer.sailpoint.com/docs/api/beta/patch-sim-attributes This Node.js example shows how to patch a SIM attribute using the 'axios' library. It constructs the request URL with the integration ID and sends a JSON Patch object in the request body. Ensure you have 'axios' installed (`npm install axios`). ```javascript const axios = require('axios'); const SIM_INTEGRATION_ID = '12345'; // Replace with your SIM integration ID const API_TOKEN = 'YOUR_ACCESS_TOKEN'; // Replace with your API token async function patchSimAttribute(id, token, patchOperations) { const url = `https://sailpoint.api.identitynow.com/beta/sim-integrations/${id}`; try { const response = await axios.patch(url, patchOperations, { headers: { 'Content-Type': 'application/json-patch+json', 'Authorization': `Bearer ${token}` } }); console.log('SIM attribute patched successfully:', response.data); return response.data; } catch (error) { console.error('Error patching SIM attribute:', error.response ? error.response.data : error.message); throw error; } } // Example usage: const operations = [ { "op": "replace", "path": "/description", "value": "Updated description for SIM integration" } ]; patchSimAttribute(SIM_INTEGRATION_ID, API_TOKEN, operations); ``` -------------------------------- ### JSON Example of Discovered Applications Source: https://developer.sailpoint.com/docs/api/beta/get-discovered-applications This JSON example showcases the full structure of 'Discovered Application' objects. It includes all fields present in the slim version, plus additional details like associated sources, providing a comprehensive view of discovered applications. ```json [ { "id": "app-123", "name": "Example App", "discoverySource": "csv", "discoveredVendor": "Example Vendor", "description": "An application for managing examples.", "recommendedConnectors": [ "ConnectorA", "ConnectorB" ], "discoveredAt": "2023-07-01T12:00:00Z", "createdAt": "2024-06-01T12:00:00Z", "status": "ACTIVE" }, { "id": "app-456", "name": "Sample Tracker", "discoverySource": "Okta SaaS", "discoveredVendor": "Sample Vendor", "description": "A tool for monitoring and managing samples.", "recommendedConnectors": [ "ConnectorC", "ConnectorD" ], "discoveredAt": "2023-08-15T08:00:00Z", "createdAt": "2024-05-20T08:00:00Z", "status": "ACTIVE" } ``` -------------------------------- ### Get Notification Preferences Example - JSON Source: https://developer.sailpoint.com/docs/api/beta/list-notification-preferences This JSON example demonstrates the structure for returning a user's notification preferences. It includes the notification key, a list of preferred mediums, and the modification timestamp. ```json [ { "key": "cloud_manual_work_item_summary", "mediums": [ "EMAIL" ], "modified": "2020-05-15T14:37:06.909Z" } ] ``` -------------------------------- ### Example Source Object Source: https://developer.sailpoint.com/docs/api/beta/get-multi-host-integrations Provides a JSON example of a source object as it would be returned by the SailPoint API, illustrating the structure and common fields. ```APIDOC ## Example Source Object ### Description This example demonstrates the structure of a source object returned by the SailPoint API. It includes details about the source's ID, name, owner, cluster, connector information, and various configuration settings. ### Response Example ```json { "id": "2c91808568c529c60168cca6f90c1324", "name": "My Multi-Host Integration", "description": "This is a Multi-Host Integration.", "owner": { "type": "IDENTITY", "id": "2c91808568c529c60168cca6f90c1313", "name": "MyName" }, "cluster": { "type": "CLUSTER", "id": "2c9180866166b5b0016167c32ef31a66", "name": "Corporate Cluster" }, "type": "Multi-Host - Microsoft SQL Server", "connector": "multihost-microsoft-sql-server", "lastSourceUploadSuccessCount": 50, "maxSourcesPerAggGroup": 10, "connectorClass": "sailpoint.connector.OpenConnectorAdapter", "connectorAttributes": { "multiHostAttributes": { "password": "Password", "user": "Username", "connector_files": "mssql-jdbc-8.4.1.jre8.jar", "authType": "SQLAuthentication" }, "connectorFileUploadHistory": { "connectorFileNameUploadedDate": "2024-08-29T10:20:38.896479Z" }, "maxAllowedSources": 30, "lastSourceUploadCount": 50, "showEntitlementSchema": true, "showAccountSchema": true, "multihost_status": "ready" }, "deleteThreshold": 10, "authoritative": false, "managementWorkgroup": { "type": "GOVERNANCE_GROUP", "id": "2c91808568c529c60168cca6f90c2222", "name": "My Management Workgroup" }, "healthy": true, "status": "SOURCE_STATE_HEALTHY", "since": "2021-09-28T15:48:29.380Z", "connectorId": "multihost-microsoft-sql-server", "connectorName": "Multi-Host Microsoft SQL Server", "connectionType": "direct", "connectorImplementationId": "multihost-microsoft-sql-server", "created": "2022-02-08T14:50:03.827Z", "modified": "2024-01-23T18:08:50.897Z", "credentialProviderEnabled": false, "category": "CredentialProvider" } ``` ``` -------------------------------- ### Golang SDK Example Source: https://developer.sailpoint.com/docs/api/beta/get-password-dictionary An example demonstrating how to use the SailPoint Golang SDK to access the Beta API, specifically for retrieving the password dictionary. ```APIDOC ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.PasswordDictionaryAPI.GetPasswordDictionary(context.Background()).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `PasswordDictionaryAPI.GetPasswordDictionary`: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) return } // Response from `GetPasswordDictionary`: string fmt.Fprintf(os.Stdout, "Response from `PasswordDictionaryAPI.GetPasswordDictionary`: %v\n", resp) } ``` ``` -------------------------------- ### Service Desk Integration Schema Example Source: https://developer.sailpoint.com/docs/api/beta/create-sim-integration Example JSON payload demonstrating the structure for a Service Desk integration. This includes details like name, description, type, owner references, cluster references, and provisioning configurations. ```json { "name": "Service Desk Integration Name", "description": "A very nice Service Desk integration", "type": "ServiceNowSDIM", "ownerRef": { "type": "IDENTITY", "id": "2c9180a46faadee4016fb4e018c20639", "name": "Support" }, "clusterRef": { "type": "CLUSTER", "id": "2c9180847a7fccdd017aa5896f9f4f6f", "name": "Training VA" } } ``` -------------------------------- ### Get SailPoint Account Activity using Go SDK Source: https://developer.sailpoint.com/docs/api/beta/get-account-activity Example of retrieving a specific account activity from SailPoint using the Go SDK. This code initializes the SDK, sets up a context, and makes a GET request to the AccountActivitiesAPI. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { id := `ef38f94347e94562b5bb8424a56397d8` // string | The account activity id # string | The account activity id configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.AccountActivitiesAPI.GetAccountActivity(context.Background(), id).Execute() //resp, r, err := apiClient.Beta.AccountActivitiesAPI.GetAccountActivity(context.Background(), id).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `AccountActivitiesAPI.GetAccountActivity``: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `GetAccountActivity`: CancelableAccountActivity fmt.Fprintf(os.Stdout, "Response from `AccountActivitiesAPI.GetAccountActivity`: %v\n", resp) } ``` -------------------------------- ### Go SDK Example for SailPoint API Beta Common Access Source: https://developer.sailpoint.com/docs/api/beta/get-common-access This Go code snippet demonstrates how to use the SailPoint SDK to fetch common access resources from the API Beta. It shows how to initialize the API client, set parameters like offset, limit, count, filters, and sorters, and handle the API response. The code requires the `golang-sdk` library and a configured SailPoint API client. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { 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) 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) 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 := `access.type eq "ROLE"` // 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: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq* (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: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq* (optional) sorters := `access.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: **access.name, status** By default the common access items are sorted by 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: **access.name, status** By default the common access items are sorted by name, ascending. (optional) configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.IAICommonAccessAPI.GetCommonAccess(context.Background()).Execute() //resp, r, err := apiClient.Beta.IAICommonAccessAPI.GetCommonAccess(context.Background()).Offset(offset).Limit(limit).Count(count).Filters(filters).Sorters(sorters).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `IAICommonAccessAPI.GetCommonAccess``: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } // response from `GetCommonAccess`: []CommonAccessResponse fmt.Fprintf(os.Stdout, "Response from `IAICommonAccessAPI.GetCommonAccess`: %v\n", resp) } ``` -------------------------------- ### POST /api/triggers/invocation/test Source: https://developer.sailpoint.com/docs/api/beta/triggers Start a test invocation for a trigger subscription. This helps in verifying the subscription setup and filter logic. ```APIDOC ## Start a test invocation ### Description Start a test invocation for a trigger subscription. ### Method POST ### Endpoint `/api/triggers/invocation/test` ### Parameters #### Request Body * **triggerId** (string) - Required - The ID of the event trigger. * **subscriberUrl** (string) - Required - The URL to send the test event payload to. * **filter** (string) - Optional - The filter to apply for the test invocation. ``` -------------------------------- ### GET /beta/source-usages/:sourceId/status Source: https://developer.sailpoint.com/docs/api/beta/get-status-by-source-id This API returns the status of the source usage insights setup by IDN source ID. ```APIDOC ## GET /beta/source-usages/:sourceId/status ### Description This API returns the status of the source usage insights setup by IDN source ID. ### Method GET ### Endpoint https://sailpoint.api.identitynow.com/beta/source-usages/:sourceId/status ### Parameters #### Path Parameters - **sourceId** (string) - Required - ID of IDN source. Found in List Sources. Example: 2c9180835d191a86015d28455b4a2329 ``` -------------------------------- ### List OAuth Clients using Go SDK Source: https://developer.sailpoint.com/docs/api/beta/list-oauth-clients Demonstrates how to list OAuth clients using the SailPoint Go SDK (Beta). It shows how to initialize the SDK client, set up context, and make the API call. Error handling for the API request is also included. Dependencies include the `golang-sdk/v2/api_beta` and `golang-sdk/v2` packages. ```go package main import ( "context" "fmt" "os" beta "github.com/sailpoint-oss/golang-sdk/v2/api_beta" sailpoint "github.com/sailpoint-oss/golang-sdk/v2" ) func main() { filters := `lastUsed le 2023-02-05T10:59:27.214Z` configuration := sailpoint.NewDefaultConfiguration() apiClient := sailpoint.NewAPIClient(configuration) resp, r, err := apiClient.Beta.OAuthClientsAPI.ListOauthClients(context.Background()).Execute() //resp, r, err := apiClient.Beta.OAuthClientsAPI.ListOauthClients(context.Background()).Filters(filters).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `OAuthClientsAPI.ListOauthClients`: %v\n", err) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) } fmt.Fprintf(os.Stdout, "Response from `OAuthClientsAPI.ListOauthClients`: %v\n", resp) } ``` -------------------------------- ### Get Trigger Invocations - Success Response (200) Source: https://developer.sailpoint.com/docs/api/beta/start-test-trigger-invocation Returns a list of trigger invocations that have been started for specified subscriptions. The response includes invocation ID, trigger ID, secret, and content JSON. ```json [ { "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde", "triggerId": "idn:access-requested", "secret": "0f979022-08be-44f2-b6f9-7393ec73ed9b", "contentJson": { "workflowId": 1234 } } ] ```