Available methods
This article provides an overview of the Xopero ONE Management Service REST API methods designed for Git-related features and operations.
Authorization
Login method (POST)
Use this method to login to Xopero ONE Management Service.
The generated accessToken must be used for authorization in all subsequent API requests.
Endpoint:
POST https://<server_address>/account/loginMethod parameters:
email
Your Xopero ONE username (email address).
string
password
Your Xopero ONE password.
string
rememberMe
Specifies whether to remember the session.
bool
JSON example:
{
"email":"[email protected]",
"password":"admin123",
"rememberMe":true
}Response:
{
"userId":"a4ac78431-30c2-4d65-bd3e-eb6416784c", "accessToken":"yMDA1LzA1L2lka4acXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6ImZiODZiNDMxLTMwYzItNGQ2NS1iZDNlLWViNjQxzL25hbWUiOiJhjm1lbG9uQHhvcGVyby5jb20iLCJodHRwOhjvc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2a4aclbWFpbGFkZHJlc3MiOiJtLm1lbG9uQHhvcGVyby5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiU3l50IiwiVXNlck1hbmFnZW1lbnQiXSwiZXhwIjoxNjU0NjkwNhj4LCJpc3MiOiJodHRa4acxob3N0OjUwMDAiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjUwMDAifQ.eHVRw1KqYi3SOqN-AJUXoEIFKxGVokhoMp910L1LkzA"
}GitOrganizationController
GetMany method (POST)
Retrieves a list of Git organizations.
Authorization is required.
Endpoint:
POST https://<server_address>/git/organizations/getmanyMethod parameters:
limit
Number of repositories per page.
int
orderby
Specifies the field and sort direction for returned results.
string
ordertype
Specifies the sort order.
string
page
Page number.
int
filters
Data filters.
array [filters]
JSON example:
{
"limit": 2,
"orderby": "Name",
"ordertype": "asc",
"Page": 2
}Response:
{
"currentPage": 2,
"pageCount": 2,
"totalEntries": 4,
"result": [
{
"id": "a4ac2cd0-ed2f-4ced-be39-60c631e033ff",
"driver": 1,
"name": "OrgName",
"apiUrl": null,
"isReadOnly": false,
"protectedRepositories": 43,
"totalRepositories": 58,
"missingLicences": 58,
"removedRepositories": 15,
"defaultWorkerId": "a4ac11eb-bbe7-406e-b3da-24fb4df5642a",
"isCreatedByMarketplace": false,
"synchronizationInProgress": false,
"plans": [
{
"id": "a4acff69-266e-4771-b47b-fd5e4fae6a40",
"name": "name1",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 0,
"warnings": 0,
"errors": 1
},
"planFinishedTime": 1643754961233,
"isRunning": false
},
{
"id": "a4ac8dd-6bf4-4c6c-8bc3-7305a9cc4dad",
"name": "name2",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 0,
"warnings": 0,
"errors": 1
},
"planFinishedTime": 1643754482141,
"isRunning": false
},
{
"id": "a4ac8001-1d3f-45ae-bb7a-49e86286ad6b",
"name": "name3",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 0,
"warnings": 0,
"errors": 1
},
"planFinishedTime": 1643754482453,
"isRunning": false
}
]
},
{
"id": "a4ac6bff8-0000-0000-0000-000000000000",
"driver": 2,
"name": "xopero",
"apiUrl": null,
"isReadOnly": false,
"protectedRepositories": 1,
"totalRepositories": 775,
"missingLicences": 676,
"removedRepositories": 0,
"defaultWorkerId": "a4ac0f30-6641-a4ac7-ac26-fd7e47abf8f3",
"isCreatedByMarketplace": false,
"synchronizationInProgress": false,
"plans": [
{
"id": "3a4ac5-fdd1-4a4ac1-9415-66d0fbedb0e0",
"name": "name1",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 1,
"warnings": 0,
"errors": 0
},
"planFinishedTime": 1645136722019,
"isRunning": false
},
{
"id": "a4aca5252-2d02-a4ac-8a24-e2be4598c8ce",
"name": "name2",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 0,
"warnings": 1,
"errors": 0
},
"planFinishedTime": 1645115366992,
"isRunning": false
},
{
"id": "a4acb8c-7b2a-a4ac83-8167-44a9a1e14272",
"name": "name3",
"backupType": 5,
"includeMetadata": true,
"repoCount": 1,
"lastStatus": {
"successes": 0,
"warnings": 1,
"errors": 0
},
"planFinishedTime": 1645115380587,
"isRunning": false
}
]
}
]
}Plans controller
AttachGitRepository method (POST)
Adds a Git repository to a backup plan, provided both the repository and plan exist.
Authorization is required.
Endpoint:
POST https://<server_address>/plans/attachgitrepositoryMethod Parameters:
planid
Plan ID*.
guid
repositoryid
Git repository ID.
guid
JSON example:
{
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"ca4ac8f1c-a425-4869-8757-32c6567gc9aeb"
}Response:
200 OKDetachGitRepository method (POST)
Detaches a Git repository from a backup plan.
Authorization is required.
Endpoint:
POST https://<server_address>/plans/detachgitrepositoryMethod parameters:
planid
Plan ID*.
guid
repositoryid
Git repository ID.
guid
JSON example:
{
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"a4ac8f1c-a425-48hj-8757-32hj567gchjeb"
}Response:
200 OKListAssignedToOrganization method (POST)
Returns a list of backup plans to which the organization’s repositories are assigned.
Authorization is required.
Endpoint:
POST https://<server_address>/plans/listassignedtoorganizationMethod parameters:
limit
Specifies the maximum number of results to return in a single API response.
int
page
Page number.
int
organizationid
Git organization ID.
guid
JSON example:
{
"limit":5,
"page":5,
"organizationid":"a4a4acgd0-eg78f-4a4ac-kl39-99ka4ac1e777ff"
}Response:
{
"currentPage": 5,
"pageCount": 5,
"totalEntries": 23,
"result": [
{
"id": "ea6a260b-a4ac-4204-a92d-918e6940b136",
"name": "example1",
"includeAllRepositories": false,
"repositoryIds": [
"c1961c1c-a425-a4ac-8757-32d5b6fc9aeb"
]
},
{
"id": "fba158dd-6bf4-a4ac-8bc3-7305a9cc4dad",
"name": "example2",
"includeAllRepositories": false,
"repositoryIds": [
"de5c5995-b422-43c4-90b7-7ee182480dbb"
]
},
{
"id": "fdb48001-1d3f-45ae-bb7a-49e86286ad6b",
"name": "example3",
"includeAllRepositories": false,
"repositoryIds": [
"a4ac5995-b422-43c4-a4ac-7ee182480dbb"
]
}
]
}ModifyGitPlan method (POST)
Edits an existing Git backup plan.
Authorization is required.
Endpoint:
POST https://<server_address>/plans/modifygitplanMethod parameters:
id
Plan ID*.
guid
name
Plan name.
string
isActive
Indicates whether the schedule is currently enabled (true) or disabled (false).
bool
type
Specifies the type of the backup plan.
EPlanType
backupType
Backup type (if the plan type is backup).
EPlanType
storageId
Storage ID.
guid
repositoriesIds
Git repository ID table.
array [guid]
workerId
The unique identifier of the device performing the operation.
guid
schedule
Backup schedule.
BackupScheduleDTO
advancedOptions
Advanced options.
dictionary [string, string]
compressionSettings
Compression settings.
CompressionSettingsEntry
encryptionSettings
Encryption settings.
EncryptionSettingsEntry
customActions
User defined actions.
BackupCustomActionsEntry
inculdeAllReposistories
If true, the plan ignores selected repositories and includes all repositories from the organization.
bool
organizationId
Git organization ID.
guid
includeMetadata
If true, the backup includes only metadata.
bool
JSON example:
{
"id":"a4acc15-b08b-40cb-a4ac-5e40ea4ac54",
"isActive":true,
"name":"example",
"backupType":5,
"schedule":{
"id":"a4ac21-6da6-4c8c-a4ac5-f2ffca4ac516",
"scheme":3,
"delay":0,
"preventSystemSleep":false,
"options":[
{
"type":1,
"trigger":1,
"frequency":1,
"days":[
1
],
"startAt":[
{
"hour":17,
"minute":25
}
],
"interval":0,
"nthDayOfWeek":0
},
{
"type":3,
"trigger":1,
"frequency":3,
"days":[
1,
2,
3,
4,
5
],
"startAt":[
{
"hour":17,
"minute":25
}
],
"interval":0,
"nthDayOfWeek":0
}
],
"backupWindow":
[
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
],
"retention":{
"id":"00000000-0000-0000-0000-000000000000",
"rule":1,
"options":null,
"order":0
}
},
"compressionSettings":{
"codec":2,
"level":2
},
"encryptionSettings":null,
"customActions":{
"preBackupAction":null,
"postSnapshotAction":null,
"postBackupAction":null
},
"advancedOptions":{
"useVss":"True",
"maxTaskRetriesCount":"3",
"taskRetriesFrequency":"60000",
"maxConcurrentTasks":"5",
"processorProperties_PartSize":"1048576"
},
"deltaSettings":null,
"workerId":"a4ac1eb-bbe7-a4ac-b3da-a4acf5642a",
"filteringSettings":null,
"organizationId":"a4ac2cd0-ea4ac-4ced-be39-6a4ace033ff",
"repositoriesIds":[
"c1961c1c-a425-4769-8757-32d5b6fc9aeb"
],
"includeAllRepositories":false,
"includeMetadata":true,
"storageId":"a4ac74ac-7a4ac-4fec-9448-a4ace9267d7"
}Response:
200 OKGitRepositoryController
Activate method (POST)
Activates licenses for selected Git repositories.
Authorization is required with a user account that has one of the following roles: DataRemoveManagement or GitManagement.
Endpoint:
POST https://<server_address>/git/repositories/activateMethod parameters:
Ids
IDs of the repositories to be activated.
array [guid]
JSON example:
{
"Ids":[
"a4ac979e-0000-0000-0000-000000000000",
"a4acca07-0000-0000-0000-000000000000",
"a4ac7c5-0000-0000-0000-000000000000",
"a4ac9d7a-0000-0000-0000-000000000000",
"1a4ac9bc9-0000-0000-0000-000000000000",
"a4ac79fe9-0000-0000-0000-000000000000",
"a4ac3f220-0000-0000-0000-000000000000",
"a4aca817-0000-0000-0000-000000000000"
]
}Response:
{
"success": [],
"error": [
{
"id": "a4ac7979e-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4acdca07-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4ac797c5-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4ac79d7a-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4ac79bc9-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4ac79fe9-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4ac3f220-0000-0000-0000-000000000000",
"errorCode": "LI5020"
},
{
"id": "a4acea817-0000-0000-0000-000000000000",
"errorCode": "LI5020"
}
]
}Deactivate method (POST)
Deactivates licenses for selected Git repositories.
Authorization is required with a user account that has one of the following roles: DataRemoveManagement or GitManagement.
Endpoint:
POST https://<server_address>/git/repositories/deactivateMethod parameters:
Ids
IDs of the repositories to be deactivated.
array [guid]
JSON example:
{
"Ids":[
"a4ac7979e-0000-0000-0000-000000000000",
"a4acdca07-0000-0000-0000-000000000000",
"a4ac797c5-0000-0000-0000-000000000000",
"a4ac79d7a-0000-0000-0000-000000000000",
"a4ac79bc9-0000-0000-0000-000000000000",
"a4ac79fe9-0000-0000-0000-000000000000",
"a4ac3f220-0000-0000-0000-000000000000",
"a4acea817-0000-0000-0000-000000000000"
]
}Response:
{
"success": [],
"error": [
{
"id": "a4ac7979e-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4acdca07-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4ac797c5-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4ac79d7a-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4ac79bc9-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4ac79fe9-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4ac3f220-0000-0000-0000-000000000000",
"errorCode": "GT1001"
},
{
"id": "a4acea817-0000-0000-0000-000000000000",
"errorCode": "GT1001"
}
]
}GetMany method (POST)
Retrieves a list of the organization’s Git repositories.
Authorization is required.
Endpoint:
POST https://<server_address>/git/repositories/getmanyMethod parameters:
id
Git organization ID.
guid
limit
Defines the number of repositories returned per page.
int
orderby
The name of the field to sort by.
string
ordertype
Defines the sorting order: ascending (asc) or descending (desc).
string
page
Page number.
int
filters
Data filters.
array [filter]
JSON example:
{
"id": "a4ac2cd0-a4ac-4ced-be39-a4ac31e033ff",
"limit": 2,
"orderby": "Name",
"ordertype": "asc",
"page": 1,
"filters":[
{
"operator": "eq",
"value": true,
"property": "IsRemoved"
}
]
}Response:
{
"currentPage": 1,
"pageCount": 1,
"totalEntries": 2,
"result": {
"synchronizationInProgress": false,
"lastSynchronizationRepositoriesStartTime": 1645546071481,
"repositories": [
{
"id": "a4ac3ac7d-99e4-a4ac-b5a4-a4acdeee5",
"serverId": "a4acac7d-99e4-a4ac-b5a4-ea4ac2deee5",
"name": "org/repo1",
"lastBackup": 0,
"lastSuccessfulBackup": 0,
"nextBackup": 0,
"isProtected": true,
"isRemoved": true,
"status": 2,
"lastBackupTaskStatus": 0,
"isPublic": false
},
{
"id": "a4acf294-b30e-a4ac-aabb-6a4ac6578686",
"serverId": "a4ac294-b30e-a4ac-aabb-63a4ac578686",
"name": "org/repo2",
"lastBackup": 0,
"lastSuccessfulBackup": 0,
"nextBackup": 1645556400000,
"isProtected": true,
"isRemoved": true,
"status": 2,
"lastBackupTaskStatus": 0,
"isPublic": false
}
],
"removedRepositories": 15
}Remove method (POST)
Deletes repository data from the system.
Authorization is required with a user account that has one of the following roles: DataRemoveManagement or GitManagement.
Endpoint:
POST https://<server_address>/git/repositories/removeMethod parameters:
id
A list of IDs of the repositories to be deleted from the system.
guid
removedata
If true, the system also deletes the backup data of the specified repositories.
bool
JSON example:
{
"id": "a4acd28-eee0-404a-a4ac0-6ca4ac260ca",
"removedata": true
}Response:
{
"succeededIds": [
"a4ac8d28-eee0-a4ac-a070-6a4ac76260ca"
],
"failedIds": [],
"errors": []
}Synchronization
Sync method (POST)
Runs synchronization for your Git organization.
Authorization is required.
Endpoint:
POST https://<server_address>/git/repositories/syncMethod parameters:
id
Git organization ID.
guid
JSON example:
{
"id": "a4ac2cd0-a4ac-4ced-a4ac-60ca4ac3ff"
}Response:
200 OKLast updated