Snapservice ProtectionGroups computeMembers

Snapservice ProtectionGroups computeMembers

Computes the member entities of a protection group based on the specification

This operation was added in vSphere API 9.1.0.0.

Returns an authorization error if you do not have all of the privileges described as follows:

  • Operation execution requires System.Read.
  • The resource ClusterComputeResource referenced by the property Snapservice ProtectionGroups ComputeMembersSpec.cluster_id requires System.Read.
Request
URI
POST
https://{host}/api/snapservice/protection-groups?action=compute-members
COPY
Request Body

Specification used to preview the members of a create of update protection group request.

Required
{
    "create_spec": {
        "name": "string",
        "target_entities": {
            "vm_name_patterns": [
                "string"
            ],
            "vms": [
                "string"
            ],
            "tag_rules": [
                {
                    "tags": [
                        "string"
                    ],
                    "operator": "string"
                }
            ]
        },
        "snapshot_policies": [
            {
                "name": "string",
                "schedule": {
                    "unit": "string",
                    "interval": 0
                },
                "retention": {
                    "unit": "string",
                    "duration": 0
                }
            }
        ],
        "locked": false,
        "replication_policies": [
            {
                "cluster_pair": "string",
                "recovery_point_objective": {
                    "unit": "string",
                    "duration": 0
                },
                "snapshot_retention": {
                    "short_term": {
                        "keep_last": 0
                    },
                    "long_term": {
                        "hourly": {
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "daily": {
                            "hour": 0,
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "weekly": {
                            "hour": 0,
                            "day_of_week": "string",
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "monthly": {
                            "hour": 0,
                            "day_of_month": 0,
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        }
                    }
                },
                "use_replica_seed": false,
                "storage_spec": {
                    "target_datastore": "string"
                },
                "target_entity_replication_spec": {
                    "vm_replication_specs": [
                        {
                            "vm": "string",
                            "config_params": {
                                "target_config": {
                                    "use_replica_seed": false,
                                    "storage_spec": {
                                        "target_datastore": "string"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    },
    "update_spec": {
        "name": "string",
        "target_entities": {
            "vm_name_patterns": [
                "string"
            ],
            "vms": [
                "string"
            ],
            "tag_rules": [
                {
                    "tags": [
                        "string"
                    ],
                    "operator": "string"
                }
            ]
        },
        "snapshot_policies": [
            {
                "name": "string",
                "schedule": {
                    "unit": "string",
                    "interval": 0
                },
                "retention": {
                    "unit": "string",
                    "duration": 0
                }
            }
        ],
        "replication_policies": [
            {
                "cluster_pair": "string",
                "recovery_point_objective": {
                    "unit": "string",
                    "duration": 0
                },
                "snapshot_retention": {
                    "short_term": {
                        "keep_last": 0
                    },
                    "long_term": {
                        "hourly": {
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "daily": {
                            "hour": 0,
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "weekly": {
                            "hour": 0,
                            "day_of_week": "string",
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        },
                        "monthly": {
                            "hour": 0,
                            "day_of_month": 0,
                            "retention": {
                                "unit": "string",
                                "duration": 0
                            }
                        }
                    }
                },
                "use_replica_seed": false,
                "storage_spec": {
                    "target_datastore": "string"
                },
                "target_entity_replication_spec": {
                    "vm_replication_specs": [
                        {
                            "vm": "string",
                            "config_params": {
                                "target_config": {
                                    "use_replica_seed": false,
                                    "storage_spec": {
                                        "target_datastore": "string"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ],
        "locked": false
    },
    "protection_group": "string",
    "cluster_id": "string"
}
create_spec
Optional

Field createSpec is the spec that would be used to create the protection group.

This property was added in vSphere API 9.1.0.0.

If missing or null, this is not a preview request for creating protection group.

update_spec
Optional

Field updateSpec is the spec that would be used to update the protection group.

This property was added in vSphere API 9.1.0.0.

If missing or null, this is not a preview request for updating protection group.

string
protection_group
Optional

Identifier of the protection group. Used in combination with updateSpec, indicating the protection group to be updated.

This property was added in vSphere API 9.1.0.0.

If missing or null or empty, createSpec must be set.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: com.vmware.snapservice.protection_group. When operations return a value of this schema as a response, the property will be an identifier for the resource type: com.vmware.snapservice.protection_group.

string
cluster_id
Optional

The cluster on which the protection group is or is going to be created.

This property was added in vSphere API 9.1.0.0.

This field might be removed in future.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this schema as a response, the property will be an identifier for the resource type: ClusterComputeResource.

Authentication
This operation uses the following authentication methods.
Responses
200

List of virtual machines that would be included/excluded when create/update a protection group.

Returns Snapservice MemberEntities of type(s) application/json
{
    "included_vms": [
        {
            "vm": "string",
            "vm_name": "string",
            "protection_groups": [
                "string"
            ],
            "membership_change_type": "string",
            "membership_change_reasons": [
                {
                    "id": "string",
                    "default_message": "string",
                    "args": [
                        "string"
                    ],
                    "params": {
                        "params": {
                            "s": "string",
                            "dt": "string",
                            "i": 0,
                            "d": "number",
                            "l": {
                                "id": "string",
                                "params": {
                                    "params": "Vapi Std LocalizationParam Object"
                                }
                            },
                            "format": "string",
                            "precision": 0
                        }
                    },
                    "localized": "string"
                }
            ]
        }
    ],
    "excluded_vms": [
        {
            "vm": "string",
            "vm_name": "string",
            "protection_groups": [
                "string"
            ],
            "membership_change_type": "string",
            "membership_change_reasons": [
                {
                    "id": "string",
                    "default_message": "string",
                    "args": [
                        "string"
                    ],
                    "params": {
                        "params": {
                            "s": "string",
                            "dt": "string",
                            "i": 0,
                            "d": "number",
                            "l": "Vapi Std NestedLocalizableMessage Object",
                            "format": "string",
                            "precision": 0
                        }
                    },
                    "localized": "string"
                }
            ]
        }
    ]
}
array of object
included_vms
Required

The virtual machines with membershipChangeType ADD or EXISTING. The list is empty if the protection group will have no virtual machines based on the provided ComputeMembersSpec.

This property was added in vSphere API 9.1.0.0.

array of object
excluded_vms
Required

The virtual machines with membershipChangeType REMOVE or EXCLUDE. The list is empty if there is no virtual machines to be ineligible or removed from protection group based on the provided ComputeMembersSpec.

This property was added in vSphere API 9.1.0.0.


400

If validation of the spec fails. Eg. If spec.createSpec and spec.updateSpec are provided together; spec.createSpec and spec.pgID are provided together; spec.updateSpec is provided but no spec.gpID; spec.clusterId or spec.pgId are not found.

Returns Vapi Std Errors InvalidArgument of type(s) application/json
This response body class contains all of the following: Vapi Std Errors Error
{
    "messages": [
        {
            "id": "string",
            "default_message": "string",
            "args": [
                "string"
            ],
            "params": {
                "params": {
                    "s": "string",
                    "dt": "string",
                    "i": 0,
                    "d": "number",
                    "l": "Vapi Std NestedLocalizableMessage Object",
                    "format": "string",
                    "precision": 0
                }
            },
            "localized": "string"
        }
    ],
    "data": {},
    "error_type": "string"
}

401

If the caller is not authenticated.

Returns Vapi Std Errors Unauthenticated of type(s) application/json
This response body class contains all of the following: Vapi Std Errors Error
{
    "messages": [
        {
            "id": "string",
            "default_message": "string",
            "args": [
                "string"
            ],
            "params": {
                "params": {
                    "s": "string",
                    "dt": "string",
                    "i": 0,
                    "d": "number",
                    "l": "Vapi Std NestedLocalizableMessage Object",
                    "format": "string",
                    "precision": 0
                }
            },
            "localized": "string"
        }
    ],
    "data": {},
    "error_type": "string",
    "challenge": "string"
}
string
challenge
Optional

Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used.

For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm="27da1358-2ba4-11e9-b210-d663bd873d93",sts="http://vcenter/sso?vsphere.local", Basic realm="vCenter"

This property was added in vSphere API 7.0.0.0.

This property is optional because it was added in a newer version than its parent node.


403

If the caller is not authorized to perform the operation.

Returns Vapi Std Errors Unauthorized of type(s) application/json
This response body class contains all of the following: Vapi Std Errors Error
{
    "messages": [
        {
            "id": "string",
            "default_message": "string",
            "args": [
                "string"
            ],
            "params": {
                "params": {
                    "s": "string",
                    "dt": "string",
                    "i": 0,
                    "d": "number",
                    "l": "Vapi Std NestedLocalizableMessage Object",
                    "format": "string",
                    "precision": 0
                }
            },
            "localized": "string"
        }
    ],
    "data": {},
    "error_type": "string",
    "challenge": "string"
}
string
challenge
Optional

Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used.

For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm="27da158-2ba4-11e9-b",sts="http://vcenter/sso?vsphere.local", Basic realm="vCenter"

This property was added in vSphere API 9.1.0.0.

This property is optional because it was added in a newer version than its parent node.


500

If there is unknown internal error.

Returns Vapi Std Errors Error of type(s) application/json
{
    "messages": [
        {
            "id": "string",
            "default_message": "string",
            "args": [
                "string"
            ],
            "params": {
                "params": {
                    "s": "string",
                    "dt": "string",
                    "i": 0,
                    "d": "number",
                    "l": "Vapi Std NestedLocalizableMessage Object",
                    "format": "string",
                    "precision": 0
                }
            },
            "localized": "string"
        }
    ],
    "data": {},
    "error_type": "string"
}
array of object
messages
Required

Stack of one or more localizable messages for human error consumers.

The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked.

Each subsequent message in the stack describes the "cause" of the prior message.

object
data
Optional

Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully.

Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports.

The Vapi Std Errors ArgumentLocations, Vapi Std Errors FileLocations, and Vapi Std Errors TransientIndication schemas are intended as possible values for this property. Vapi Std DynamicID may also be useful as a value for this property (although that is not its primary purpose). Some resources may provide their own specific schemas for use as the value of this property when reporting errors from their operations.

Some operations will not set this property when reporting errors.

string
error_type
Required

Discriminator field to help API consumers identify the structure type.

For more information see: Vapi Std Errors Error Type.

This property was added in vSphere API 6.7.2.

Can be missing or null for compatibility with preceding implementations.


503

If the service is not available.

Returns Vapi Std Errors ServiceUnavailable of type(s) application/json
This response body class contains all of the following: Vapi Std Errors Error
{
    "messages": [
        {
            "id": "string",
            "default_message": "string",
            "args": [
                "string"
            ],
            "params": {
                "params": {
                    "s": "string",
                    "dt": "string",
                    "i": 0,
                    "d": "number",
                    "l": "Vapi Std NestedLocalizableMessage Object",
                    "format": "string",
                    "precision": 0
                }
            },
            "localized": "string"
        }
    ],
    "data": {},
    "error_type": "string"
}

Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{}' https://{api_host}/api/snapservice/protection-groups?action=compute-members