Create Backup Policy

You can create a new backup policy.

Request

To create a backup policy, send the HTTP POST request to the /policies endpoint.

HTTP Request

POST https://<hostname>/api/v2/policies

Request Headers

The request contains the following headers.

Header

Required

Value

Description

Authorization

Required

Bearer <Access-Token>

Authenticates a client who sends the request to the server. Must contain the access token for the current logon session in the Bearer <Access-Token> format.

Request Body

To create the backup policy, send the parameters of the PolicyV2 schema in the request body.

Set the parameter values in the following format:

{

 "regions": [

   {

     "regionId": "string"

   }

 ],

 "selectedItems": {

   "subscriptions": [

     {

       "subscriptionId": "string"

     }

   ],

   "tags": [

     {

       "name": "string",

       "value": "string"

     }

   ],

   "resourceGroups": [

     {

       "id": "string"

     }

   ],

   "virtualMachines": [

     {

       "id": "string"

     }

   ]

 },

 "excludedItems": {

   "virtualMachines": [

     {

       "id": "string"

     }

   ]

 },

 "name": "string",

 "description": "string",

 "tenantId": "string",

 "retrySettings": {

   "retryCount": 0

 },

 "policyNotificationSettings": {

   "recipient": "string",

   "notifyOnSuccess": true,

   "notifyOnWarning": true,

   "notifyOnFailure": true

 },

 "isEnabled": true,

 "backupType": "AllSubscriptions",

 "snapshotSettings": {

   "additionalTags": [

     {

       "name": "string",

       "value": "string"

     }

   ],

   "copyOriginalTags": true,

   "applicationAwareSnapshot": true,

   "userScripts": {

     "windows": {

       "scriptsEnabled": true,

       "preScriptPath": "string",

       "preScriptArguments": "string",

       "postScriptPath": "string",

       "postScriptArguments": "string",

       "repositorySnapshotsOnly": true,

       "ignoreExitCodes": true,

       "ignoreMissingScripts": true

     },

     "linux": {

       "scriptsEnabled": true,

       "preScriptPath": "string",

       "preScriptArguments": "string",

       "postScriptPath": "string",

       "postScriptArguments": "string",

       "repositorySnapshotsOnly": true,

       "ignoreExitCodes": true,

       "ignoreMissingScripts": true

     }

   }

 },

 "dailySchedule": {

   "dailyType": "Everyday",

   "selectedDays": [

     "Sunday"

   ],

   "runsPerHour": 0,

   "snapshotSchedule": {

     "hours": [

       0

     ],

     "snapshotsToKeep": 0

   },

   "backupSchedule": {

     "hours": [

       0

     ],

     "retention": {

       "timeRetentionDuration": 0,

       "retentionDurationType": "Days"

     },

     "targetRepositoryId": "string"

   }

 },

 "weeklySchedule": {

   "startTime": 0,

   "snapshotSchedule": {

     "selectedDays": [

       "Sunday"

     ],

     "snapshotsToKeep": 0

   },

   "backupSchedule": {

     "selectedDays": [

       "Sunday"

     ],

     "retention": {

       "timeRetentionDuration": 0,

       "retentionDurationType": "Days"

     },

     "targetRepositoryId": "string"

   }

 },

 "monthlySchedule": {

   "startTime": 0,

   "type": "First",

   "dayOfWeek": "Sunday",

   "dayOfMonth": 0,

   "monthlyLastDay": true,

   "snapshotSchedule": {

     "selectedMonths": [

       "January"

     ],

     "snapshotsToKeep": 0

   },

   "backupSchedule": {

     "selectedMonths": [

       "January"

     ],

     "retention": {

       "timeRetentionDuration": 0,

       "retentionDurationType": "Days"

     },

     "targetRepositoryId": "string"

   }

 },

 "yearlySchedule": {

   "startTime": 0,

   "month": "January",

   "type": "First",

   "dayOfWeek": "Sunday",

   "dayOfMonth": 0,

   "yearlyLastDay": true,

   "retentionYearsCount": 0,

   "targetRepositoryId": "string"

 }

}

Response

The server returns the following response to the client.

Response Codes

A successfully completed operation returns a response code 200 (OK).

Response Headers

The response to this request contains the following headers. The response may also include additional standard HTTP headers.

Header

Value

Description

Content-length

integer

Identifies the length of the response body message, in bytes.

Content-type

  • application/json
  • application/problem+json

Identifies the media type of the response body message.

