# Virtual Machine Snapshot Management Policies Controller Resource

The API allows you to list, view, create and edit snapshot management policies.

### GET /policies/vm-snapshot

Returns list of snapshot management policies.

Request Parameters
name | type | description
--- | --- | ---
direction | query |
filter | query |
nameLike | query |
orderBy | query |
page | query |
size | query |

Response Body
media type | data type | description
--- | --- | ---
application/json | array of VmSnapshotMgmtPolicyListRecord (JSON) | list of snapshot management policies

#### Example

##### Request

    GET /policies/vm-snapshot
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    } ]

### POST /policies/vm-snapshot

Create snapshot management policy.

Request Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyRequest (JSON) | specify details for new snapshot management policy

Response Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyDetails (JSON) | details of newly created snapshot management policy

#### Example

##### Request

    POST /policies/vm-snapshot
    Content-Type: application/json
    Accept: application/json

    {
      "priority" : 50
    }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    }

### POST /policies/vm-snapshot/auto-assignment-preview

Get auto-assignment preview for all virtual machines and given backup policy.

Request Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyRequest (JSON) | specify virtual machine snapshot management policy details to create preview

Response Body
media type | data type | description
--- | --- | ---
application/json | array of AutoAssignResultPreviewListRecord (JSON) | list of auto-assignment result preview records

#### Example

##### Request

    POST /policies/vm-snapshot/auto-assignment-preview
    Content-Type: application/json
    Accept: application/json

    {
      "priority" : 50
    }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    [ { } ]

### GET /policies/vm-snapshot/detailed

Returns detailed list of snapshot management policies.

Response Body
media type | data type | description
--- | --- | ---
application/json | array of VmSnapshotMgmtPolicyDetails (JSON) | detailed list of snapshot management policies

#### Example

##### Request

    GET /policies/vm-snapshot/detailed
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    } ]

### PUT /policies/vm-snapshot/validation

Check validity of auto-assignment settings for virtual machine snapshot management policy

Request Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyRequest (JSON) | specify details for new (or updated) virtual machine snapshot management policy

Response Body
media type | data type | description
--- | --- | ---
application/json | PolicyProjectAndClusterScopeValidationResultListRecord (JSON) | validation results

#### Example

##### Request

    PUT /policies/vm-snapshot/validation
    Content-Type: application/json
    Accept: application/json

    {
      "priority" : 50
    }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### DELETE /policies/vm-snapshot/{guid}

Remove snapshot management policy.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for snapshot management policy (use by vProtect)

#### Example

##### Request

    DELETE /policies/vm-snapshot/{guid}
    Content-Type: */*

    ...

##### Response

    HTTP/1.1 204 No Content

### GET /policies/vm-snapshot/{guid}

Get a single snapshot management policy.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for snapshot management policy (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyDetails (JSON) | a single snapshot management policy details

#### Example

##### Request

    GET /policies/vm-snapshot/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    }

### PUT /policies/vm-snapshot/{guid}

Change snapshot management policy details.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for snapshot management policy (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyRequest (JSON) | specify snapshot management policy details to update

Response Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyDetails (JSON) | updated details of snapshot management policy

#### Example

##### Request

    PUT /policies/vm-snapshot/{guid}
    Content-Type: application/json
    Accept: application/json

    {
      "priority" : 50
    }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    }

### POST /policies/vm-snapshot/{guid}/auto-assignment-preview

Get auto-assignment preview for all virtual machines and given backup policy.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for snapshot management policy (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyRequest (JSON) | specify virtual machine snapshot management policy details to create preview

Response Body
media type | data type | description
--- | --- | ---
application/json | array of AutoAssignResultPreviewListRecord (JSON) | list of auto-assignment result preview records

#### Example

##### Request

    POST /policies/vm-snapshot/{guid}/auto-assignment-preview
    Content-Type: application/json
    Accept: application/json

    {
      "priority" : 50
    }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    [ { } ]

### POST /policies/vm-snapshot/{guid}/clone

Request Parameters
name | type | description
--- | --- | ---
guid | path |

Request Body
media type | data type
--- | ---
application/json | CloneDTO (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | VmSnapshotMgmtPolicyDetails (JSON) |

#### Example

##### Request

    POST /policies/vm-snapshot/{guid}/clone
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "priority" : 50
    }