Available Methods
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
Email address
string
Password
Password
string
RememberMe
Specifies whether to remember the session
bool
JSON example:
{
"email":"[email protected]",
"password":"malpiGaj_123",
"rememberMe":true
}
Response:
{
"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
limit
Number of repository per page
int
orderby
The field followed by the sort
string
ordertype
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
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
planId
Plan ID
Guid
repositoryId
Repository ID
Guid
JSON example:
{
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"ca4ac8f1c-a425-4869-8757-32c6567gc9aeb"
}
Response:
200 OK
Detach Git Repository
DetachGitRepository method (POST) Detaches the repository from the plan. Authorization required.
Address POST https://server_address/plans/detachgitrepository
Method parameters
planId
Plan ID
Guid
repositoryId
Repository ID
Guid
JSON example:
{
"planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
"repositoryid":"a4ac8f1c-a425-48hj-8757-32hj567gchjeb"
}
Response:
200 OK
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
limit
Numer of elements on the page
int
page
Page number
int
organizationId
The 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"
]
}
]
}
Modify Git Plan
ModifyGitPlan method (POST) Editing a GIT backup plan. Authorization required.
Address POST https://server_address/plans/modifygitplan
Method parameters
Id
Plan ID
Guid
Name
Plan name
string
IsActive
Schedule in use or not
bool
Type
Plan type
EPlanType
BackupType
Backup type (if the plan type is backup)
EPlanType
StorageId
Storage ID
Guid
RepositoriesIds
GIT repository ID table
Array[Guid]
WorkerId
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, it ignores selected repositories and takes all of them from the organization
bool
OrganizationId
Organization ID
Guid
IncludeMetadata
If true, it performs a metadata backup
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 OK
GitRepositoryController
Activate
Activate method (POST) Activates licenses for selected repositories. Requires authorization with a user account with the following roles:
DataRemoveManagement
GitManagement
Address POST https://server_address/git/repositories/activate
Method parameters
ids
Repository IDs to activate
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
Deactivate method (POST) Deactivates licenses for selected repositories. Requires authorization with a user account with the following roles:
DataRemoveManagement
GitManagement
Address POST https://server_address/git/repositories/deactivate
Method parameters
ids
Repository IDs 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"
}
]
}
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
id
Organization ID
Guid
limit
Number of repositories per page
int
orderby
The name of the field followed by sorting
string
ordertype
Sort order
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
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
id
The repository IDs to be deleted
Guid
removedata
If true, it also deletes the backup data of the indicated repositories
bool
JSON example:
{
"id": "a4acd28-eee0-404a-a4ac0-6ca4ac260ca",
"removedata": true
}
Response:
{
"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
id
Organization ID
Guid
JSON example:
{
"id": "a4ac2cd0-a4ac-4ced-a4ac-60ca4ac3ff"
}
Response:
200 OK
Last updated