Response Body

In the response body, Veeam Backup for Microsoft Azure returns a representation of the created backup policy. The PolicyV2 schema is used for the resource representation.

Create Backup PolicyExample

The following request creates a backup policy with the following settings.

Request:

POST https://51.11.247.127/api/v2/policies

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

  "name":"Backup Policy via REST",

  "description":"",

  "isEnabled":true,

  "priority":0,

  "tenantId":"3e924ba9-93bc-40d5-8a47-33f07b239a52",

  "backupType":"SelectedItems",

  "regions":[

     {

        "regionId":"northeurope"

     },

     {

        "regionId":"ukwest"

     },

     {

        "regionId":"westeurope"

     }

  ],

  "selectedItems":{

     "subscriptions":[

 

     ],

     "resourceGroups":[

 

     ],

     "tags":[

 

     ],

     "virtualMachines":[

        {

           "id":"ej43ifg58cgjs8e9cod74ye6cbwm5nttf6ijzk64rshqoip1abqy"

        },

        {

           "id":"g344t5o8hgxgyp9r5bxqsn1aom88kjsc3hjnk3o8umzdptc3w3ey"

        }

     ]

  },

  "excludedItems":{

     "virtualMachines":[

        {

           "id":"g344t5o8hgxgyp9r5bxqsn1aom88kjsc3hjnk3o8umzdptc3w3ey"

        }

     ]

  },

  "snapshotSettings":{

     "generationsToSave":7,

     "schedule":{

        "frequencyType":"Monthly",

        "monthlyTime":"20:00:00",

        "monthlyType":"First",

        "monthlyDayOfWeek":"Monday",

        "monthlyLastDay":false,

        "monthlyDay":1,

        "selectedMonths":[

           "January",

           "February",

           "March",

           "April",

           "May",

           "June",

           "July",

           "August",

           "September",

           "October",

           "November",

           "December"

        ]

     }

  },

  "backupSettings":{

     "targetRepositoryId":1,

     "retentionSettings":{

        "retentionDurationType":"Daily",

        "timeRetentionDuration":21

     },

     "schedule":{

        "frequencyType":"Monthly",

        "monthlyTime":"20:00:00",

        "monthlyType":"First",

        "monthlyDayOfWeek":"Monday",

        "monthlyLastDay":false,

        "monthlyDay":1,

        "selectedMonths":[

           "January",

           "February",

           "March",

           "April",

           "May",

           "June",

           "July",

           "August",

           "September",

           "October",

           "November",

           "December"

        ]

     }

  },

  "retrySettings":{

     "retryCount":3

  },

  "policyNotificationSettings":{

     "recipient":"@tech.local",

     "notifyOnSuccess":true,

     "notifyOnWarning":true,

     "notifyOnFailure":true

  }

}

 

Response:

200

 

Response Body:

{{

  "id": "339740af-7075-418c-9638-bc5cc9dfd9ef",

  "priority": 3,

  "snapshotSettings":    {

     "generationsToSave": 7,

     "scheduleId": 9

  },

  "backupSettings":    {

     "targetRepositoryId": 1,

     "retentionSettings":       {

        "timeRetentionDuration": 21,

        "retentionDurationType": "Daily"

     },

     "scheduleId": 8

  },

  "excludedItemsCount": 1,

  "usn": 22,

  "_links":    {

     "self": {"href": "https://51.11.247.127/api/v2/policies/339740af-7075-418c-9638-bc5cc9dfd9ef"},

     "selecteditems": {"href": "https://51.11.247.127/api/v2/policies/339740af-7075-418c-9638-bc5cc9dfd9ef/selectedItems"},

     "excludeditems": {"href": "https://51.11.247.127/api/v2/policies/339740af-7075-418c-9638-bc5cc9dfd9ef/excludedItems"},

     "targetrepository": {"href": "https://51.11.247.127/api/v2/repositories/1"}

  },

  "name": "Backup Policy via REST",

  "description": "",

  "tenantId": "3e924ba9-93bc-40d5-8a47-33f07b239a52",

  "retrySettings": {"retryCount": 3},

  "policyNotificationSettings":    {

     "recipient": "@tech.local",

     "notifyOnSuccess": true,

     "notifyOnWarning": true,

     "notifyOnFailure": true

  },

  "isEnabled": true,

  "backupType": "SelectedItems"

}

I want to report a typo

There is a misspelling right here:

 

I want to let the Veeam Documentation Team know about that.