This article describes available methods on Xopero ONE Management Service REST API. These methods are dedicated for Git-related features/operations in Xopero ONE.
Available REST API methods
Authorization method
Login method (POST) Login to the Management Service. The generated access token should be used for authorization during subsequent queries.
Address POST https://server_address/account/login
Method parameters
JSON example:
Copy {
"email":"test@test.test",
"password":"malpiGaj_123",
"rememberMe":true
}
Response:
Copy {
"userId":"a4ac78431-30c2-4d65-bd3e-eb6416784c", "accessToken":"yMDA1LzA1L2lka4acXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6ImZiODZiNDMxLTMwYzItNGQ2NS1iZDNlLWViNjQxzL25hbWUiOiJhjm1lbG9uQHhvcGVyby5jb20iLCJodHRwOhjvc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2a4aclbWFpbGFkZHJlc3MiOiJtLm1lbG9uQHhvcGVyby5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiU3l50IiwiVXNlck1hbmFnZW1lbnQiXSwiZXhwIjoxNjU0NjkwNhj4LCJpc3MiOiJodHRa4acxob3N0OjUwMDAiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjUwMDAifQ.eHVRw1KqYi3SOqN-AJUXoEIFKxGVokhoMp910L1LkzA"
}
GitOrganizationController
Get many
GetMany method (POST) Gets a list of organizations. Authorization required.
Address POST https://server_address/git/organizations/getmany
Method parameters
JSON example:
Copy {
"limit": 2,
"orderby": "Name",
"ordertype": "asc",
"Page": 2
}
Response:
Copy {
"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
Attach Git Repository
AttachGitRepository method (POST) Adds a repository to the plan if the given repository and plan exist. Authorization required.
Address POST https://server_address/plans/attachgitrepository
Method parameters
JSON example:
Copy {
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"ca4ac8f1c-a425-4869-8757-32c6567gc9aeb"
}
Response:
Detach Git Repository
DetachGitRepository method (POST) Detaches the repository from the plan. Authorization required.
Address POST https://server_address/plans/detachgitrepository
Method parameters
JSON example:
Copy {
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"a4ac8f1c-a425-48hj-8757-32hj567gchjeb"
}
Response:
List Assigned To Organization
ListAssignedToOrganization method (POST) Returns a list of plans to which the organization's repositories are pinned. Authorization required.
Address POST https://server_address/plans/listassignedtoorganization
Method parameters
JSON example:
Copy {
"limit":5,
"page":5,
"organizationid":"a4a4acgd0-eg78f-4a4ac-kl39-99ka4ac1e777ff"
}
Response:
Copy {
"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"
]
}
]
}
Modify Git Plan
ModifyGitPlan method (POST) Editing a GIT backup plan. Authorization required.
Address POST https://server_address/plans/modifygitplan
Method parameters
JSON example:
Copy {
"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:
GitRepositoryController
Activate
Activate method (POST) Activates licenses for selected repositories. Requires authorization with a user account with the following roles:
Address POST https://server_address/git/repositories/activate
Method parameters
JSON example:
Copy {
"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:
Copy {
"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
Deactivate method (POST) Deactivates licenses for selected repositories. Requires authorization with a user account with the following roles:
Address POST https://server_address/git/repositories/deactivate
Method parameters
JSON example:
Copy {
"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:
Copy {
"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"
}
]
}
Get Many
GetMany method (POST) Gets a list of the organization's repositories. Authorization required.
Address POST https://server_address/git/repositories/getmany
Method parameters
JSON example:
Copy {
"id": "a4ac2cd0-a4ac-4ced-be39-a4ac31e033ff",
"limit": 2,
"orderby": "Name",
"ordertype": "asc",
"page": 1,
"filters":[
{
"operator": "eq",
"value": true,
"property": "IsRemoved"
}
]
}
Response:
Copy {
"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
Remove method (POST) Deletes repository data from the system. Requires authorization with a user account with the following roles:
DataRemoveManagement
GitManagement
Address POST https://server_address/git/repositories/remove
Method parameters
JSON example:
Copy {
"id": "a4acd28-eee0-404a-a4ac0-6ca4ac260ca",
"removedata": true
}
Response:
Copy {
"succeededIds": [
"a4ac8d28-eee0-a4ac-a070-6a4ac76260ca"
],
"failedIds": [],
"errors": []
}
Sync
Sync Method (POST) Runs synchronization for your organization. Authorization required.
Address POST https://server_address/git/repositories/sync
Method parameters
JSON example:
Copy {
"id": "a4ac2cd0-a4ac-4ced-a4ac-60ca4ac3ff"
}
Response: