# Models

## The App object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"App":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the app"},"name":{"type":"string","description":"Name of the app"},"description":{"type":"string","nullable":true,"description":"Description of the app"},"visibility":{"type":"string","enum":["public","private"],"description":"Visibility setting for the app"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the app was created"},"cname":{"type":"string","description":"Region identifier"},"cluster_id":{"type":"string","nullable":true,"description":"Cluster ID where the app is deployed"},"tags":{"type":"object","additionalProperties":{"type":"string"},"nullable":true,"description":"Key-value tags for the app"}}}}}}
```

## The AppWithConfig object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"AppWithConfig":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the app"},"name":{"type":"string","description":"Name of the app"},"description":{"type":"string","nullable":true,"description":"Description of the app"},"visibility":{"type":"string","enum":["public","private"],"description":"Visibility setting for the app"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the app was created"},"cname":{"type":"string","description":"Region identifier"},"production_branch":{"type":"string","nullable":true,"description":"Production branch for the app"},"api_key":{"type":"string","deprecated":true,"description":"Deprecated. Use the API Keys endpoints instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"nullable":true,"description":"Key-value tags for the app"},"warning":{"type":"string","nullable":true,"description":"Present when the app was created but initial configuration could not be applied"},"config":{"type":"object","properties":{"spicepod":{"type":"object","nullable":true,"description":"Spicepod configuration"},"registry":{"type":"string","nullable":true,"description":"Container registry for the runtime image"},"image_tag":{"type":"string","nullable":true,"description":"Runtime image tag"},"update_channel":{"type":"string","enum":["stable","preview","nightly","internal"],"nullable":true,"description":"Update channel for the runtime"},"replicas":{"type":"integer","description":"Number of replicas"},"resources":{"type":"object","nullable":true,"description":"Resource requests and limits for the app container","properties":{"limits":{"type":"object","properties":{"cpu":{"type":"string","description":"Whole-number vCPU limit, or '-' for no CPU limit"},"memory":{"type":"string","description":"Memory limit in Gi (for example, 16Gi)"},"ephemeral-storage":{"type":"string"}}},"requests":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"}}}}},"executor":{"type":"object","nullable":true,"description":"Executor container configuration","properties":{"replicas":{"type":"integer","description":"Number of executor replicas"},"resources":{"type":"object","description":"Resource requests and limits for the executor container","properties":{"limits":{"type":"object","properties":{"cpu":{"type":"string","description":"Whole-number vCPU limit, or '-' for no CPU limit"},"memory":{"type":"string","description":"Memory limit in Gi (for example, 16Gi)"},"ephemeral-storage":{"type":"string"}}},"requests":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"}}}}}}},"region":{"type":"string","nullable":true,"description":"Cloud region code (e.g., us-east-1)"},"node_group":{"type":"string","nullable":true,"description":"Node group for scheduling the app runtime"},"storage_claim_size_gb":{"type":"number","nullable":true,"description":"Storage claim size in GB"}}}}}}}}
```

## The Secret object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"Secret":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the secret"},"name":{"type":"string","description":"Name of the secret"},"value":{"type":"string","description":"Always masked with asterisks"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the secret was created"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the secret was last updated"}}}}}}
```

## The Deployment object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"Deployment":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the deployment"},"status":{"type":"string","enum":["queued","in_progress","succeeded","failed","created"],"description":"Current status of the deployment"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the deployment was created"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the deployment started"},"updated_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the deployment was last updated"},"image_tag":{"type":"string","nullable":true,"description":"Runtime image tag used for this deployment"},"replicas":{"type":"integer","description":"Number of replicas"},"branch":{"type":"string","nullable":true,"description":"Git branch name"},"commit_sha":{"type":"string","nullable":true,"description":"Git commit SHA"},"commit_message":{"type":"string","nullable":true,"description":"Git commit message"},"error_message":{"type":"string","nullable":true,"description":"Error message if the deployment failed"},"creation_source":{"type":"string","nullable":true,"description":"Source that triggered the deployment"},"created_by":{"type":"string","nullable":true,"description":"User who created the deployment"}}}}}}
```

## The ApiKeys object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"ApiKeys":{"type":"object","properties":{"api_key":{"type":"string","nullable":true,"description":"Primary API key"},"api_key_2":{"type":"string","nullable":true,"description":"Secondary API key (for key rotation)"}}}}}}
```

## The ApiKeysRegenerated object

```json
{"openapi":"3.1.0","info":{"title":"Spice Cloud Control-Plane API","version":"v1"},"components":{"schemas":{"ApiKeysRegenerated":{"type":"object","properties":{"api_key":{"type":"string","nullable":true,"description":"Primary API key"},"api_key_2":{"type":"string","nullable":true,"description":"Secondary API key"},"regenerated_key":{"type":"integer","enum":[0,1,2],"description":"Which key was regenerated (0 = both, 1 = primary, 2 = secondary)"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.spice.ai/api/management-api/management/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
