---
name: vpc-backup_service_API_migration_instance_backups
title: Migrating to 2023-12-05 API for backup policies
description: Migrate to VPC API version 2023-12-05 for backup policies. The property `match_resource_types` changed to `match_resource_type` for volume and instance backups.
last-updated: 2026-06-26
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/vpc?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Migrating to 2023-12-05 API for backup policies
{: #2023-12-05-migration-backup-policy}

Migrate to VPC API version 2023-12-05 for backup policies. The property `match_resource_types` changed to `match_resource_type` for volume and instance backups.
{: shortdesc}

As described in the [VPC API](https://cloud.ibm.com/docs/apis/vpc/latest) reference [versioning](https://cloud.ibm.com/docs/apis/vpc#api-versioning) policy, most changes to the VPC APIs are fully compatible with earlier versions and are made available to all clients, regardless of the API version the client requests. However, the `2023-12-05` release of the VPC API necessitated incompatible changes in support of backup policy methods.

Before you adopt the release version `2023-12-05` or later, be aware of the following changes that might require you to update your client:

- Backup policy methods support only one type of resource for a backup policy. In the version `2023-12-05`, the property `match_resource_types` changed to `match_resource_type`. This change applies when you're [creating](https://cloud.ibm.com/docs/apis/vpc/latest#list-backup-policies), [updating](https://cloud.ibm.com/docs/apis/vpc/latest#update-backup-policy), [listing](https://cloud.ibm.com/docs/apis/vpc/latest#list-backup-policies), [retrieving](https://cloud.ibm.com/docs/apis/vpc/latest#get-backup-policy), and [deleting](https://cloud.ibm.com/docs/apis/vpc/latest#delete-backup-policy) a backup policy.
- When you're initiating a request to [create a backup policy](https://cloud.ibm.com/docs/apis/vpc/latest#create-backup-policy), you must provide a value for the `match_resource_type` property, either `volume` or `instance`. When `volume` is selected, the backup policy is applied to individual Block Storage for VPC volumes separately. When `instance` is specified, the Block Storage for VPC volumes that are attached to the same instances are treated as a consistency group and the backup snapshots of the volumes are created together in a loose-knit group.

## Action needed
{: #action-needed-backup-policy}

Before you specify `version` query parameter of `2023-12-05` or later, follow these actions to avoid regressions in client functionality.

If your clients continue to specify version `2023-12-04` or earlier, no changes are required.

### Client migration
{: #client-migration-backup-policy}

Before you migrate a client to an API version `2023-12-05` or later, review your code for use of the `POST /backup_policies`, `PATCH /backup_policies`, and `GET /backup_policies` methods. Verify that your code includes the `match_resource_type` and `included_content` properties for backup policies in the manner that is appropriate for your programming language. For more information, see the [API change log](https://cloud.ibm.com/docs/vpc?topic=vpc-api-change-log&format=markdown#version-2023-12-05).

## Examples
{: #examples-create-backup-policy}

These examples compare differences between before and after the `2023-12-05` versioned change.

### Creating a backup policy
{: #migration-backup-policy-examples}

The following example uses API version `2023-12-04` or earlier to create a backup policy for individual volumes. The `data` object specifies `match_resource_types` as `array`. It's not possible to create an `instance` type backup policy with an API version `2023-12-04` or earlier.

```sh
curl -X POST "$vpc_api_endpoint/v1/backup_policies?version=2023-12-04&generation=2"
-H "Authorization: $iam_token"
 -d '{
   "match_resource_types": "array",
   "match_user_tags": ["my-daily-backup-policy"],
   "name": "my-backup-policy",
   "plans": [
      {
        "attach_user_tags": ["my-daily-backup-plan"],
         "copy_user_tags": true,
         "cron_spec": "*/5 1,2,3 * * *",
         "deletion_trigger": {"delete_after": 20},
         "name": "my-backup-plan"
       }
     ],
     "resource_group": {}
   }'
```
{: screen}

The following example uses API version `2023-12-05` or later to create a backup policy for individual volumes. The `data` object specifies `match_resource_type` as `volume`.

```sh
curl -X POST "$vpc_api_endpoint/v1/backup_policies?version=2023-12-05&generation=2"\
   -H "Authorization: Bearer $iam_token"\
   -d '{
     "match_resource_type": "volume",
     "match_user_tags": ["my-daily-backup-policy"],
     "name": "my-backup-policy",
     "plans": [
      {
        "attach_user_tags": ["my-daily-backup-plan"],
         "copy_user_tags": true,
         "cron_spec": "*/5 1,2,3 * * *",
         "deletion_trigger": {"delete_after": 20},
         "name": "my-backup-plan"
       }
     ],
     "resource_group": {}
   }'
```
{: screen}

The following example uses the API version `2023-12-05` or later to create a backup policy for a consistency group of Block Storage for VPC volumes that are attached to the same virtual server instance. The data object specifies `match_resource_type` as `instance` and the `included_content` as `data_volumes`.

```sh
curl -X POST "$vpc_api_endpoint/v1/backup_policies?version=2023-12-05&generation=2"\
   -H "Authorization: Bearer $iam_token"\
   -d '{
      "match_resource_type": "instance",
      "included_content": "data_volumes"
      "match_user_tags": ["my-daily-backup-policy"],
      "name": "my-backup-policy",
      "plans": [
       {
         "attach_user_tags": ["my-daily-backup-plan"],
         "copy_user_tags": true,
         "cron_spec": "*/5 1,2,3 * * *",
         "deletion_trigger": {"delete_after": 20},
         "name": "my-backup-plan"
       }
     ],
     "resource_group": {}
   }'
```
{: screen}