Eine App für einen verwalteten Cluster abrufen
GET /accounts/{account_id}/topology/v2/managedClusters/{managedCluster_id}/apps/{app_id}
Gibt die gespeicherte App-API-Ressource im JSON-Antworttext zurück.
Parameter
| Name | Typ | In | Erforderlich | Beschreibung |
|---|---|---|---|---|
Konto-ID |
Zeichenkette |
Pfad |
True |
ID der übergeordneten Kontoressource
|
managedCluster_id |
Zeichenkette |
Pfad |
True |
ID der enthaltenden managedCluster-Ressource |
App-ID |
Zeichenkette |
Pfad |
True |
ID der aufzulistenden App-Sammlung |
Antwort
Status: 200, Returns the stored App API resource in the JSON response body.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
Medientyp der Ressource. Definierte Werte sind:
|
Version |
Zeichenkette |
True |
Version der Ressource. Definierte Werte sind:
|
id |
Zeichenkette |
True |
Weltweit eindeutiger Bezeichner der Ressource. Definierte Werte sind:
|
Links |
Array["type_astra_link"] |
True |
Links mit Beschreibungen der unterstützten Operationen für die Ressource. |
Name |
Zeichenkette |
True |
JSON-Zeichenkette mit einem Namen für die Anwendung. Folgende Werte sind definiert:
|
clusterScopedResources |
Array["clusterScopedResources"] |
Falsch |
JSON-Array von JSON-Objekten, die die clusterweiten Ressourcen beschreiben, die Teil dieser App sind |
namespaceScopedResources |
Array["namespaceScopedResources"] |
True |
JSON-Array von JSON-Objekten, die die Ressourcen beschreiben, die Teil dieser App sind |
lastResourceCollectionTimestamp |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit dem Zeitstempel, wann die letzte Ressourcenerfassung durchgeführt wurde. Dieses Feld ist nicht gesetzt, wenn für diese Anwendung noch keine Ressourcenerfassung durchgeführt wurde. Definierte Werte sind:
|
Zustand |
Zeichenkette |
True |
JSON-Zeichenkette mit einem Wert, der den Betriebszustand der Anwendung angibt. Folgende Werte sind definiert:
|
stateTransitions |
Array["type_astra_stateTransition"] |
Falsch |
Ein JSON-Array mit JSON-Objekten, die jeweils die Menge der zulässigen Zustandsübergänge von einem definierten Zustand aus darstellen. Jedes JSON-Objekt enthält die Felder "from" und "to", wobei der Wert von "from" der Name eines Zustands ist und der Wert von "to" ein Array zulässiger Zielzustände ist. |
stateDetails |
Array["type_astra_stateDetail"] |
True |
JSON-Array von JSON-Objekten, das zusätzliche Details zum aktuellen Zustand auflistet, einschließlich der Gründe, warum der aktuelle Zustand erreicht wurde. Wenn keine Details verfügbar sind, ist dieses Array leer. Definierte Werte sind:
|
protectionState |
Zeichenkette |
True |
JSON-Zeichenkette mit einem Wert, der den Schutzstatus der Anwendung angibt. Folgende Werte sind definiert:
|
protectionStateDetails |
Array["type_astra_stateDetail"] |
True |
Ein JSON-Array mit JSON-Objekten, das zusätzliche Details zum aktuellen Schutzstatus auflistet, einschließlich der Gründe, warum der aktuelle Status erreicht wurde. Sind keine Details verfügbar, ist dieses Array leer. Definierte Werte sind:
|
appDetectedType |
Zeichenkette |
Falsch |
JSON-Zeichenkette, die den spezifischen erkannten Anwendungstyp eindeutig repräsentiert. Definierte Werte sind:
|
Namensräume |
Array[string] |
True |
JSON-Array von JSON-Zeichenketten, die die Namen der Namespaces enthalten, in denen die Anwendung ausgeführt wird. Definierte Werte sind:
|
namespaceMapping |
Array["namespaceMapping"] |
Falsch |
JSON-Array von JSON-Objekten, die jeweils einen Quell-Namespace einem Ziel-Namespace für einen Klonvorgang zuordnen. Definierte Werte sind:
|
storageClassMapping |
Array["storageClassMapping"] |
Falsch |
JSON-Array von JSON-Objekten, die jeweils eine Quellspeicherklasse einer Zielspeicherklasse für einen Wiederherstellungsvorgang zuordnen. Sind keine Elemente vorhanden oder ist das Feld nicht vorhanden, werden die ursprünglichen Quellspeicherklassennamen verwendet. Definierte Werte sind:
|
clusterName |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit dem Namen des Clusters, auf dem die Anwendung ausgeführt wird. Wird nicht zurückgegeben, wenn die Anwendung aktuell nicht ausgeführt wird. |
Cluster-ID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID des Clusters, auf dem die Anwendung ausgeführt wird. Wird nicht zurückgegeben, wenn die Anwendung nicht ausgeführt wird. Bei der Erstellung angegeben, gibt clusterID an, in welchen Cluster die Anwendung geklont werden soll. Existiert der angegebene Cluster nicht oder stimmt die clusterID nicht mit der in der Anforderungs-URI angegebenen überein, schlägt der Klonvorgang fehl. Folgende Werte sind definiert:
|
clusterType |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit einem Wert, der den Clustertyp angibt. Folgende Werte sind definiert:
|
sourceAppID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID einer Quellanwendung. Wird nur zurückgegeben, wenn die Anwendung von einer anderen Anwendung geklont oder aus einer Sicherung oder einem Snapshot wiederhergestellt wurde. Bei der Erstellung wird die sourceAppID zusammen mit der sourceClusterID verwendet und gibt an, welche laufende Anwendung geklont wird. Existiert die angegebene Anwendung nicht im angegebenen Quell-Cluster, schlägt der Klonvorgang fehl. Beim Erstellen einer Anwendung kann nur eine der folgenden IDs angegeben werden: sourceAppID, backupID oder snapshotID. Folgende Werte sind definiert:
|
sourceClusterName |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit dem Namen des Clusters, auf dem die Anwendung zuvor ausgeführt wurde. Wird nur zurückgegeben, wenn die Anwendung von einem anderen Cluster geklont wurde. |
Quell-Cluster-ID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID des Clusters, auf dem die Anwendung zuvor ausgeführt wurde. Wird nur zurückgegeben, wenn die Anwendung von einem anderen Cluster geklont wurde. Bei der Erstellung wird die sourceClusterID zusammen mit der sourceAppID verwendet und gibt den Quell-Cluster der zu klonenden Anwendung an. Wenn der angegebene Quell-Cluster nicht existiert, schlägt der Klonvorgang fehl. Folgende Werte sind definiert:
|
Backup-ID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID des Backups, aus dem die Anwendung wiederhergestellt wurde. Wird nur zurückgegeben, wenn die Anwendung aus einem Backup wiederhergestellt wurde. Bei der Erstellung gibt backupID an, dass eine Anwendung aus einem vorhandenen Backup geklont wird. Existiert das angegebene Backup nicht, schlägt das Klonen fehl. Beim Erstellen einer Anwendung kann nur eine der folgenden Optionen angegeben werden: sourceAppID, backupID oder snapshotID. Bei einer Ersetzung gibt backupID das Anwendungs-Backup an, aus dem die Anwendung direkt wiederhergestellt wird. Existiert das angegebene Backup nicht, schlägt die Wiederherstellung fehl. Beim Aktualisieren einer Anwendung kann nur entweder backupID oder snapshotID angegeben werden. Definierte Werte sind:
|
snapshotID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID des Snapshots, aus dem die Anwendung wiederhergestellt wurde. Wird nur zurückgegeben, wenn die Anwendung aus einem Snapshot wiederhergestellt wurde. Bei der Erstellung einer Anwendung gibt snapshotID an, dass die Anwendung aus einem vorhandenen Snapshot geklont wird. Existiert der angegebene Snapshot nicht, schlägt der Klonvorgang fehl. Bei der Erstellung einer Anwendung kann nur entweder sourceAppID, backupID oder snapshotID angegeben werden. Bei einer Ersetzung einer Anwendung gibt snapshotID den Anwendungssnapshot an, aus dem die Anwendung direkt wiederhergestellt wird. Existiert der angegebene Snapshot nicht, schlägt die Wiederherstellung fehl. Bei der Aktualisierung einer Anwendung kann nur entweder backupID oder snapshotID angegeben werden. Definierte Werte sind:
|
Replikationsquellen-AppID |
Zeichenkette |
Falsch |
JSON-Zeichenfolge mit der ID der Anwendung, die in diese Anwendung repliziert wird. Wird nur zurückgegeben, wenn die Anwendung aktuell das Ziel in einer AppMirror-Beziehung ist und sich die Beziehung nicht im failedOver-Status befindet. Befindet sich die Beziehung im failedOver-Status, wird dieses Feld nicht zurückgegeben. Definierte Werte sind:
|
restoreFilter |
Falsch |
JSON-Objekt mit einer Liste von Filtern, die beschreiben, welche Ressourcen in eine selektive Wiederherstellung einbezogen oder ausgeschlossen werden. Ein- und Ausschlusskriterien schließen sich gegenseitig aus, und eine selektive Wiederherstellung kann nur einen Filtertyp verwenden. |
|
Metadaten |
True |
Client- und dienstspezifische Metadaten, die der Ressource zugeordnet sind. Definierte Werte sind:
|
Beispielantwort
{
"type": "application/astra-app",
"version": "2.2",
"id": "39c1c79f-efab-5357-88fb-20e628c4dd96",
"links": [
{
"rel": "canonical",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/topology/v2/managedClusters/6a358976-c3ac-49aa-b043-9c9b425c90ac/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f"
},
{
"rel": "collection",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/topology/v1/clouds/892814c9-77a1-46f3-b54a-82c34cdf0032/clusters/6a358976-c3ac-49aa-b043-9c9b425c90ac/namespaces/da78daf6-8e11-4220-a461-6b1d4a6dc231/apps"
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v1/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f/appBackups",
"type": "application/astra-appBackup",
"title": "disruptiveBackup",
"hints": {
"allow": [],
"permissions": [
"appBackup-create"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v1/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f/appBackups",
"type": "application/astra-appBackup",
"title": "nonDisruptiveBackup",
"hints": {
"allow": [
"POST"
],
"permissions": [
"appBackup-create"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v2/apps",
"type": "application/astra-app",
"title": "restore",
"hints": {
"allow": [
"POST"
],
"permissions": [
"app-create"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v1/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f/appSnaps",
"type": "application/astra-appSnap",
"title": "snapshot",
"hints": {
"allow": [
"POST"
],
"permissions": [
"appSnap-create"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v2/apps",
"type": "application/astra-app",
"title": "clone",
"hints": {
"allow": [
"POST"
],
"permissions": [
"app-create"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v2/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f",
"type": "application/astra-app",
"title": "inPlaceRestore",
"hints": {
"allow": [
"PUT"
],
"permissions": [
"app-update"
]
}
},
{
"rel": "related",
"href": "/accounts/652f7a18-d4ed-47b2-b467-15bf2154d079/k8s/v1/apps/27467088-2e99-4bd8-aa9b-014d5f44a62f/appMirrors",
"type": "application/astra-appMirror",
"title": "replication",
"hints": {
"allow": [
"POST"
],
"permissions": [
"appMirror-create"
]
}
}
],
"name": "jenkins",
"namespaceScopedResources": [
{
"namespace": "production-clone",
"labelSelectors": [
"app = jenkins,release = production"
]
}
],
"namespaceMapping": [
{
"source": "production",
"destination": "production-clone"
}
],
"state": "ready",
"stateDetails": [],
"protectionState": "none",
"protectionStateDetails": [],
"namespaces": [
"production-clone"
],
"snapshotID": "8d561930-0437-4647-b3e6-49b8a5362e3d",
"clusterName": "GKE-24",
"clusterID": "0f284377-e5dc-4dcd-bacd-3197f2b8a347",
"clusterType": "kubernetes",
"metadata": {
"labels": [],
"creationTimestamp": "2022-10-06T20:58:16.305662Z",
"modificationTimestamp": "2022-10-06T20:58:16.305662Z",
"createdBy": "8f84cf09-8036-51e4-b579-bd30cb07b269"
}
}
Antwort
Status: 401, Unauthorized
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
|
Titel |
Zeichenkette |
True |
|
Detail |
Zeichenkette |
True |
|
Status |
Zeichenkette |
True |
|
Korrelations-ID |
Zeichenkette |
Falsch |
Beispielantwort
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
Antwort
Status: 400, Bad request
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
|
Titel |
Zeichenkette |
True |
|
Detail |
Zeichenkette |
True |
|
Status |
Zeichenkette |
True |
|
Korrelations-ID |
Zeichenkette |
Falsch |
|
invalidParams |
Array["invalidParams"] |
Falsch |
Liste ungültiger Abfrageparameter |
Beispielantwort
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
Antwort
Status: 403, Forbidden
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
|
Titel |
Zeichenkette |
True |
|
Detail |
Zeichenkette |
True |
|
Status |
Zeichenkette |
True |
|
Korrelations-ID |
Zeichenkette |
Falsch |
Beispielantwort
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
Fehler
Status: 404, Not found
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
|
Titel |
Zeichenkette |
True |
|
Detail |
Zeichenkette |
True |
|
Status |
Zeichenkette |
True |
|
Korrelations-ID |
Zeichenkette |
Falsch |
Beispiel-Fehlermeldung
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
Definitionen
Siehe Definitionen
targetSchema
accept-post
accept-put
Hinweise
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Status |
Zeichenkette |
Falsch |
|
erlauben |
Array[string] |
Falsch |
|
accept-post |
Falsch |
||
Berechtigungen |
Array[string] |
Falsch |
|
accept-put |
Falsch |
type_astra_link
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
rel |
Zeichenkette |
True |
|
href |
Zeichenkette |
True |
|
Typ |
Zeichenkette |
Falsch |
|
targetSchema |
Falsch |
||
Titel |
Zeichenkette |
Falsch |
|
Hinweise |
Falsch |
GVK
JSON-Objekt, das eine Kubernetes-Gruppe/Version/Kind enthält.
-
Dieses Objekt wird intern gegen Astra/apiResources validiert.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Gruppe |
Zeichenkette |
True |
JSON-Zeichenkette mit einer von Kubernetes zugewiesenen Gruppenkennung.
|
Art |
Zeichenkette |
True |
JSON-Zeichenkette, die einen von Kubernetes zugewiesenen Kindbezeichner enthält.
|
Version |
Zeichenkette |
True |
JSON-Zeichenkette mit einer von Kubernetes zugewiesenen Versionskennung.
|
clusterScopedResources
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
GVK |
True |
JSON-Objekt, das eine Kubernetes-Gruppe/Version/Kind enthält.
|
|
labelSelectors |
Array[string] |
Falsch |
JSON-Array von JSON-Strings, das einen Label-Selektor für die clusterweiten GroupVersionKinds (GVKs) innerhalb des Clusters darstellt. Wenn dieses leer ist, werden alle GVK-Instanzen im Cluster einbezogen. Jedes Element in diesem Array ist ein Kubernetes-Label-Selektor-String und folgt derselben Grammatik für diese Werte. Beispiele:
|
namespaceScopedResources
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Namensraum |
Zeichenkette |
True |
JSON-Zeichenkette mit dem Namen eines Namespace, in dem die Anwendung definiert ist. Definierte Werte sind:
|
labelSelectors |
Array[string] |
True |
JSON-Array von JSON-Strings, das einen Label-Selektor innerhalb des Namespace darstellt. Ist das Array leer, werden alle Ressourcen im Namespace eingeschlossen. Jedes Element in diesem Array ist ein Kubernetes-Label-Selektor-String und folgt der Grammatik für diese Werte. Beispiele:
|
type_astra_stateTransition
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
aus |
Zeichenkette |
True |
|
: |
Array[string] |
True |
additionalDetails
type_astra_stateDetail
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Typ |
Zeichenkette |
True |
|
Titel |
Zeichenkette |
True |
|
Detail |
Zeichenkette |
True |
|
additionalDetails |
Falsch |
namespaceMapping
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Quelle |
Zeichenkette |
True |
JSON-Zeichenkette mit dem Namen des Namespace im Quell-Cluster. Folgende Werte sind definiert:
|
Ziel |
Zeichenkette |
True |
JSON-Zeichenkette mit dem Namen des Namespace im Ziel-Cluster. Folgende Werte sind definiert:
|
storageClassMapping
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Quelle |
Zeichenkette |
True |
JSON-Zeichenkette mit dem Namen der Quellspeicherklasse. Kann auch '*' sein, um alle Quellspeicherklassen anzugeben. Definierte Werte sind:
|
Ziel |
Zeichenkette |
True |
JSON-Zeichenkette mit dem Namen der Zielspeicherklasse. Folgende Werte sind definiert:
|
GVKN
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Gruppe |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit einer von Kubernetes zugewiesenen Gruppenkennung.
|
Version |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit einer von Kubernetes zugewiesenen Versionskennung.
|
Art |
Zeichenkette |
Falsch |
JSON-Zeichenkette, die einen von Kubernetes zugewiesenen Kindbezeichner enthält.
|
Namensräume |
Array[string] |
Falsch |
JSON-Array von JSON-Zeichenketten, die die Namensräume beschreiben, aus denen Ressourcen ein- oder ausgeschlossen werden sollen. Definierte Werte sind:
|
Namen |
Array[string] |
Falsch |
JSON-Array mit JSON-Zeichenketten, die die Namen der Kubernetes-Ressourcen beschreiben, die in die selektive Wiederherstellung einbezogen oder ausgeschlossen werden sollen. Definierte Werte sind:
|
labelSelectors |
Array[string] |
Falsch |
JSON-Array mit JSON-Strings, die Kubernetes-Label-Selektoren beschreiben, welche zum Ein- oder Ausschließen von Ressourcen bei der selektiven Wiederherstellung verwendet werden. Jedes Element in diesem Array ist ein Kubernetes-Label-Selektor-String und folgt derselben Grammatik für diese Werte. Beispiele:
|
restoreFilter
JSON-Objekt mit einer Liste von Filtern, die beschreiben, welche Ressourcen in eine selektive Wiederherstellung einbezogen oder ausgeschlossen werden. Ein- und Ausschlusskriterien schließen sich gegenseitig aus, und eine selektive Wiederherstellung kann nur einen Filtertyp verwenden.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
resourceSelectionCriteria |
Zeichenkette |
Falsch |
JSON-Zeichenkette mit einem Wert, der angibt, wie Ressourcenfilter Ressourcen auswählen. Gültige Werte sind include oder exclude. |
GVKN |
Array["GVKN"] |
Falsch |
Ein JSON-Array von JSON-Objekten beschreibt Ressourcen, die bei einer selektiven Wiederherstellung gefiltert werden sollen. Eine Ressource entspricht einem einzelnen GVKN-Filterelement, wenn alle angegebenen Filterfelder mit dem entsprechenden Ressourcenfeld übereinstimmen. Filterfelder, die Arrays sind (z. B. Namespaces und Namen), entsprechen einem Feld, wenn mindestens eines ihrer Elemente mit dem entsprechenden Ressourcenfeld übereinstimmt. Das Feld labelSelectors erfordert, dass alle Selektoren übereinstimmen. Eine Ressource, die einem Filter im Array von GVKN-Filterobjekten entspricht, wird je nach resourceSelectionCriteria-Wert in die Wiederherstellung einbezogen oder ausgeschlossen. Leere GVKN-Objekte führen zu einem Validierungsfehler. |
Typ_Astra_Label
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Name |
Zeichenkette |
True |
|
Wert |
Zeichenkette |
True |
type_astra_metadata_update
Client- und dienstspezifische Metadaten, die der Ressource zugeordnet sind. Definierte Werte sind:
-
Entspricht dem Astra-Metadatenschema. Wird beim Erstellen kein Label angegeben, wird ein Metadatenobjekt ohne Labels erstellt. Wird beim Aktualisieren kein Label angegeben, bleiben die Labels, creationTimestamp und createdBy, des Metadatenobjekts unverändert erhalten.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Etiketten |
Array["Typ_Astra_Label"] |
Falsch |
|
CreationZeitstempel |
Zeichenkette |
Falsch |
|
Änderungszeitstempel |
Zeichenkette |
Falsch |
|
Erstellt von |
Zeichenkette |
Falsch |
|
modifiedBy |
Zeichenkette |
Falsch |
invalidParams
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Name |
Zeichenkette |
True |
Name des ungültigen Abfrageparameters |
Grund |
Zeichenkette |
True |
Grund, warum der Abfrageparameter ungültig ist |