Upload a Configuration
POST/configuration-hub/backups/uploads
This API uploads a JSON configuration file into a tenant.
Configuration files can be managed and deployed via Configuration Hub by uploading a json file which contains configuration data. The JSON file should be the same as the one used by our import endpoints. The object types supported by upload configuration file functionality are the same as the ones supported by our regular backup functionality.
Refer to SaaS Configuration for more information about supported objects.
Request
- multipart/form-data
Body
required
The body will consist of "data" which should contain the json file and name wish should be the name you want to assign to the uploaded file"
Example
data: "uploaded.json", name: "A_NEW_UPLOADED_BACKUP"
Sample Upload File
{ "version": 1, "tenant": "a-sample-tenant", "objects": [ { "version": 1, "self": { "id": "0a59c7196d2917f8aa6d29686e6600fb", "type": "SOURCE", "name": "Extended Form" }, "object": { "id": "0a59c7196d2917f8aa6d29686e6600fb", "name": "Extended Form", "type": "DelimitedFile", "connectorClass": "sailpoint.connector.DelimitedFileConnector", "connectorScriptName": "delimited-file-angularsc", "description": "Migrated app - Extended Form (original ID: 0a59c7196d2917f8aa6d29686e6600fb)", "deleteThreshold": 10, "provisionAsCsv": false, "owner": { "type": "IDENTITY", "id": "0a59c7196d2917f8816d29685fed00c3", "name": "slpt.services" }, "connectorAttributes": { "beforemoveAccount": "Do Nothing", "beforemoverAccount": "Do Nothing", "busApp": "false", "file": "Empty", "filetransport": "local", "filterEmptyRecords": "true", "group.filetransport": "local", "group.filterEmptyRecords": "true", "group.partitionMode": "auto", "hasHeader": "true", "indexColumn": "ID", "isCaseInsensitiveMerge": "false", "isSortedByIndexColumn": "false", "loaProcess": "Do Nothing", "ltdProcess": "Do Nothing", "mergeRows": "false", "moverProcess": "Do Nothing", "moverRevocation": "Do Nothing", "nativeChangeDetectionAttributeScope": "entitlements", "nativeChangeDetectionEnabled": "false", "nativeChangeProcess": "Do Nothing", "parseType": "delimited", "partitionMode": "auto", "policyType": "Do Nothing", "rehireProcess": "Do Nothing", "reverseleaverProcess": "Do Nothing", "rtwloaProcess": "Do Nothing", "rtwltdProcess": "Do Nothing", "stopIfLineHasWrongColumnLength": "false", "templateApplication": "DelimitedFile Template", "terminationProcess": "Do Nothing" }, "schemas": [], "provisioningPolicies": [], "features": [ "DIRECT_PERMISSIONS", "NO_RANDOM_ACCESS", "DISCOVER_SCHEMA" ] } } ] }
JSON file containing the objects to be imported.
Name that will be assigned to the uploaded configuration file.
Responses
- 202
- 400
- 401
- 403
- 429
- 500
Upload job accepted and queued for processing.
- application/json
- Schema
- Example (from schema)
Schema
- MANUAL - The backup was created by a user.
- AUTOMATED - The backup was created by devops.
- AUTOMATED_DRAFT - The backup was created during a draft process.
- UPLOADED - The backup was created by uploading an existing configuration file.
Unique id assigned to this backup.
Possible values: [NOT_STARTED
, IN_PROGRESS
, COMPLETE
, CANCELLED
, FAILED
]
Status of the backup.
Possible values: [BACKUP
]
Type of the job, will always be BACKUP for this type of job.
The name of the tenant performing the upload
The name of the requester.
Default value: true
Whether or not a file was created and stored for this backup.
The time the job was started.
The time of the last update to the job.
The time the job was completed.
The name assigned to the upload file in the request body.
Default value: true
Whether this backup can be deleted by a regular user.
Whether this backup contains all supported object types or only some of them.
Possible values: [UPLOADED
, AUTOMATED
, MANUAL
]
Denotes how this backup was created.
options
object
nullable
Backup options control what will be included in the backup.
Possible values: [ACCESS_PROFILE
, ACCESS_REQUEST_CONFIG
, ATTR_SYNC_SOURCE_CONFIG
, AUTH_ORG
, CAMPAIGN_FILTER
, FORM_DEFINITION
, GOVERNANCE_GROUP
, IDENTITY_OBJECT_CONFIG
, IDENTITY_PROFILE
, LIFECYCLE_STATE
, NOTIFICATION_TEMPLATE
, PASSWORD_POLICY
, PASSWORD_SYNC_GROUP
, PUBLIC_IDENTITIES_CONFIG
, ROLE
, RULE
, SEGMENT
, SERVICE_DESK_INTEGRATION
, SOD_POLICY
, SOURCE
, TAG
, TRANSFORM
, TRIGGER_SUBSCRIPTION
, WORKFLOW
]
Object type names to be included in a Configuration Hub backup command.
objectOptions
object
Additional options targeting specific objects related to each item in the includeTypes field.
property name*
ObjectExportImportNames
Object names to be included in a backup.
Possible values: [HYDRATED
, NOT_HYDRATED
]
Whether the object details of this backup are ready.
Number of objects contained in this backup.
Possible values: [SYNCED
, NOT_SYNCED
, SYNC_FAILED
]
Whether this backup has been transferred to a customer storage location.
{
"jobId": "3469b87d-48ca-439a-868f-2160001da8c1",
"status": "COMPLETE",
"type": "BACKUP",
"tenant": "tenant-name",
"requesterName": "Requester Name",
"fileExists": true,
"created": "2021-05-11T22:23:16Z",
"modified": "2021-05-11T22:23:16Z",
"completed": "2021-05-11T22:23:16Z",
"name": "Backup Name",
"userCanDelete": false,
"isPartial": false,
"backupType": "MANUAL",
"options": {
"includeTypes": [
"TRIGGER_SUBSCRIPTION"
],
"objectOptions": {
"TRIGGER_SUBSCRIPTION": {
"includedNames": [
"Trigger Subscription name"
]
}
}
},
"hydrationStatus": "NOT_HYDRATED",
"totalObjectCount": 10,
"cloudStorageStatus": "SYNCED"
}
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."
}
]
}
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."
}
]
}