Modificar una aplicación
PUT /accounts/{account_id}/k8s/v2/apps/{app_id}
Sustituye todo el recurso almacenado por el cuerpo de la solicitud JSON suministrado, conservando los valores clave que no son modificables por el usuario.
Parámetros
| Nombre | Tipo | En | Obligatorio | Descripción |
|---|---|---|---|---|
account_id |
cadena |
ruta |
Verdadero |
ID del recurso de cuenta que lo contiene
|
app_id |
cadena |
ruta |
Verdadero |
ID de la colección de aplicaciones a listar |
forceUpdate |
cadena |
cabecera |
Falso |
Indicador que permite sobrescribir destructivamente. Inclúyelo solo cuando solicites restaurar sin movimiento (IPR).
|
Cuerpo de la solicitud
Sustituye todo el recurso almacenado por el cuerpo de la solicitud JSON suministrado, conservando los valores clave que no son modificables por el usuario.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
Tipo de medio del recurso. Los valores definidos son:
|
versión |
cadena |
Verdadero |
Versión del recurso. Los valores definidos son:
|
id |
cadena |
Falso |
Identificador único global del recurso. Los valores definidos son:
|
nombre |
cadena |
Falso |
Cadena JSON que contiene un nombre para la aplicación. Los valores definidos son:
|
clusterScopedResources |
array["clusterScopedResources"] |
Falso |
Matriz JSON de objetos JSON que describen los recursos con alcance de clúster que forman parte de esta app |
namespaceScopedResources |
array["namespaceScopedResources"] |
Falso |
Matriz JSON de objetos JSON que describen los recursos que forman parte de esta app |
lastResourceCollectionTimestamp |
cadena |
Falso |
Cadena JSON que contiene la fecha y hora en que se realizó la última recopilación de recursos. Este campo no está establecido si aún no se ha realizado ninguna recopilación de recursos para esta aplicación. Los valores definidos son:
|
estado |
cadena |
Falso |
Cadena JSON que contiene un valor que indica el estado operativo de la aplicación. Los valores definidos son:
|
stateTransitions |
array["type_astra_stateTransition"] |
Falso |
Matriz JSON de objetos JSON, cada uno de los cuales representa el conjunto de transiciones de estado permitidas desde un estado definido dado. Cada objeto JSON contiene los campos "from" y "to", donde el valor "from" es el nombre de un estado y el valor "to" es una matriz de estados de destino permitidos. |
stateDetails |
array["type_astra_stateDetail"] |
Falso |
Matriz JSON de objetos JSON que enumera detalles adicionales sobre el estado actual, incluyendo por qué se alcanzó el estado actual. Si no hay detalles disponibles, esta matriz estará vacía. Los valores definidos son:
|
protectionState |
cadena |
Falso |
Cadena JSON que contiene un valor que indica el estado de protección de la aplicación. Los valores definidos son:
|
protectionStateDetails |
array["type_astra_stateDetail"] |
Falso |
Matriz JSON de objetos JSON que enumera detalles adicionales sobre el estado de protección actual, incluyendo por qué se alcanzó el estado actual. Si no hay detalles disponibles, esta matriz estará vacía. Los valores definidos son:
|
appDetectedType |
cadena |
Falso |
Cadena JSON que representa de forma única el tipo específico de aplicación que se detecta. Los valores definidos son:
|
espacios de nombres |
array[string] |
Falso |
Matriz JSON de cadenas JSON que contiene los nombres de los espacios de nombres en los que se ejecuta la aplicación. Los valores definidos son:
|
namespaceMapping |
array["namespaceMapping"] |
Falso |
Matriz JSON de objetos JSON, cada uno de los cuales asigna un espacio de nombres de origen a un espacio de nombres de destino para una operación de clonación. Los valores definidos son:
|
storageClassMapping |
array["storageClassMapping"] |
Falso |
Matriz JSON de objetos JSON, cada uno de los cuales asigna una clase de almacenamiento de origen a una clase de almacenamiento de destino para una operación de restauración. Si no hay elementos o no están presentes, se usarán los nombres originales de las clases de almacenamiento de origen. Los valores definidos son:
|
clusterName |
cadena |
Falso |
Cadena JSON que contiene el nombre del clúster en el que se está ejecutando la aplicación. No se devuelve si la aplicación no se está ejecutando actualmente. |
clusterID |
cadena |
Falso |
Cadena JSON que contiene el ID del clúster en el que se está ejecutando la aplicación. No se devuelve si la aplicación no se está ejecutando actualmente. Cuando se especifica en create, clusterID indica en qué clúster se debe clonar la aplicación. Si el clúster especificado no existe, o si el clúster especificado no coincide con el clusterID especificado en el URI de solicitud, la clonación fallará. Los valores definidos son:
|
clusterType |
cadena |
Falso |
Cadena JSON que contiene un valor que indica el tipo de clúster. Los valores definidos son:
|
sourceAppID |
cadena |
Falso |
Cadena JSON que contiene el ID de una aplicación de origen. Solo se devuelve si la aplicación se clonó a partir de otra aplicación o se restauró a partir de una copia de seguridad o instantánea. Cuando se especifica al crear, el sourceAppID se utiliza junto con el sourceClusterID e indica qué aplicación en ejecución se clonará. Si la aplicación especificada no existe en el clúster de origen especificado, la clonación fallará. Solo se puede especificar uno de sourceAppID, backupID o snapshotID al crear una aplicación. Los valores definidos son:
|
sourceClusterName |
cadena |
Falso |
Cadena JSON que contiene el nombre del clúster en el que se ejecutaba anteriormente la aplicación. Solo se devuelve si la aplicación se clonó de otro clúster. |
sourceClusterID |
cadena |
Falso |
Cadena JSON que contiene el ID del clúster en el que se ejecutaba anteriormente la aplicación. Solo se devuelve si la aplicación se clonó desde otro clúster. Cuando se especifica en create, el sourceClusterID se utiliza junto con el sourceAppID e indica el clúster de origen de la aplicación que se va a clonar. Si el clúster de origen especificado no existe, la clonación fallará. Los valores definidos son:
|
backupID |
cadena |
Falso |
Cadena JSON que contiene el ID de la copia de seguridad desde la que se restauró la aplicación. Solo se devuelve si la aplicación se restauró desde una copia de seguridad. Cuando se especifica en create, backupID indica que una aplicación se clonará desde una copia de seguridad existente. Si la copia de seguridad especificada no existe, el clonado fallará. Solo se puede especificar uno de sourceAppID, backupID o snapshotID al crear una aplicación. Cuando se especifica en un replace, backupID indica la copia de seguridad de la aplicación desde la que se restaurará la aplicación en el mismo lugar. Si la copia de seguridad especificada no existe, la restauración fallará. Solo se puede especificar uno de backupID o snapshotID al actualizar una aplicación. Los valores definidos son:
|
snapshotID |
cadena |
Falso |
Cadena JSON que contiene el ID de la instantánea desde la que se restauró la aplicación. Solo se devuelve si la aplicación se restauró desde una instantánea. Cuando se especifica en create, snapshotID indica que una aplicación se clonará desde una instantánea existente. Si la instantánea especificada no existe, el clonado fallará. Solo se puede especificar uno de sourceAppID, backupID o snapshotID al crear una aplicación. Cuando se especifica en replace, snapshotID indica la instantánea de la aplicación desde la que se restaurará la aplicación. Si la instantánea especificada no existe, la restauración fallará. Solo se puede especificar uno de backupID o snapshotID al actualizar una aplicación. Los valores definidos son:
|
replicationSourceAppID |
cadena |
Falso |
Cadena JSON que contiene el ID de la aplicación que se está replicando a esta aplicación. Solo se devuelve si la aplicación es actualmente el destino en una relación AppMirror y la relación no está en el estado failedOver. Cuando la relación está en el estado failedOver, este campo no se devuelve. Los valores definidos son:
|
restoreFilter |
Falso |
Objeto JSON que contiene una lista de filtros que describen qué recursos se incluyen o excluyen de una operación de restauración selectiva. Incluir y excluir son mutuamente excluyentes, y una restauración selectiva solo puede usar un tipo de filtro. |
|
metadatos |
Falso |
Metadatos especificados por el cliente y el servicio asociados con el recurso. Los valores definidos son:
|
Ejemplo de solicitud
{
"type": "application/astra-app",
"version": "2.2",
"name": "mysql-old"
}
Respuesta
Status: 204, Indicates if the app resource was updated.
Respuesta
Status: 401, Unauthorized
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
estado |
cadena |
Verdadero |
|
correlationID |
cadena |
Falso |
Ejemplo de respuesta
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
Respuesta
Status: 400, Bad request
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
estado |
cadena |
Verdadero |
|
correlationID |
cadena |
Falso |
Ejemplo de respuesta
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
Respuesta
Status: 409, Conflict
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
estado |
cadena |
Verdadero |
|
correlationID |
cadena |
Falso |
Ejemplo de respuesta
{
"type": "https://astra.netapp.io/problems/10",
"title": "JSON resource conflict",
"detail": "The request body JSON contains a field that conflicts with an idempotent value.",
"status": "409"
}
Respuesta
Status: 403, Forbidden
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
estado |
cadena |
Verdadero |
|
correlationID |
cadena |
Falso |
Ejemplo de respuesta
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
Error
Status: 404, Not found
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
estado |
cadena |
Verdadero |
|
correlationID |
cadena |
Falso |
Ejemplo de respuesta de error
{
"type": "https://astra.netapp.io/problems/1",
"title": "Resource not found",
"detail": "The resource specified in the request URI wasn't found.",
"status": "404"
}
Definiciones
Ver definiciones
GVK
Objeto JSON que contiene un grupo/versión/tipo de Kubernetes.
-
Este objeto se valida internamente con Astra /apiResources.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
grupo |
cadena |
Falso |
Cadena JSON que contiene un identificador de grupo asignado por Kubernetes.
|
tipo |
cadena |
Falso |
Cadena JSON que contiene un identificador de tipo asignado por Kubernetes.
|
versión |
cadena |
Falso |
Cadena JSON que contiene un identificador de versión asignado por Kubernetes.
|
clusterScopedResources
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
GVK |
Falso |
Objeto JSON que contiene un grupo/versión/tipo de Kubernetes.
|
|
labelSelectors |
array[string] |
Falso |
Matriz JSON de cadenas JSON que representan un selector de etiquetas con alcance de clúster para los GroupVersionKinds (GVK) dentro del clúster. Si está vacía, se incluyen todas las instancias GVK en el clúster. Cada elemento de esta matriz es una cadena de selector de etiquetas de Kubernetes y sigue la misma gramática para esos valores. Ejemplos:
|
namespaceScopedResources
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
espacio de nombres |
cadena |
Falso |
Cadena JSON que contiene el nombre de un espacio de nombres en el que está definida la aplicación. Los valores definidos son:
|
labelSelectors |
array[string] |
Falso |
Matriz JSON de cadenas JSON que representan un selector de etiquetas dentro del espacio de nombres. Si está vacía, se incluyen todos los recursos del espacio de nombres. Cada elemento de esta matriz es una cadena de selector de etiquetas de Kubernetes y sigue la gramática para esos valores. Ejemplos:
|
type_astra_stateTransition
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
de |
cadena |
Verdadero |
|
a |
array[string] |
Verdadero |
additionalDetails
type_astra_stateDetail
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tipo |
cadena |
Verdadero |
|
título |
cadena |
Verdadero |
|
detalle |
cadena |
Verdadero |
|
additionalDetails |
Falso |
namespaceMapping
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
fuente |
cadena |
Falso |
Cadena JSON que contiene el nombre del espacio de nombres en el clúster de origen. Los valores definidos son:
|
destino |
cadena |
Falso |
Cadena JSON que contiene el nombre del espacio de nombres en el clúster de destino. Los valores definidos son:
|
storageClassMapping
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
fuente |
cadena |
Falso |
Cadena JSON que contiene el nombre de la clase de almacenamiento de origen. También puede ser '*' para especificar todas las clases de almacenamiento de origen. Los valores definidos son:
|
destino |
cadena |
Falso |
Cadena JSON que contiene el nombre de la clase de almacenamiento de destino. Los valores definidos son:
|
GVKN
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
grupo |
cadena |
Falso |
Cadena JSON que contiene un identificador de grupo asignado por Kubernetes.
|
versión |
cadena |
Falso |
Cadena JSON que contiene un identificador de versión asignado por Kubernetes.
|
tipo |
cadena |
Falso |
Cadena JSON que contiene un identificador de tipo asignado por Kubernetes.
|
espacios de nombres |
array[string] |
Falso |
Matriz JSON de cadenas JSON que describen los espacios de nombres de los que incluir o excluir recursos. Los valores definidos son:
|
nombres |
array[string] |
Falso |
Matriz JSON de cadenas JSON que describen los nombres de recursos Kubernetes que deben incluirse o excluirse de la restauración selectiva. Los valores definidos son:
|
labelSelectors |
array[string] |
Falso |
Matriz JSON de cadenas JSON que describen los selectores de etiquetas de Kubernetes utilizados para incluir o excluir recursos de la restauración selectiva. Cada elemento de esta matriz es una cadena de selector de etiquetas de Kubernetes y sigue la misma gramática para esos valores. Ejemplos:
|
restoreFilter
Objeto JSON que contiene una lista de filtros que describen qué recursos se incluyen o excluyen de una operación de restauración selectiva. Incluir y excluir son mutuamente excluyentes, y una restauración selectiva solo puede usar un tipo de filtro.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
resourceSelectionCriteria |
cadena |
Verdadero |
Cadena JSON que contiene un valor que indica cómo los filtros de recursos seleccionan recursos. Los valores válidos son include o exclude. |
GVKN |
array["GVKN"] |
Verdadero |
Matriz JSON de objetos JSON que describen recursos para filtrar durante una restauración selectiva. Un recurso coincide con un único elemento de filtro GVKN si todos los campos de filtro especificados coinciden con el campo de recurso correspondiente. Los campos de filtro que son matrices (por ejemplo, espacios de nombres y nombres) coinciden si cualquiera de sus elementos coincide con el campo de recurso correspondiente. El campo labelSelectors requiere que todos los selectores coincidan. Un recurso que coincida con cualquier filtro de la matriz de objetos de filtro GVKN se incluye o excluye de la restauración en función del valor resourceSelectionCriteria. La especificación de objetos GVKN vacíos provoca un error de validación. |
etiqueta_tipo_astra
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
nombre |
cadena |
Verdadero |
|
valor |
cadena |
Verdadero |
type_astra_metadatos_update
Metadatos especificados por el cliente y el servicio asociados con el recurso. Los valores definidos son:
-
Conforme al esquema de metadatos de Astra. Si no se especifica al crear, se creará un objeto de metadatos sin etiquetas. Si no se especifica al actualizar, las etiquetas del objeto de metadatos, creationTimestamp y createdBy, se conservarán sin modificaciones.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
etiquetas |
array["etiqueta_tipo_astra"] |
Falso |
|
CreationTimestamp |
cadena |
Falso |
|
Modificación.Marca de hora |
cadena |
Falso |
|
CreatedBy |
cadena |
Falso |
|
modifiedBy |
cadena |
Falso |
invalidParams
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
nombre |
cadena |
Verdadero |
Nombre del parámetro de consulta no válido |
motivo |
cadena |
Verdadero |
Razón por la que el parámetro de consulta no es válido |
invalidFields
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
nombre |
cadena |
Verdadero |
Nombre del campo no válido del cuerpo de la solicitud |
motivo |
cadena |
Verdadero |
Motivo por el que el campo del cuerpo de la solicitud no es válido |