Restore [velero.io/v1]

Description
Restore is a Velero resource that represents the application of resources from a Velero backup to a target Kubernetes cluster.
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

RestoreSpec defines the specification for a Velero restore.

statusobject

RestoreStatus captures the current status of a Velero restore

.spec

Description
RestoreSpec defines the specification for a Velero restore.
Type
object
PropertyTypeDescription
backupNamestring

BackupName is the unique name of the Velero backup to restore from.

excludedNamespacesarray

ExcludedNamespaces contains a list of namespaces that are not included in the restore.

excludedResourcesarray

ExcludedResources is a slice of resource names that are not included in the restore.

existingResourcePolicystring

ExistingResourcePolicy specifies the restore behavior for the Kubernetes resource to be restored

hooksobject

Hooks represent custom behaviors that should be executed during or post restore.

includeClusterResourcesboolean

IncludeClusterResources specifies whether cluster-scoped resources should be included for consideration in the restore. If null, defaults to true.

includedNamespacesarray

IncludedNamespaces is a slice of namespace names to include objects from. If empty, all namespaces are included.

includedResourcesarray

IncludedResources is a slice of resource names to include in the restore. If empty, all resources in the backup are included.

itemOperationTimeoutstring

ItemOperationTimeout specifies the time used to wait for RestoreItemAction operations The default value is 4 hour.

labelSelectorobject

LabelSelector is a metav1.LabelSelector to filter with when restoring individual objects from the backup. If empty or nil, all objects are included. Optional.

namespaceMappingobject

NamespaceMapping is a map of source namespace names to target namespace names to restore into. Any source namespaces not included in the map will be restored into namespaces of the same name.

orLabelSelectorsarray

OrLabelSelectors is list of metav1.LabelSelector to filter with when restoring individual objects from the backup. If multiple provided they will be joined by the OR operator. LabelSelector as well as OrLabelSelectors cannot co-exist in restore request, only one of them can be used

preserveNodePortsboolean

PreserveNodePorts specifies whether to restore old nodePorts from backup.

resourceModifierobject

ResourceModifier specifies the reference to JSON resource patches that should be applied to resources before restoration.

restorePVsboolean

RestorePVs specifies whether to restore all included PVs from snapshot

restoreStatusobject

RestoreStatus specifies which resources we should restore the status field. If nil, no objects are included. Optional.

scheduleNamestring

ScheduleName is the unique name of the Velero schedule to restore from. If specified, and BackupName is empty, Velero will restore from the most recent successful backup created from this schedule.

uploaderConfigobject

UploaderConfig specifies the configuration for the restore.

.spec.excludedNamespaces

Description
ExcludedNamespaces contains a list of namespaces that are not included in the restore.
Type
array

.spec.excludedNamespaces[]

Type
string

.spec.excludedResources

Description
ExcludedResources is a slice of resource names that are not included in the restore.
Type
array

.spec.excludedResources[]

Type
string

.spec.hooks

Description
Hooks represent custom behaviors that should be executed during or post restore.
Type
object
PropertyTypeDescription
resourcesarray

.spec.hooks.resources

Type
array

.spec.hooks.resources[]

Description
RestoreResourceHookSpec defines one or more RestoreResrouceHooks that should be executed based on the rules defined for namespaces, resources, and label selector.
Type
object
Required
name
PropertyTypeDescription
excludedNamespacesarray

ExcludedNamespaces specifies the namespaces to which this hook spec does not apply.

excludedResourcesarray

ExcludedResources specifies the resources to which this hook spec does not apply.

includedNamespacesarray

IncludedNamespaces specifies the namespaces to which this hook spec applies. If empty, it applies to all namespaces.

includedResourcesarray

IncludedResources specifies the resources to which this hook spec applies. If empty, it applies to all resources.

labelSelectorobject

LabelSelector, if specified, filters the resources to which this hook spec applies.

namestring

Name is the name of this hook.

postHooksarray

PostHooks is a list of RestoreResourceHooks to execute during and after restoring a resource.

.spec.hooks.resources[].excludedNamespaces

Description
ExcludedNamespaces specifies the namespaces to which this hook spec does not apply.
Type
array

.spec.hooks.resources[].excludedNamespaces[]

Type
string

.spec.hooks.resources[].excludedResources

Description
ExcludedResources specifies the resources to which this hook spec does not apply.
Type
array

.spec.hooks.resources[].excludedResources[]

Type
string

.spec.hooks.resources[].includedNamespaces

