Uploads a backup file
POST/configuration-hub/backups/uploads
This post will upload a JSON backup 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 that currently support by upload file functionality are the same as the ones supported by our regular backup functionality. here: SaaS Configuration.
The request will need the following security scope:
- sp:config:manage
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 file.
Responses
- 202
- 400
- 401
- 403
- 429
- 500
Upload job accepted and queued for processing.
- application/json
- Schema
- Example (from schema)
Schema
Unique id assigned to this job.
Possible values: [NOT_STARTED
, IN_PROGRESS
, COMPLETE
, CANCELLED
, FAILED
]
Status of the job.
Possible values: [BACKUP
, DRAFT
]
Type of the job, either Backup or Draft.
The name of the tenant performing the upload
The name of the requester.
The time the job was started.
The time of the last update to the job.
The name assigned to the upload file in the request body.
Default value: true
Is the job a regular backup job, if so is the user allowed to delete the backup file. Since this is an upload job it remains as false.
Is the job a regular backup job, if so is it partial. Since this is an upload job it remains as false.
Possible values: [UPLOADED
, AUTOMATED
, MANUAL
]
What kind of backup is this being treated as.
Possible values: [HYDRATED
, NOT_HYDRATED
]
have the objects contained in the upload file been hydrated.
{
"jobId": "3469b87d-48ca-439a-868f-2160001da8c1",
"status": "COMPLETE",
"type": "BACKUP",
"tenant": "uploaderTenant",
"requesterName": "support",
"created": "2021-05-11T22:23:16Z",
"modified": "2021-05-11T22:23:16Z",
"name": "A_NEW_UPLOADED_BACKUP",
"userCanDelete": false,
"isPartial": false,
"backupType": "UPLOADED",
"hydrationStatus": "NOT_HYDRATED"
}
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."
}
]
}