List resource tree — GET /v1/deploy/applications/{name}/resource-tree

Returns one application's argocd ApplicationTree: the objects the operator reconciled from its App CR, reached by ownerRef — the Deployment and, under it, the ReplicaSet and Pods, plus the Service, Ingress, HorizontalPodAutoscaler, PodDisruptionBudget and ConfigMaps it owns — each node carrying its parent edges and its health.

GET /v1/deploy/applications/{name}/resource-tree

Addresshttps://api.hanzo.ai/v1/deploy/applications/{name}/resource-tree
MethodGET
Operationget_deploy_applications_by_name_resource-tree
AuthAuthorization: Bearer $HANZO_API_KEY

Returns one application's argocd ApplicationTree: the objects the operator reconciled from its App CR, reached by ownerRef — the Deployment and, under it, the ReplicaSet and Pods, plus the Service, Ingress, HorizontalPodAutoscaler, PodDisruptionBudget and ConfigMaps it owns — each node carrying its parent edges and its health.

Secrets are DELIBERATELY not walked, so no materialized environment can ever appear in the tree. Tenant-scoped exactly like the application read: another org's name is not found, a malformed name is a 400.

Request

1 field.

FieldInTypeRequiredDescription
namepathstringyesName is the application to read, from the path.

Response

StatusBodyMeaning
200deploy.argoTreeok
defaultproblem-detailsrefused

200 body — 47 fields.

FieldInTypeAlwaysDescription
hostsbodyany[]—Hosts is ArgoCD's per-node machine inventory.
nodesbodydeploy.argoNode[]—Nodes is the FLAT node list, root first: the App CR, then the objects the operator owns, then their ReplicaSets and Pods.
nodes[].createdAtbodystring—CreatedAt is the object's creationTimestamp, RFC 3339 UTC to the second.
nodes[].groupbodystring—
nodes[].healthbodydeploy.argoHealth—
nodes[].health.messagebodystring—Message is why the status is what it is — "Running: no replicas ready", "iam: CrashLoopBackOff".
nodes[].health.statusbodystring—Status is the ArgoCD health vocabulary, Capitalized: Healthy, Progressing, Degraded, Suspended, Missing or Unknown.
nodes[].imagesbodystring[]—Images are the container images running on this node.
nodes[].infobodydeploy.argoInfoItem[]—Info are the chips shown on the node.
nodes[].info[].namebodystring—Name is the chip's label.
nodes[].info[].valuebodystring—Value is the chip's value — for "Image Tag", the tag the node runs.
nodes[].kindbodystring—
nodes[].namebodystring—
nodes[].namespacebodystring—
nodes[].parentRefsbodydeploy.argoResourceRef[]—ParentRefs are the node's edges UPWARD, which is how the SPA draws the DAG from this flat list.
nodes[].parentRefs[].groupbodystring—Group is the object's API group: empty for the core group (Pod, Service, ConfigMap), otherwise apps, networking.k8s.io, autoscaling or policy — and hanzo.ai for the App CR at the root.
nodes[].parentRefs[].kindbodystring—Kind is the object kind.
nodes[].parentRefs[].namebodystring—Name is the object's metadata.name.
nodes[].parentRefs[].namespacebodystring—Namespace is the namespace the walk ran in, the same for every node of one tree.
nodes[].parentRefs[].uidbodystring—UID is the object's metadata.uid.
nodes[].parentRefs[].versionbodystring—Version is the object's API version as the live object reports it: v1 for every kind the walk reaches except the HorizontalPodAutoscaler, which is autoscaling/v2.
nodes[].resourceVersionbodystring—ResourceVersion is the k8s version a watch would resume from.
nodes[].uidbodystring—
nodes[].versionbodystring—
orphanedNodesbodydeploy.argoNode[]—OrphanedNodes are objects in the namespace belonging to no application.
orphanedNodes[].createdAtbodystring—CreatedAt is the object's creationTimestamp, RFC 3339 UTC to the second.
orphanedNodes[].groupbodystring—
orphanedNodes[].healthbodydeploy.argoHealth—
orphanedNodes[].health.messagebodystring—Message is why the status is what it is — "Running: no replicas ready", "iam: CrashLoopBackOff".
orphanedNodes[].health.statusbodystring—Status is the ArgoCD health vocabulary, Capitalized: Healthy, Progressing, Degraded, Suspended, Missing or Unknown.
orphanedNodes[].imagesbodystring[]—Images are the container images running on this node.
orphanedNodes[].infobodydeploy.argoInfoItem[]—Info are the chips shown on the node.
orphanedNodes[].info[].namebodystring—Name is the chip's label.
orphanedNodes[].info[].valuebodystring—Value is the chip's value — for "Image Tag", the tag the node runs.
orphanedNodes[].kindbodystring—
orphanedNodes[].namebodystring—
orphanedNodes[].namespacebodystring—
orphanedNodes[].parentRefsbodydeploy.argoResourceRef[]—ParentRefs are the node's edges UPWARD, which is how the SPA draws the DAG from this flat list.
orphanedNodes[].parentRefs[].groupbodystring—Group is the object's API group: empty for the core group (Pod, Service, ConfigMap), otherwise apps, networking.k8s.io, autoscaling or policy — and hanzo.ai for the App CR at the root.
orphanedNodes[].parentRefs[].kindbodystring—Kind is the object kind.
orphanedNodes[].parentRefs[].namebodystring—Name is the object's metadata.name.
orphanedNodes[].parentRefs[].namespacebodystring—Namespace is the namespace the walk ran in, the same for every node of one tree.
orphanedNodes[].parentRefs[].uidbodystring—UID is the object's metadata.uid.
orphanedNodes[].parentRefs[].versionbodystring—Version is the object's API version as the live object reports it: v1 for every kind the walk reaches except the HorizontalPodAutoscaler, which is autoscaling/v2.
orphanedNodes[].resourceVersionbodystring—ResourceVersion is the k8s version a watch would resume from.
orphanedNodes[].uidbodystring—
orphanedNodes[].versionbodystring—

Failure carries the platform error shape — see Errors.

Examples

hanzo deploy applications resource-tree <name>
import { Configuration, DeployApi } from 'hanzoai';

const api = new DeployApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getDeployApplicationsByNameResource-tree({ name: 'name' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DeployApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DeployApi(client).get_deploy_applications_by_name_resource-tree(name='name')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.DeployAPI.GetDeployApplicationsByNameResource-tree(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, deploy_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = deploy_api::get_deploy_applications_by_name_resource-tree(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DeployApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new DeployApi(client).getDeployApplicationsByNameResource-tree();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl https://api.hanzo.ai/v1/deploy/applications/<name>/resource-tree \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches deploy through the deploy tool, which names its 11 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_deploy_applications"
         }
       }
     }'

Deploy API · All Hanzo APIs · Interactive reference

Was this page useful?