Create Multi-Host Integration
POST/multihosts
This API is used to create Multi-Host Integration. Multi-host Integration holds similar types of sources.
A token with Org Admin or Multi-Host Admin authority is required to access this endpoint.
Request
- application/json
Body
required
The specifics of the Multi-Host Integration to create
Multi-Host Integration's human-readable name.
Multi-Host Integration's human-readable description.
owner
object
required
Reference to identity object who owns the source.
Possible values: [IDENTITY
]
Type of object being referenced.
Owner identity's ID.
Owner identity's human-readable display name.
cluster
object
nullable
Reference to the source's associated cluster.
Possible values: [CLUSTER
]
Type of object being referenced.
Cluster ID.
Cluster's human-readable display name.
Connector script name.
connectorAttributes
object
Multi-Host Integration specific configuration. User can add any number of additional attributes. e.g. maxSourcesPerAggGroup, maxAllowedSources etc.
Multi-Host Integration specific configuration. User can add any number of additional attributes. e.g. maxSourcesPerAggGroup, maxAllowedSources etc.
managementWorkgroup
object
nullable
Reference to management workgroup for the source.
Possible values: [GOVERNANCE_GROUP
]
Type of object being referenced.
Management workgroup ID.
Management workgroup's human-readable display name.
Date-time when the source was created
Date-time when the source was last modified.
Responses
- 201
- 400
- 401
- 403
- 404
- 429
- 500
OK. Returned if the request was successfully accepted into the system.
- application/json
- Schema
- Example (from schema)
Schema
Multi-Host Integration ID.
Multi-Host Integration's human-readable name.
Multi-Host Integration's human-readable description.
owner
object
required
Reference to identity object who owns the source.
Possible values: [IDENTITY
]
Type of object being referenced.
Owner identity's ID.
Owner identity's human-readable display name.
cluster
object
nullable
Reference to the source's associated cluster.
Possible values: [CLUSTER
]
Type of object being referenced.
Cluster ID.
Cluster's human-readable display name.
Specifies the type of system being managed e.g. Workday, Multi-Host - Microsoft SQL Server, etc.. If you are creating a delimited file source, you must set the provisionasCsv
query parameter to true
.
Connector script name.
Last successfully uploaded source count of given Multi-Host Integration.
Maximum sources that can contain in a aggregation group of Multi-Host Integration.
Fully qualified name of the Java class that implements the connector interface.
connectorAttributes
object
Connector specific configuration. This configuration will differ for Multi-Host Integration type.
Maximum sources allowed count of a Multi-Host Integration
Last upload sources count of a Multi-Host Integration
connectorFileUploadHistory
object
File name of the connector JAR
Possible values: [ready
, processing
, fileUploadInProgress
, sourceCreationInProgress
, aggregationGroupingInProgress
, aggregationScheduleInProgress
, deleteInProgress
, deleteFailed
]
Multi-Host integration status.
Default value: true
Show account schema
Default value: true
Show entitlement schema
multiHostAttributes
object
Attributes of Multi-Host Integration
Password.
Connector file.
Authentication type.
Username.
Possible values: <= 100
Number from 0 to 100 that specifies when to skip the delete phase.
When this is true, it indicates that the source is referenced by an identity profile.
managementWorkgroup
object
nullable
Reference to management workgroup for the source.
Possible values: [GOVERNANCE_GROUP
]
Type of object being referenced.
Management workgroup ID.
Management workgroup's human-readable display name.
When this is true, it indicates that the source is healthy.
Possible values: [SOURCE_STATE_ERROR_ACCOUNT_FILE_IMPORT
, SOURCE_STATE_ERROR_CLUSTER
, SOURCE_STATE_ERROR_SOURCE
, SOURCE_STATE_ERROR_VA
, SOURCE_STATE_FAILURE_CLUSTER
, SOURCE_STATE_FAILURE_SOURCE
, SOURCE_STATE_HEALTHY
, SOURCE_STATE_UNCHECKED_CLUSTER
, SOURCE_STATE_UNCHECKED_CLUSTER_NO_SOURCES
, SOURCE_STATE_UNCHECKED_SOURCE
, SOURCE_STATE_UNCHECKED_SOURCE_NO_ACCOUNTS
]
Status identifier that gives specific information about why a source is or isn't healthy.
Timestamp that shows when a source health check was last performed.
Connector ID
Name of the connector that was chosen during source creation.
Possible values: [direct
, file
]
Type of connection (direct or file).
Connector implementation ID.
Date-time when the source was created
Date-time when the source was last modified.
If this is true, it enables a credential provider for the source. If credentialProvider is turned on, then the source can use credential provider(s) to fetch credentials.
Source category (e.g. null, CredentialProvider).
{
"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.3801666300Z",
"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"
}
Client Error - Returned if the request body is invalid.
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Fine-grained error code providing more detail of the error.
Unique tracking id for the error.
messages
object[]
Generic localized reason for error
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
causes
object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
{
"error": "JWT validation failed: JWT is expired"
}
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
- application/json
- Schema
- Example (from schema)
- 403
Schema
Array [
]
Array [
]
Fine-grained error code providing more detail of the error.
Unique tracking id for the error.
messages
object[]
Generic localized reason for error
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
causes
object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 403 response object
{
"detailCode": "403 Forbidden",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server understood the request but refuses to authorize it."
}
]
}
Not Found - returned if the request URL refers to a resource or object that does not exist
- application/json
- Schema
- Example (from schema)
- 404
Schema
Array [
]
Array [
]
Fine-grained error code providing more detail of the error.
Unique tracking id for the error.
messages
object[]
Generic localized reason for error
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
causes
object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 404 response object
{
"detailCode": "404 Not found",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server did not find a current representation for the target resource."
}
]
}
Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
{
"message": " Rate Limit Exceeded "
}
Internal Server Error - Returned if there is an unexpected error.
- application/json
- Schema
- Example (from schema)
- 500
Schema
Array [
]
Array [
]
Fine-grained error code providing more detail of the error.
Unique tracking id for the error.
messages
object[]
Generic localized reason for error
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
causes
object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
The locale for the message text, a BCP 47 language tag.
Possible values: [DEFAULT
, REQUEST
, null
]
An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
Actual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 500 response object
{
"detailCode": "500.0 Internal Fault",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "An internal fault occurred."
}
]
}