---
title: "POST /v1/projects/{projectsId}/locations/{locationsId}/autoProtectionPolicies"
method: POST
path: "/v1/projects/{projectsId}/locations/{locationsId}/autoProtectionPolicies"
tags: ["projects"]
---

# POST /v1/projects/{projectsId}/locations/{locationsId}/autoProtectionPolicies

`POST /v1/projects/{projectsId}/locations/{locationsId}/autoProtectionPolicies`

## Request

- Base URL: `https://backupdr.googleapis.com`
- URL: `https://backupdr.googleapis.com/v1/projects/{projectsId}/locations/{locationsId}/autoProtectionPolicies`
- Auth: one of:
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/cloud-backupdr`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-backupdr`
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/cloud-platform`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`

Creates a new AutoProtectionPolicy in a given project and location.

## Path parameters

- `projectsId` string, required
- `locationsId` string, required

## Query parameters

- `autoProtectionPolicyId` string
- `requestId` string

## Request body

- AutoProtectionPolicy: An AutoprotectionPolicy is a policy resource designed to automate backup management, moving from manual per-resource protection to a bulk approach. The policy dynamically discovers and applies a specified backup plan to all eligible resources that match its defined scope and criteria.
  - `backupPlanDetails` BackupPlanDetail[]: Required. The backup plan details for matching resources.
    - `backupPlan` string: Required. The resource name of the BackupPlan to apply to resources that match the policy's criteria. This backup plan must be in the same location as AutoProtectionPolicy. Format: projects/{project}/locations/{location}/backupPlans/{backupPlanId}
    - `resourceType` string: Required. The type of resource that this policy will automatically protect. Allowed values are, `compute.googleapis.com/Instance` and `compute.googleapis.com/Disk` are supported.
  - `bindingSummary` BindingSummary: BindingSummary contains count of different containers covered through this policy.
    - `projectCount` string, int64: Output only. Total count of Projects protected with this policy.
  - `createTime` string, google-datetime: Output only. The timestamp when the policy was created.
  - `criteria` Criteria: Criteria specifies a set of criteria for matching resources.
    - `matchingConditions` MatchingCondition[]: Required. A list of matching conditions that a resource must meet to be protected by the policy.
      - `labelCondition` KeyValuePair: KeyValuePair defines a key-value pair for matching resource labels.
        - `key` string: Required. The key of the label to match. This must be in the format `{label_key}`. The key must match the regex Format:`\p{Ll}\p{Lo}{0,62}`.
        - `values` string[]: Required. The values of the label to match. There will be explicit “OR” between values of array. Each value must be in the format `{label_value}`. The value must match the regex Format: `[\\p{Ll}\\p{Lo}\\p{N}_-]{1,63}`.
  - `description` string: Optional. A description of the policy. The description must be at most 2048 characters.
  - `etag` string: Output only. The etag for the policy. If this is provided on update, it must match the server's etag.
  - `name` string: Output only. Identifier. The resource name of the AutoProtectionPolicy. Format: `projects/{project}/locations/{location}/autoProtectionPolicies/{auto_protection_policy}`
  - `policyEvaluationSummary` PolicyEvaluationSummary: PolicyEvaluationSummary contains the summary of the last run of job that applies policy to matching resources.
    - `failedResourceCount` string, int64: Output only. The number of matching resources whose protection failed during job run.
    - `matchingResourceCount` string, int64: Output only. The number of resources that currently match the policy's criteria.
    - `protectedResourceCount` string, int64: Output only. The number of matching resources that are successfully protected.
  - `state` 'STATE_UNSPECIFIED' | 'CREATING' | 'ACTIVE' | 'UPDATING' | 'DELETING': Output only. The current state of the AutoProtectionPolicy.
  - `updateTime` string, google-datetime: Output only. The timestamp when the policy was last updated.

## Response `200`

Successful response

- Operation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  - `error` Status: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `metadata` object: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
  - `name` string: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  - `response` object: The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

## Changes

- **2026-11-05** `da857420b4f6`: 5 info
  - the security scope `https://www.googleapis.com/auth/cloud-backupdr` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-backupdr` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2c`
  - …1 more
- **2026-10-29** `3244196e66b0`: 1 warning, 4 info
  - deleted the `query` request parameter `requestId`
  - the security scope `https://www.googleapis.com/auth/cloud-backupdr` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-backupdr` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2`
  - …1 more

[Operation history](https://skmtc.dev/google/apis/backupdr/changes/v1/projects/:projectsId/locations/:locationsId/autoProtectionPolicies/post.md)

---

[API](https://skmtc.dev/google/apis/backupdr.md) - [All operations](https://skmtc.dev/google/apis/backupdr/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/backupdr/revisions/da857420b4f6?raw)