Description
IncludedNamespaces specifies the namespaces to which this hook spec applies. If empty, it applies to all namespaces.
Type
array

.spec.hooks.resources[].includedNamespaces[]

Type
string

.spec.hooks.resources[].includedResources

Description
IncludedResources specifies the resources to which this hook spec applies. If empty, it applies to all resources.
Type
array

.spec.hooks.resources[].includedResources[]

Type
string

.spec.hooks.resources[].labelSelector

Description
LabelSelector, if specified, filters the resources to which this hook spec applies.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.hooks.resources[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.hooks.resources[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.hooks.resources[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.hooks.resources[].labelSelector.matchExpressions[].values[]

Type
string

.spec.hooks.resources[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.hooks.resources[].postHooks

Description
PostHooks is a list of RestoreResourceHooks to execute during and after restoring a resource.
Type
array

.spec.hooks.resources[].postHooks[]

Description
RestoreResourceHook defines a restore hook for a resource.
Type
object
PropertyTypeDescription
execobject

Exec defines an exec restore hook.

initobject

Init defines an init restore hook.

.spec.hooks.resources[].postHooks[].exec

Description
Exec defines an exec restore hook.
Type
object
Required
command
PropertyTypeDescription
commandarray

Command is the command and arguments to execute from within a container after a pod has been restored.

containerstring

Container is the container in the pod where the command should be executed. If not specified, the pod's first container is used.

execTimeoutstring

ExecTimeout defines the maximum amount of time Velero should wait for the hook to complete before considering the execution a failure.

onErrorstring

OnError specifies how Velero should behave if it encounters an error executing this hook.

waitForReadyboolean

WaitForReady ensures command will be launched when container is Ready instead of Running.

waitTimeoutstring

WaitTimeout defines the maximum amount of time Velero should wait for the container to be Ready before attempting to run the command.

.spec.hooks.resources[].postHooks[].exec.command

Description
Command is the command and arguments to execute from within a container after a pod has been restored.
Type
array

.spec.hooks.resources[].postHooks[].exec.command[]

Type
string

.spec.hooks.resources[].postHooks[].init

Description
Init defines an init restore hook.
Type
object
PropertyTypeDescription
initContainersarray

InitContainers is list of init containers to be added to a pod during its restore.

timeoutstring

Timeout defines the maximum amount of time Velero should wait for the initContainers to complete.

.spec.hooks.resources[].postHooks[].init.initContainers

Description
InitContainers is list of init containers to be added to a pod during its restore.
Type
array

.spec.hooks.resources[].postHooks[].init.initContainers[]

Type
object

.spec.includedNamespaces

Description
IncludedNamespaces is a slice of namespace names to include objects from. If empty, all namespaces are included.
Type
array

.spec.includedNamespaces[]

Type
string

.spec.includedResources

Description
IncludedResources is a slice of resource names to include in the restore. If empty, all resources in the backup are included.
Type
array

.spec.includedResources[]

Type
string

.spec.labelSelector

Description
LabelSelector is a metav1.LabelSelector to filter with when restoring individual objects from the backup. If empty or nil, all objects are included. Optional.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.labelSelector.matchExpressions[].values[]

Type
string

.spec.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.namespaceMapping

Description
NamespaceMapping is a map of source namespace names to target namespace names to restore into. Any source namespaces not included in the map will be restored into namespaces of the same name.
Type
object

.spec.orLabelSelectors

Description
OrLabelSelectors is list of metav1.LabelSelector to filter with when restoring individual objects from the backup. If multiple provided they will be joined by the OR operator. LabelSelector as well as OrLabelSelectors cannot co-exist in restore request, only one of them can be used
Type
array

.spec.orLabelSelectors[]

Description
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.orLabelSelectors[].matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.orLabelSelectors[].matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.orLabelSelectors[].matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.orLabelSelectors[].matchExpressions[].values[]

Type
string

.spec.orLabelSelectors[].matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.resourceModifier

Description
ResourceModifier specifies the reference to JSON resource patches that should be applied to resources before restoration.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.restoreStatus

Description
RestoreStatus specifies which resources we should restore the status field. If nil, no objects are included. Optional.
Type
object
PropertyTypeDescription
excludedResourcesarray

ExcludedResources specifies the resources to which will not restore the status.

includedResourcesarray

IncludedResources specifies the resources to which will restore the status. If empty, it applies to all resources.

.spec.restoreStatus.excludedResources

Description
ExcludedResources specifies the resources to which will not restore the status.
Type
array

.spec.restoreStatus.excludedResources[]

Type
string

.spec.restoreStatus.includedResources

Description
IncludedResources specifies the resources to which will restore the status. If empty, it applies to all resources.
Type
array

.spec.restoreStatus.includedResources[]

Type
string

.spec.uploaderConfig

Description
UploaderConfig specifies the configuration for the restore.
Type
object
PropertyTypeDescription
parallelFilesDownloadinteger

ParallelFilesDownload is the concurrency number setting for restore.

writeSparseFilesboolean

WriteSparseFiles is a flag to indicate whether write files sparsely or not.

.status

Description
RestoreStatus captures the current status of a Velero restore
Type
object
PropertyTypeDescription
completionTimestampstring

CompletionTimestamp records the time the restore operation was completed. Completion time is recorded even on failed restore. The server's time is used for StartTimestamps

errorsinteger

Errors is a count of all error messages that were generated during execution of the restore. The actual errors are stored in object storage.

failureReasonstring

FailureReason is an error that caused the entire restore to fail.

hookStatusobject

HookStatus contains information about the status of the hooks.

phasestring

Phase is the current state of the Restore

progressobject

Progress contains information about the restore's execution progress. Note that this information is best-effort only -- if Velero fails to update it during a restore for any reason, it may be inaccurate/stale.

restoreItemOperationsAttemptedinteger

RestoreItemOperationsAttempted is the total number of attempted async RestoreItemAction operations for this restore.

restoreItemOperationsCompletedinteger

RestoreItemOperationsCompleted is the total number of successfully completed async RestoreItemAction operations for this restore.

restoreItemOperationsFailedinteger

RestoreItemOperationsFailed is the total number of async RestoreItemAction operations for this restore which ended with an error.

startTimestampstring

StartTimestamp records the time the restore operation was started. The server's time is used for StartTimestamps

validationErrorsarray

ValidationErrors is a slice of all validation errors (if applicable)

warningsinteger

Warnings is a count of all warning messages that were generated during execution of the restore. The actual warnings are stored in object storage.

.status.hookStatus

Description
HookStatus contains information about the status of the hooks.
Type
object
PropertyTypeDescription
hooksAttemptedinteger

HooksAttempted is the total number of attempted hooks Specifically, HooksAttempted represents the number of hooks that failed to execute and the number of hooks that executed successfully.

hooksFailedinteger

HooksFailed is the total number of hooks which ended with an error

.status.progress

Description
Progress contains information about the restore's execution progress. Note that this information is best-effort only -- if Velero fails to update it during a restore for any reason, it may be inaccurate/stale.
Type
object
PropertyTypeDescription
itemsRestoredinteger

ItemsRestored is the number of items that have actually been restored so far

totalItemsinteger

TotalItems is the total number of items to be restored. This number may change throughout the execution of the restore due to plugins that return additional related items to restore

.status.validationErrors

Description
ValidationErrors is a slice of all validation errors (if applicable)
Type
array

.status.validationErrors[]

Type
string

API Endpoints

The following API endpoints are available:

  • /apis/velero.io/v1/namespaces/{namespace}/restores
    • DELETE: delete collection of Restore
    • GET: list objects of kind Restore
    • POST: create a new Restore
  • /apis/velero.io/v1/namespaces/{namespace}/restores/{name}
    • DELETE: delete the specified Restore
    • GET: read the specified Restore
    • PATCH: partially update the specified Restore
    • PUT: replace the specified Restore
  • /apis/velero.io/v1/namespaces/{namespace}/restores/{name}/status
    • GET: read status of the specified Restore
    • PATCH: partially update status of the specified Restore
    • PUT: replace status of the specified Restore

/apis/velero.io/v1/namespaces/{namespace}/restores

HTTP method
DELETE
Description
delete collection of Restore
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind Restore
HTTP responses
HTTP codeResponse body
200 - OKRestoreList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyRestore schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
201 - CreatedRestore schema
202 - AcceptedRestore schema
401 - UnauthorizedEmpty

/apis/velero.io/v1/namespaces/{namespace}/restores/{name}

HTTP method
DELETE
Description
delete the specified Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified Restore
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyRestore schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
201 - CreatedRestore schema
401 - UnauthorizedEmpty

/apis/velero.io/v1/namespaces/{namespace}/restores/{name}/status

HTTP method
GET
Description
read status of the specified Restore
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified Restore
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyRestore schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKRestore schema
201 - CreatedRestore schema
401 - UnauthorizedEmpty