Available methods

This article describes available methods on GitProtect Management Service REST API. These methods are dedicated for Git-related features/operations in GitProtect.

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

Body(JSON example):

{
    "email":"test@test.test",
   "password":"Password123!",
    "rememberMe":true
}

Response

{
 "userId":"a4ac78431-30c2-4d65-bd3e-eb6416784c",     "accessToken":"yMDA1LzA1L2lka4acXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6ImZiODZiNDMxLTMwYzItNGQ2NS1iZDNlLWViNjQxzL25hbWUiOiJhjm1lbG9uQHhvcGVyby5jb20iLCJodHRwOhjvc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2a4aclbWFpbGFkZHJlc3MiOiJtLm1lbG9uQHhvcGVyby5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiU3l50IiwiVXNlck1hbmFnZW1lbnQiXSwiZXhwIjoxNjU0NjkwNhj4LCJpc3MiOiJodHRa4acxob3N0OjUwMDAiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjUwMDAifQ.eHVRw1KqYi3SOqN-AJUXoEIFKxGVokhoMp910L1LkzA"
}

GitOrganizationController

Get many

Address POST https://server_address/git/organizations/getmany

Method parameters

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

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":"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

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

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

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

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

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

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

JSON example

{
    "id": "a4ac2cd0-a4ac-4ced-a4ac-60ca4ac3ff"
}

Response

200 OK

Last updated